私は現在、約3人のルートではなくユーザーが作成された小さなUbuntu Server 12.04システム(テスト環境)を持っています。各ユーザーは自分のディレクトリの下に独自のpublic_html
ディレクトリを持っているhome
ため、名前付き仮想ホストに複数のアプリケーションを展開できます。各ユーザーはApachewww-data
グループに属し、次のように設定されます。
sudo usermod -a -G www-data [username]
sudo chown -R [username]:www-data /home/[username]/public_html
sudo chmod 2750 /home/[username]/public_html
これで、rootユーザーとしてユーザーがメッセージを表示すると、VirtualHostフォルダを自動的に生成するbashスクリプトが作成されていますpublic_html
。/etc/apache2/sites-available/
スクリプト(runを使用sudo
)は、ユーザー($uzer
)と希望の仮想ホスト名($vhost
)を求めるメッセージを表示します。これまで数回の確認の後、次のような結果が出ました。
mkdir -vp /home/$uzer/public_html/$vhost
mkdir -vp /home/$uzer/public_html/$vhost/www
mkdir -vp /home/$uzer/public_html/$vhost/logs
mkdir -vp /home/$uzer/public_html/$vhost/backups
新しく作成されたフォルダの所有権を変更する必要があるため、次のことを行う必要があるかどうかはわかりません。
chown -vR $uzer:www-data /home/$uzer/public_html/$vhost
chmod 2750 /home/$uzer/public_html/$vhost
私の質問:
- 私のフォルダ構造は正しいか理想的ですか?
- recursive() オプションを使用したことを知っていますが、また同じことを繰り返す
-R
必要がありますか?$vhost/www
$vhost/logs
$vhost/backups
- 上記のchmodが重複する可能性があると思いますか?
mkdir
ユーザーとしてコマンドを実行する方法はありますか$uzer
?
答え1
Q:私のフォルダ構造は正しいか理想的ですか?
答え:フォルダ構造はよさそうです。
Q: 再帰 (-R) オプションを使用したことはわかっていますが、$vhost/www、$vhost/logs、および $vhost/backups に対して同じ操作を繰り返す必要がありますか?
A: このディレクトリでの実行は重複します。
Q:上記のchmodが重複する可能性があると思いますが、そうですか?
はい、技術的には、ディレクトリを作成する初期sudoが「グループIDビット設定」を設定するため、冗長ですが、対応するビット(2750のうち2つ)の設定は保証されません。ユーザーがファイルをディレクトリに移動したり、誤ってファイルグループを変更したなどのディレクトリを見たことがあるので、そのままにします。
$ uzerユーザーとしてmkdirコマンドを実行する方法はありますか?
root$ su -u $user -c "mkdir ..."
スイッチを使用して、/www、/log、および/backupsのchmodステップを保存することもできますmkdir --mode=...
。
例えば
mkdir -vp --mode=2750 /home/$uzer/public_html/$vhost
mkdir -vp --mode=2750 /home/$uzer/public_html/$vhost/www
mkdir -vp --mode=2750 /home/$uzer/public_html/$vhost/logs
mkdir -vp --mode=2750 /home/$uzer/public_html/$vhost/backups
答え2
- 実際にどのフォルダ構造を使用するかは問題ではありません。
- chownと共にオプションを使用すると、
-R
コマンドの実行時に存在するファイルとディレクトリにのみ影響します。 chmod
いいえ。手動で変更する場合は、常にコマンドを使用して権限を変更する必要があるためです。/etc/sudoers
$ userが任意のディレクトリを作成できるように、fileコマンドを要求できますmkdir
。