예

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 >

관련 정보