特定のフォルダに新しいファイルとフォルダを作成するときは、親フォルダのグループと権限を継承したいと思います。可能ですか?
例えば
mkdir -p example.com/public
cd example.com
sudo chgrp apache public
chmod 775 public
今新しいフォルダを作成すると
cd public
mkdir test
ls -al
drwxrwxr-x 3 foo bar 4096 Nov 3 16:19 public
このディレクトリは私のデフォルトグループtest
に属しています。新しいフォルダがこのグループに属するようにしたいと思います。foo
bar
apache
ファイルに対して同じ動作が必要です。
どんなアイデアがありますか?
答え1
SGIDビットを設定してグループを継承できます。
chmod g+s /path/to/directory
権限を継承するにはACLが必要です。man 5 acl
ディレクトリのデフォルトACLを設定する必要があります。setfacl -d -m g::...
答え2
グループの所有権を継承するのは簡単です。ただ設定GID設定少量:
chmod g+s example.com/public
ディレクトリに作成されたすべてのエントリにはapache
グループ所有者が必要です。ディレクトリはSETGIDビットを継承します。
ACL を使用して権限を継承することは、すべてのシステムで可能ではなく、場合によってはパフォーマンスに影響を与える可能性があります。umask
ACLを使用する代わりに、Webサーバーの新しいファイル/ディレクトリに対する権限を設定できます。