ACL 권한은 어떻게 처리되며 특정 사용자 작업에 어떤 순서로 적용됩니까?

ACL 권한은 어떻게 처리되며 특정 사용자 작업에 어떤 순서로 적용됩니까?

센트OS 6.4

파일 시스템 ACL 규칙이 처리되는 방식과 ACL 규칙이 적용되는 순서를 더 잘 이해하려고 합니다.

예를 들어 사용자 bob과 joe가 sales라는 그룹에 속한다고 가정합니다. 다음 세부 정보가 포함된 판매 문서가 있다고 가정해 보겠습니다.

[root@Maui ~]# getfacl /home/foo/docs/foo.txt
getfacl: Removing leading '/' from absolute path names
# file: home/foo/docs/foo.txt
# owner: jane
# group: executives
user:: r--
user:bob:rw-
user:joe:rwx
group:sales:rwx
group::r--
mask::rwx
other::---

내 질문은 이와 같은 예에서 권한이 어떻게 처리되고 어떤 액세스 권한이 우선적으로 적용되는지입니다.

하향식 검색만 있고 첫 번째 일치 규칙이 적용됩니까?

아니면 Linux는 관련 사용자에게 가장 구체적인 규칙을 기반으로 액세스를 적용합니까? 아니면 가장 엄격하고 적용 가능한 규칙이 우선 적용됩니까?

답변1

이는 광범위한 주제이므로 여기서 다루기에는 내용이 너무 많습니다. 나는 당신에게 추천할 것입니다Linux의 POSIX 액세스 제어 목록백서는 SuSE Labs의 Andreas Grünbacher가 작성했습니다. ACL의 작동 방식을 이해할 수 있도록 주제를 잘 다루고 세분화합니다.

당신의 모범

이제 귀하의 예를 살펴보고 분석해 보겠습니다.

  • 그룹(판매)
  • 영업팀 구성원(Bob, Joe)

이제 파일의 권한을 분석해 보겠습니다 /home/foo/docs/foo.txt. ACL은 또한 대부분의 사람들이 Unix에서 익숙해야 하는 것과 동일한 권한(주로 사용자, 그룹 및 기타 비트)을 캡슐화합니다. 그러니 먼저 그것들을 꺼내자.

user:: r--
group::r--
other::---

이는 일반적으로 다음과 같은 형식으로 표시됩니다 ls -l.

$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt

다음 ACL 줄을 사용하여 파일 소유자와 그룹이 무엇인지 확인할 수 있습니다.

# owner: jane
# group: executives

이제 ACL의 특성을 살펴보겠습니다.

user:bob:rw-
user:joe:rwx
group:sales:rwx

이는 사용자가 을 bob가지고 rw있고 사용자가 joe을 가지고 있음 을 보여줍니다 rwx. rwx비슷한 조가 있는 그룹이 또 있다 . 이러한 권한은 ls -l출력의 사용자 열에 소유자 3명(jane, bob, joe)과 그룹 2개(임원 및 영업)가 있는 것과 같습니다 . ACL 외에는 차이가 없습니다.

마지막 mask줄:

mask::rwx

이 경우에는 아무것도 은폐하지 않고 활짝 열려 있습니다. 따라서 사용자 bob과 joe에 다음 줄이 있는 경우:

user:bob:rw-
user:joe:rwx

그러면 이것이 유효 권한입니다. 마스크가 다음과 같이 생겼다면:

mask::r-x

그러면 유효 권한은 다음과 같습니다.

user:bob:rw-    # effective:r--
user:joe:rwx    # effective:r-x

이는 부여된 권한을 도매로 줄이는 강력한 메커니즘입니다.

노트:파일 소유자 및 기타 사용자에 대한 권한은 유효 권한 마스크의 영향을 받지 않습니다. 따라서 마스킹 측면에서 ACL 권한은 기존 Unix 권한에 비해 2등급 시민입니다.

인용하다

답변2

ACL 주문

첫 번째로 일치하는 항목 사용

  • 소유자
  • 사용자 지정
  • 그룹을 소유하거나 이름을 지정합니다(다른 그룹, 아래 참조).
  • 다른 사람

흐름

단체등록

그룹 항목은 첫 번째 일치하는 그룹 항목을 사용하지 않으며, 일치하는 각 그룹 항목을 확인하고, 일치하는 그룹 항목이 허용되면 요청이 허용됩니다.

admin그룹에 속해 admin있고user

id admin

uid=1000(admin) gid=1000(admin) groups=1000(admin),1001(user)

user그룹에서user

id user

uid=1001(user) gid=1001(user) groups=1001(user)
getfacl file

# file: file
# owner: root
# group: root
user::rw-
group::r--
group:user:---
group:admin:r--
mask::r--
other::---
getfacl first

# file: first
# owner: root
# group: root
user::rw-
group::r--
user:admin:---
group:user:---
group:admin:r--
mask::r--
other::---
사용자 cat file cat first
admin 허용하다 부정적인
user 부정적인 부정적인

admin읽기가 file허용됩니다

  • getfacl file
    ...
    group:user:---
    group:admin:r--
    mask::r--
    
  • 사용자는 admin여전히 액세스가 허용됩니다.file

    (프로세스의 어느 그룹이라도 권한이 부여되면 접근이 허용됩니다.)

adminfirst거부하려면 읽어보세요

  • getfacl first
    ...
    user:admin:---
    group:user:---
    group:admin:r--
    mask::r--
    
  • 사용자의 admin액세스가 여전히 거부되었습니다.first

    (첫 번째로 일치하는 명명된 사용자 ACL을 사용하는 그룹에도 액세스가 허용됩니다 admin.)

인용하다:Linux 액세스 제어 목록

관련 정보