次の結果を確実にするために、特定のディレクトリfoo
でシステム全体の002 umaskの動作を模倣したいと思います。
foo
の下に作成されたすべてのサブディレクトリには、775の権限が付与されますfoo
およびサブディレクトリの下に作成されたすべてのファイルには、664のアクセス許可がありますパーティションで ACLが有効になっている と仮定すると、これは私たちが思いついたコマンドです:
setfacl -R -d -m mask:002 foo
...しかし、これは機能しません。ディレクトリに作成された新しいファイルは、次のようになります。
-rw--w-r-+
新しいファイルでgetfacl
を実行すると、次のようになります。
#ファイル:newfile.py
#所有者:ルート
#グループ:agroup
ユーザー:: rw-
グループ:: rwx#有効:-w-
マスク::-w-
その他:: r--
つまり、ACLを使用したmask:200
の適用は、umask 200
の適用とはnotと同じではありません。
isACLを使用してディレクトリごとのumaskを適用する方法はありますか?
これはACLの典型的な仕事です:-)
$ mkdir /tmp/foo
ディレクトリ自体の権限を設定します
$ setfacl -m g::rwx -m o::rx /tmp/foo
新しく作成されたディレクトリとそのディレクトリ内のファイルの権限を設定します。
$ setfacl -m default:g::rwx -m o::rx /tmp/foo
テスト
$ mkdir /tmp/foo/bar
$ touch /tmp/foo/bar/baz.py
$ ls -ld /tmp/foo/bar /tmp/foo/bar/baz.py
drwxrwxr-x+ 2 jdoe jdoe 4096 Mar 10 00:06 /tmp/foo/bar
-rw-rw-r-- 1 jdoe jdoe 0 Mar 10 00:06 /tmp/foo/bar/baz.py
mask:r-x
+ group:foo:rwx
=>有効なアクセス許可= r-x
)chmod 2755
など)を使用して、ファイルに書き込むことができるグループを制御します。setfacl -m group:dev_team:rwx
ファイルが作成されるたびにトリガーされるdnotifyおよびスクリプトを使用できます。参照: https://serverfault.com/a/127686/30946