私は Web プロジェクトに取り組む予定なので、www
内に -folder があります。このフォルダを が所有し、グループ に属するよう$HOME
にしたいです。次のように発行します。user
www-data
mkdir $HOME/www
chmod g+rxs,u+rwx,o-rwx $HOME/www
chown user.www-data $HOME/www
次にls -alh | grep www
以下を与えます:
drwxr-s--- 2 user www-data 4,0K Aug 10 17:33 www
さらに、作成プロセスの権限に関係なく、デフォルトの権限を設定する必要があります。そのため、次のようにします。
setfacl -m d:u::rwx,d:g::rx,d:o::- $HOME/www
次にgetfacl $HOME/www
以下を与えます:
# file: www
# owner: user
# group: www-data
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:other::---
今、cd
新しく作成したフォルダーに問題が発生しました:
touch testfile
そして次のようにls -alh | grep testfile
言います:
-rw-r----- 1 user www-data 0 Aug 10 17:44 testfile
ご覧のとおり、グループはビットwww-data
によって継承されましたsetgid
。ただし、ディレクトリのデフォルト ACL は$HOME/www
継承されませんでした (予想どおり)。は、$HOME
と比較してデフォルト ACL が異なります$HOME/www
が、サブディレクトリのデフォルト ACL を手動で上書きすることは非常に簡単に機能すると予想されます。
内部のサブディレクトリとファイルに、$HOME/www
上記のようにデフォルトの権限を持たせたいのですが、何が足りないのでしょうか?
答え1
デフォルトでは、ファイルには実行権限がありません。ディレクトリにはあります。ディレクトリを作成してみてください。期待される権限が付与されるはずです。ファイルには、実行権限を除く期待されるデフォルトの権限が付与されるはずです。