web-dev-qa-db-ja.com

ACL名前付きグループのアクセス許可は、ファイルのアクセス許可を上書きしません。どうして?

つまり、グループ内のすべてのユーザーがそのディレクトリに配置されたすべてのファイルに対して読み取り/書き込み-実行権限を持っているディレクトリを使用してファイルサーバーを作成しようとしています。私の調査によると、ACLはその仕事に適したツールですが、期待どおりに動作していないように見える問題が発生しました。

最新のUbuntuServer LTS 16.04.1を実行しており、問題のドライブでACLが有効になっていることを確認しました。

この例では、alexuseraの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エントリがあるため、それらのファイルのアクセス許可が上書きされますが、そうではないようです。

私は何か間違ったことをしましたか、誤解していますか、それとも実際には不可能ですか?

3

Posixパーミッションは、ACLよりも優先されます。したがって、aclが与えられた後にファイルをchmodすると、aclマスクが変更されます。ここに素晴らしい記事があります: https://serverfault.com/questions/352783/why-does-chmod1-on-the-group-affect-the-acl-mask

3
JasonC

ファイルにacl権限を適用した後、最初の11文字の意味を説明します。

-rwxrwx---+ 1 alex alex          4 Dec  7 17:09 test.txt*

10文字の許可文字列の最後にある+は、このファイルに関連付けられているACL設定があることを示します。ユーザー、グループ、およびその他の「rwx」フラグを次のように解釈します。

  • ユーザー:標準のユーザーファイル設定と同じユーザーACL設定を表示します。 rwx。
  • グループ:グループ所有者の設定ではなく、現在のACLマスク設定を表示します; rwx
  • その他:他のACL設定を表示します。これは、標準の他のファイル設定と同じです。アクセスなし。

重要

を使用してACLを使用してファイルのグループ権限を変更する chmod グループ所有者のアクセス許可は変更されませんが、ACLマスクは変更されます。

所有者グループの権限を変更する場合USE setfacl -m g :: permsファイル

以下のコマンドを使用して、グループ所有者の権限を変更します

chmod 700 test.txt
  • 7(rwx)ファイル所有者のアクセス許可を変更する
  • 0(---)ACLマスクを変更します。
  • 0(---)他の権限を変更します

以下のコマンドで上位コマンドを変更します

setfacl -m g::--- text.txt

ACL権限を適用した後 setfacl -m g :: permsファイル 所有者グループの権限を変更する唯一の方法です。

名前付きユーザー、名前付きグループ、所有者グループ によって制御される許可 ACLマスク

マスク権限0(---)を変更すると、named-group(fileserver)に有効な権限0(---)があります。

2
Rakib