ACL 및 기존의 일반 권한

ACL 및 기존의 일반 권한

많은 기사를 읽었지만 여전히 ACL을 이해하지 못해 다음과 같은 질문이 있습니다.

  1. ACL이전 권한(예: 0777)을 사용하고 파일 소유자, 그룹 등을 변경하면 어떤 이점이 있나요? (여러 사용자가 파일에 대해 서로 다른 권한을 가질 수 있기 때문에 나에게는 하나만 있습니다)
  2. ACL은 어떻게 구현됩니까? inode 데이터를 사용합니까?
  3. 확장된 속성(xattr) 사이에 연결이 있습니까?
  4. 확장된 속성이 지원 됩니까 VFS? 아니면 FS특정 기능 인가요 ?

이것을 이해하는 데 도움을 주세요. 이에 대한 좋은 기사가 있을까요?
감사해요

답변1

ACL을 사용하면 여러 사람과 그룹에 권한을 부여할 수 있습니다. 예를 들어 SA 팀과 DBA 팀이 있을 수 있습니다. SA에 파일에 대한 읽기+쓰기 액세스 권한을 부여하려고 하는데 DBA에게는 읽기 액세스 권한만 있습니다. 파일에는 그룹 소유자가 한 명만 있을 수 있으므로 이 작업을 수행하기가 어렵습니다. 하지만 ACL을 사용하면 쉽습니다.

ACL 구현은 파일 시스템에 따라 다릅니다. 일반적으로 인덱스 노드와 연결됩니다. 예를 들어

$ echo test > file
$ setfacl -m g:dbus:rw file
$ getfacl file 
# file: file
# owner: sweh
# group: sweh
user::rw-
group::r--
group:dbus:rw-
mask::rw-
other::r--

여기서는 파일에 서로 다른 권한으로 설정된 두 개의 그룹 권한이 있음을 볼 수 있습니다.

파일(다른 파일 이름, 동일한 inode) 간에 하드 링크를 만들고 결과를 살펴보겠습니다.

$ ln file file2
$ getfacl file2
# file: file2
# owner: sweh
# group: sweh
user::rw-
group::r--
group:dbus:rw-
mask::rw-
other::r--

따라서 파일 간에 하드 링크를 생성하고 새 파일 이름에서 ACL을 사용할 수 있습니다. 이는 ACL이 파일 이름이 아닌 inode와 연결되어 있음을 나타냅니다.

ACL은 확장 속성과 동일하지 않지만 xattr 네임스페이스에 저장할 수 있습니다. xattr 속성은 파일 시스템에 따라 다릅니다.

관련 정보