많은 기사를 읽었지만 여전히 ACL을 이해하지 못해 다음과 같은 질문이 있습니다.
ACL
이전 권한(예: 0777)을 사용하고 파일 소유자, 그룹 등을 변경하면 어떤 이점이 있나요? (여러 사용자가 파일에 대해 서로 다른 권한을 가질 수 있기 때문에 나에게는 하나만 있습니다)- ACL은 어떻게 구현됩니까? inode 데이터를 사용합니까?
- 확장된 속성(xattr) 사이에 연결이 있습니까?
- 확장된 속성이 지원 됩니까
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 속성은 파일 시스템에 따라 다릅니다.