AIX ACLで許可されているものと指定されたものの違いは何ですか?
文書には次のように記載されています。
"The permit, deny, and specify keywords are defined as follows:
permit
Grants the user or group the specified access to the file
deny
Restricts the user or group from using the specified access to the file
specify
Precisely defines the file access for the user or group
If a user is denied a particular access by either a deny or a specify keyword, no other entry can override that access denial."
源泉:https://www.ibm.com/docs/el/aix/7.1?topic=system-aixc-access-control-list
これが非常に微妙な英語の問題であるかどうかはわかりません、私はネイティブスピーカーではありません。違いを理解したいです。
例は次のとおりです。
attributes: SUID
base permissions:
owner (frank): rw-
group (system): r-x
others : ---
extended permissions:
enabled
permit rw- u:dhs
deny r-- u:chas, g:system
specify r-- u:john, g:gateway, g:mail
permit rw- g:account, g:finance
「指定」と「許可」は同じ効果を持つようです。
編集:詳細な回答をいただいたユーザーsllabresに感謝します。
答え1
興味深い質問です。
クイックチェックにより、重複する権限の組み合わせが違いを生むことがわかります。
ユーザーがグループを介してファイルに対する読み取りおよび書き込み権限を持っていて、両方とも「許可」ACLの場合、ユーザーはファイルを読み書きできます。 (権限は論理的にORで接続されています)
たとえば、読み取り権限のみを持つ「指定された」ACLがある場合、読み取り権限のみが適用され、グループの書き込み権限は無視されます。
「指定された」ACLが複数ある場合は、論理ANDとして結合されているように見えます。
はい
testuser@testserver: /home/testuser >
# aclget test
*
* ACL_type AIXC
*
attributes:
base permissions
owner(root): rw-
group(system): ---
others: -w-
extended permissions
disabled
permit r-- u:testuser
この権限(ACLが無効)では、ユーザー「testusr」はtestファイルに書き込むことができますが(他の人の権限で)読み取ることはできません。
testuser@testserver: /home/testuser >
# echo "data" > test
testuser@testserver: /home/testuser >
# cat test
cat: 0652-050 Cannot open test.
testuser@testserver: /home/testuser >
ACLが有効な状態でファイルを読み取ることができますが、ACLには特定の読み取り権限しかないため、「testusr」はファイルを読み取ることができません。
# aclget test
*
* ACL_type AIXC
*
attributes:
base permissions
owner(root): rw-
group(system): ---
others: -w-
extended permissions
enabled
permit r-- u:testuser
testuser@testserver: /home/testuser >
# echo "data" > test
The file access permissions do not allow the specified action.
ksh: test: 0403-005 Cannot create the specified file.
testuser@testserver: /home/testuser >
# cat test
data
ユーザーグループ(従業員)にACLを拡張し、そのグループへの書き込み権限を使用すると、testuserはtestuserが属する従業員グループを介してACLを読み取り、書き込み権限を持つことができるため、読み取り権限が発生します。 (論理的OR)
# aclget test
*
* ACL_type AIXC
*
attributes:
base permissions
owner(root): rw-
group(system): ---
others: -w-
extended permissions
enabled
permit r-- u:testuser
permit -w- g:staff
testuser@testserver: /home/testuser >
# echo "data" > test
testuser@testserver: /home/testuser >
# cat test
data
ユーザーの読み取り権限が「許可」から「指定」に変更されると、読み取り権限のみが適用され、従業員グループを介した書き込み権限は適用されなくなります。
# aclget test
*
* ACL_type AIXC
*
attributes:
base permissions
owner(root): rw-
group(system): ---
others: -w-
extended permissions
enabled
specify r-- u:testuser
permit -w- g:staff
testuser@testserver: /home/testuser >
# echo "hi" > test
The file access permissions do not allow the specified action.
ksh: test: 0403-005 Cannot create the specified file.
testuser@testserver: /home/testuser >
# cat test
data
この例では、ACL u:testuserとg:staffの両方が「指定済み」に変更された場合、読み取りまたは書き込みアクセスは許可されません(論理AND)。
# aclget test
*
* ACL_type AIXC
*
attributes:
base permissions
owner(root): rw-
group(system): ---
others: -w-
extended permissions
enabled
specify r-- u:testuser
specify -w- g:staff
testuser@testserver: /home/testuser >
# echo "data" > test
The file access permissions do not allow the specified action.
ksh: test: 0403-005 Cannot create the specified file.
testuser@testserver: /home/testuser >
# cat test
cat: 0652-050 Cannot open test.
指定されたACL g:staff権限を読み取りおよび書き込みに変更して、Allow ACLなどの読み取りおよび書き込み権限を付与するのではなく、読み取り権限のみを付与します。
# aclget test
*
* ACL_type AIXC
*
attributes:
base permissions
owner(root): rw-
group(system): ---
others: -w-
extended permissions
enabled
specify r-- u:testuser
specify rw- g:staff
testuser@testserver: /home/testuser >
# echo "hi" > test
The file access permissions do not allow the specified action.
ksh: test: 0403-005 Cannot create the specified file.
testuser@testserver: /home/testuser >
# cat test
data
testuser@testserver: /home/testuser >