次のようにして、新しいファイルのデフォルトの ACL 権限を設定することができました。
sudo setfacl -Rdm u:usernamehere:rwx /var/www/path/to/files
これにより、すべての新しいファイルに次の権限が付与されるようです:
-rw-r-----+
代わりに、新しいファイルに次の権限が付与されることを期待しています。
-rw-r--r--+
何か違いがあるのなら、私は CentOS を実行しています。
これに関してのどんなご助力も大歓迎です。
ありがとう!
答え1
まず、名前付きユーザーまたはグループのACLエントリを持つファイルACLには、ACLマスクこれらの ACL エントリによって付与される権限とグループ所有者エントリの権限を制限するエントリ。マスク エントリは、ls
従来の権限ビットのみを確認する他のユーティリティに対するグループ権限として表示されます。
したがって、 が をls
示している場合-rw-r--r--+
、ACL マスクは でありr--
、これは許可 ACLu:usernamehere:rwx
が として動作することを意味しますu:usernamehere:r--
。これは、望んでいることではないかもしれません。一方、が所有するファイルであっても、u:usernamehere:rwx
は とは異なることに注意してください。最初のエントリは、マスクによって制限される名前付きエントリであり、2 番目はファイル所有者のエントリであり、u::rwx
usernamehere
ない限定。
マスクの考え方は、 と同等のツールを実行しても、chmod go-rwx
所有者以外のユーザーがファイルにアクセスできないようにできるというものです。 でマスク エントリを削除できますsetfacl -x m:: filename
が、名前付きユーザーまたはグループ エントリがない場合にのみ機能します。
いずれの場合でも、同じコマンドに複数のデフォルト エントリを追加できます。これにより、ファイル所有者が権限を取得しrwx
、マスクが に設定されr--
、「その他」の権限が に設定されるデフォルト エントリが設定されますr--
。
$ setfacl -R -d -m u::rwx -m m::r-- -m o::r-- /path
エントリはいずれの場合でも表示されるため (値はおそらく許可ビットから取得されます)、グループ所有者のデフォルト ACL も明示的に設定する必要があります ( g::
)。たとえば、ここでは、マスクによって制限されているため、グループ所有者のエントリは完全には有効ではありません。
default:user::rwx
default:group::r-x #effective:r--
default:mask::r--
default:other::r--
ディレクトリ内に作成されたファイルはls
として表示されます-rw-r--r--+
。
また、指定したユーザーに指定した権限のみを取得させたい場合には、マスク フィールドを省略して、setfacl
実際の ACL エントリに使用した権限に基づいて設定することができます。
setfacl -R -d -m u::rwx -m u:usernamehere:rwx -m o::r-- /path
ディレクトリに作成されたファイルは、 では、 ではls
次のように表示されます。-rw-rw-r--+
getfacl
user::rw-
user:usernamehere:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
x
ファイルを で作成したため、マスクが欠落しておりtouch
、権限 が使用され0666
、x
ビットがマスクされています。