つまり、グループ内のすべてのユーザーがそのディレクトリに配置されたすべてのファイルに対して読み取り/書き込み-実行権限を持っているディレクトリを使用してファイルサーバーを作成しようとしています。私の調査によると、ACLはその仕事に適したツールですが、期待どおりに動作していないように見える問題が発生しました。
最新のUbuntuServer LTS 16.04.1を実行しており、問題のドライブでACLが有効になっていることを確認しました。
この例では、alex
とusera
の2人のユーザーがいて、両方のユーザーがfileserver
グループに属しています。私は次のようなテストディレクトリを作成しました:
alex@tstsvr:/$ Sudo mkdir -p /srv/fstest/test
alex@tstsvr:/$ Sudo chown root:fileserver /srv/fstest/test
alex@tstsvr:/$ Sudo chmod 770 /srv/fstest/test
そのディレクトリに、alex
は簡単なテストファイルを作成します。
alex@tstsvr:/$ cd /srv/fstest/test/
alex@tstsvr:/srv/fstest/test$ echo 123 > test.txt
$ ll
total 12
drwxrwx--- 2 root fileserver 4096 Dec 7 17:09 ./
drwxr-xr-x 4 root root 4096 Dec 7 16:46 ../
-rw-rw-r-- 1 alex alex 4 Dec 7 17:09 test.txt
ご覧のとおり、ファイルは彼のものであり、彼のグループに属しています。次に、ファイルのアクセス許可を770
に設定し、fileserver
グループのACLにファイルのrwx
アクセス許可を設定します。
alex@tstsvr:/srv/fstest/test$ chmod 770 test.txt
alex@tstsvr:/srv/fstest/test$ setfacl -m g:fileserver:rwx test.txt
alex@tstsvr:/srv/fstest/test$ ll
total 12
drwxrwx--- 2 root fileserver 4096 Dec 7 17:09 ./
drwxr-xr-x 4 root root 4096 Dec 7 16:46 ../
-rwxrwx---+ 1 alex alex 4 Dec 7 17:09 test.txt*
usera
の場合、すべてが完全に機能しているようです。
usera@tstsvr:/srv/fstest/test$ getfacl test.txt
# file: test.txt
# owner: alex
# group: alex
user::rwx
group::rw-
group:fileserver:rwx
mask::rwx
other::---
usera@tstsvr:/srv/fstest/test$ cat test.txt
123
ただし、ユーザーalex
が権限を700
...に変更した場合:
alex@tstsvr:/srv/fstest/test$ chmod 700 test.txt
ACLはこれらの権限を上書きできず、usera
はそのファイルを読み取ることができなくなったようです。
usera@tstsvr:/srv/fstest/test$ getfacl test.txt
# file: test.txt
# owner: alex
# group: alex
user::rwx
group::rw- #effective:---
group:fileserver:rwx #effective:---
mask::---
other::---
usera@tstsvr:/srv/fstest/test$ cat test.txt
cat: test.txt: Permission denied
私の理解では、ファイルには名前付きグループACLエントリがあるため、それらのファイルのアクセス許可が上書きされますが、そうではないようです。
私は何か間違ったことをしましたか、誤解していますか、それとも実際には不可能ですか?
Posixパーミッションは、ACLよりも優先されます。したがって、aclが与えられた後にファイルをchmodすると、aclマスクが変更されます。ここに素晴らしい記事があります: https://serverfault.com/questions/352783/why-does-chmod1-on-the-group-affect-the-acl-mask
ファイルにacl権限を適用した後、最初の11文字の意味を説明します。
-rwxrwx---+ 1 alex alex 4 Dec 7 17:09 test.txt*
10文字の許可文字列の最後にある+は、このファイルに関連付けられているACL設定があることを示します。ユーザー、グループ、およびその他の「rwx」フラグを次のように解釈します。
重要
を使用してACLを使用してファイルのグループ権限を変更する chmod グループ所有者のアクセス許可は変更されませんが、ACLマスクは変更されます。
所有者グループの権限を変更する場合USE setfacl -m g :: permsファイル
以下のコマンドを使用して、グループ所有者の権限を変更します
chmod 700 test.txt
以下のコマンドで上位コマンドを変更します
setfacl -m g::--- text.txt
ACL権限を適用した後 setfacl -m g :: permsファイル 所有者グループの権限を変更する唯一の方法です。
名前付きユーザー、名前付きグループ、所有者グループ によって制御される許可 ACLマスク
マスク権限0(---)を変更すると、named-group(fileserver)に有効な権限0(---)があります。