グループ権限連合

グループ権限連合

ファイルに両方のグループのACLエントリがある場合は、次のように異なる権限を付与します。

group:admin:rw-
group:staff:r--

ユーザーが両方のグループに属している場合、そのユーザーにはどのような権限がありますか?どの項目が優先的に適用されますか?実験は、最も制限された権限が適用されることを示した。もしそうなら、グループメンバーがより高い権限を持っていることを望むときに(より制限された他のグループに属していても)、この状況を処理するための最良の方法は何ですか?

ベストアンサー1

~から基準:

言い換えれば、公開アクセス決定アルゴリズムは次のように説明されるべきです(この説明はおおよそ定義一般的なアクセス決定アルゴリズムの詳細な説明は、ACLマネージャの擬似コードで指定されています。

  • 受信PACをACLのアクセスACLE(ACLマネージャの疑似コードで定義されている意味)と一致させます(上から下に示す順序で、つまりUO、U、FU、GO / G / FG、O)。 、FO、AO)最初の一致で停止し(指定されたグループに似たACLEの場合を除き、すべての一致は「同時」と見なされます)、一致するACLEに権限が付与されたことを記録します(またはグループの場合は次のようになります)。 )。 ACLE、一致するすべてのACLEによって付与された権限の統合)。

  • 必要に応じて取得した権限は、ACLマスクACLEの権限に対してマスク(つまりクロス)されます。つまり、中央列1で一致する場合はMASK_OBJ権限でマスクし、PACが認証されていない場合はUNAUTHENTICATEDを使用します。マスキング権限)。 (ACL管理者がこれら2つのマスクACLEをサポートしていない場合、この手順は機能しません。)

(原本強調、脚注追加)

rootつまり、単一行を含むUsers、Groups、およびPermissionsというファイルがある場合は、次のようになります。0600acl-testread possible

$ getfacl acl-test
# file acl-test
# owner: root
# group: root
user::rw-
group::---
other::---

今私が(ユーザーとしてfoxcat次のことをしようとすると:

$ cat acl-test
cat: acl-test: Permission denied

グループ権限連合

私はandグループに属しているので、usersそのwheelグループに特定のACLを追加できます。

# setfacl -m g:users:--- -m g:wheel:r-- acl-test
$ cat acl-test
read possible

これは、これらのgroup項目(一緒に考慮される)が私のグループの1つに対する読み取り権限を許可するためです。次のように組み合わせることができます。

# setfacl -m g:users:-w- acl-test
$ getfacl acl-test
# file: acl-test
# owner: root
# group: root
user::rw-
group::---
group:wheel:r--
group:users:-w-
mask::rw-
other::---
$ printf '%s\n' 'write possible' >> acl-test
$ cat acl-test
read possible
write possible

これで、その権限を許可するグループが同じグループでない場合でも、ファイルを読み書きできます。

ユーザー固有の権限はすべてのグループに適用されます。

ユーザールールはグループルールの前に適用されるため、特定のユーザーが読み書きできる内容を制限できます。

# setfacl -m u:fox:--- acl-test
$ getfacl acl-test
# file: acl-test
# owner: root
# group: root
user::rw-
user:fox:---
group::---
group:wheel:r--
group:users:-w-
mask::rw-
other::---
$ cat acl-test
cat: acl-test: Permission denied

マスクを着用すると、ほぼすべてを覆うことができます。

ファイルが所有者を除くすべての人にとって実際に読み取り専用の場合:

# setfacl -x u:fox -m g::rw- -m m:r-- acl-test
$ getfacl acl-test
# file: acl-test
# owner: root
# group: root
user::rw-
group::rw-          #effective:r--
group:wheel:r--
group:users:-w-     #effective:---
mask::r--
other::---
$ printf '%s\n' 'now writing is impossible' >> acl-test
bash: acl-test: Permission denied
# printf '%s\n' 'owner can still write' >> acl-test

不思議なことに、マスクは覆われていません。他の人権限は次のとおりです。

# setfacl -x g:users -x g:wheel -m o:rw- -n acl-test
$ getfacl acl-test
# file: acl-test
# owner: root
# group: root
user::rw-
group::rw-          #effective:r--
mask::r--
other::rw-
$ printf '%s\n' 'others can write now' >> acl-test
# chown :users acl-test
$ printf '%s\n' 'but not members of the owning group' >> acl-test
bash: acl-test: Permission denied

1「中央の列」とは、次のことを意味します。この写真UOとOを除くすべてが含まれているため、所有しているユーザーと他のユーザーはマスクの影響を受けません。定義されたルールを持つすべてのグループおよび非所有ユーザーはいうまくいけば。

おすすめ記事