Apache VirtualHostを自動的に生成するようにユーザーファイルの権限を変更します。

Apache VirtualHostを自動的に生成するようにユーザーファイルの権限を変更します。

私は現在、約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

  1. 実際にどのフォルダ構造を使用するかは問題ではありません。
  2. chownと共にオプションを使用すると、-Rコマンドの実行時に存在するファイルとディレクトリにのみ影響します。
  3. chmodいいえ。手動で変更する場合は、常にコマンドを使用して権限を変更する必要があるためです。
  4. /etc/sudoers$ userが任意のディレクトリを作成できるように、fileコマンドを要求できますmkdir

関連情報