Ubuntu 16.04.2 LTS を LAMP スタックとして使用します。
コードベース全体で、工場の8進数権限が事前定義されたWebプロジェクト(Magento)を設定しました。他の開発者にアクセス権を提供する必要があります。プロジェクトの場所は/var/www/webprojectで、Apache所有者/グループwww-dataが所有しています。
そのため、www-dataグループに属する開発者のためにユーザー(devuser)を作成し、それらにSSHアクセスを許可しました。現在、ユーザーは8進数の許可を受けていないため、sudoを使用せずに/ var / www / webprojectに含まれるファイルを作成または編集することはできません。
要約:
/var/www/webproject permissions = 750
Files & directories within /var/www/webproject vary but...
user:group assignment for everything = www-data:www-data
質問:私のユーザーのためにユーザー開発/var/www/webprojectに含まれるファイルとディレクトリを正しく変更するには、その中に含まれるすべてのファイルとディレクトリに正しいグループ権限を繰り返し適用する必要がありますか?それとも、Webプラットフォーム(Magento)の工場権限を維持しながら、www-dataグループのすべてのユーザーがファイルとディレクトリを変更できるようにするより良い方法はありますか?
答え1
グループが書き込み権限のないファイルを無条件に編集できるようにする方法はありません。
名前付きユーザーとグループはwww-data
同じではありません(すべてのユーザーは、ユーザー名に自分だけが含まれているグループがあるため、名前のあるグループを持つことになります)www-data
。があります)。
chmod g+w
グループwww-data
に書き込み権限が必要なファイルに適用する必要があります。通常、Webディレクトリ(770)にファイルを保存するのは安全です。
答え2
フォルダに対して同じ有効な権限を維持するには、POSIXアクセス制御リストを使用して実行できます。
sudo su -
chown -R :web_developers /var/www/webproject
chmod -R 2770 /var/www/webproject
setfacl -R -m u:www-data:rwx /var/www/webproject
setfacl -R -m d:u:www-data:rwx /var/www/webproject
setfacl -R -m g:www-data:r-x /var/www/webproject
setfacl -R -m d:g:www-data:r-x /var/www/webproject
setfacl -R -m o:0 /var/www/webproject
setfacl -R -m d:o:0 /var/www/webproject
からWeb開発者を削除してくださいwww-data
。彼はウェブサーバーではありません。人々は常に自分が実行するタスクに対応するグループに属している必要があり、そのグループに適切な権限を付与する必要があります。したがって、彼はあなたの一つですweb_developers
。
最終結果:
rwx
www-data は元のファイルを模倣し、既存のファイルと今後作成されるファイルに対して常にユーザーとグループの権限を持ちます。r-x
750
- このグループのすべてのメンバーには、現在のすべてのファイルと今後作成されるファイルへの
web_developers
フルアクセス権があります。rwx
- 他の人には権限がありません(
root
- と拡張グループを除くsudo
)。
別の靴のペア:
- 文書作られたグループのユーザーは
web_developers
そのユーザーの所有者になります(ただし、www-data
ユーザーrwx
とグループのr-x
権限はまだあります)。