最初にファイルを作成し、標準のアクセス許可とACLエントリを確認します。
$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--
次に、ファイルにACLマスクを設定し、標準のアクセス許可とACLエントリを再度確認します。
$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--
ACLマスクとともに、ファイルの標準グループ権限も変更されることに注意してください。
- ACLマスクと標準グループパーミッションの間にどのような接続が存在しますか?
- ACLマスクとファイルグループのアクセス許可を結合する理由は何ですか?その背後にあるロジックは何ですか?
問題のディストリビューションはDebian Linux 7.6およびCentOS 7です。
編集
この時点で、標準のファイルグループのアクセス許可とACLマスクの関係を調査しているときに思いついた私の発見をいくつか共有したかっただけです。ここに私が見つけた経験的観察があります:
ACLマスクは変更できます。
setfacl -m m:<perms>
コマンドで直接設定する。chmod
コマンドでファイルグループのアクセス許可を変更する(ACLマスクが既に存在する場合。ファイルに名前付きユーザーまたはグループACLアクセス許可がない場合はオプションであるため、存在しない場合があります)。- 名前付きユーザーまたはグループACLエントリを追加することにより(マスクは自動的に再計算されます)。
マスクは、マスクがsetfaclによって直接設定されている場合、またはchmod(自動計算ではない)を使用したファイルグループのアクセス許可の変更によってのみ設定されている場合にのみ、最大アクセス権を適用します(ACLマスクアクセス許可を超えるアクセス許可を持つACLエントリが存在する場合)。ACLエントリを変更すると、ACLマスクの自動再計算がトリガーされ、「強制モード」が事実上オフになります。
ACLを使用する場合、標準のファイルグループのアクセス許可に暗黙的に影響する副作用がいくつかあります。
- ファイルに適用された名前付きユーザーまたはグループのACLエントリは、ACLマスクを変更する(アクセス許可を増やす)ため、有効なファイルグループアクセス許可を変更できます。たとえば、ファイル所有者として「rw-r--r-- jim Students」権限が設定されており、ユーザー「r」にrw権限も付与している場合、暗黙的に誰にもrw権限を付与します「学生」グループから。
- より厳密な(アクセス許可が少ない)ACLマスクは、対応する標準ファイルグループのアクセス許可を永久に削除できます。たとえば、rw標準ファイルグループ権限を持つファイルがあり、そのファイルに読み取り専用ACLマスクを適用すると、そのグループ権限は読み取り専用に低下します。その後、すべての拡張ACLエントリを(
setfacl -b
コマンドで)削除すると、グループのアクセス許可は読み取り専用のままになります。これは、より厳密なACLマスクにのみ適用されます。より柔らかいACLマスク(より多くのアクセス許可)は、削除された後に元のファイルグループのアクセス許可を永続的に変更しません。