-rw-r--r--+ の ACL を正しく設定する

-rw-r--r--+ の ACL を正しく設定する

次のようにして、新しいファイルのデフォルトの 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::rwxusernamehereない限定。

マスクの考え方は、 と同等のツールを実行しても、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、権限 が使用され0666xビットがマスクされています。

関連情報