그래서 저는 몇 년 동안 Linux를 사용해왔고 이에 대한 답을 꼭 알아야 하는데 찾기가 어렵습니다. 특히 저는 Debian 기반 배포판을 사용해 왔습니다. 주로 Ubuntu입니다.
3명 이상의 사용자가 있는 서버가 있는 경우 각 사용자에 대해 서로 다른 파일 권한 세트를 어떻게 설정합니까?
예를 들어:
다음과 같은 권한과 소유권을 가진 파일이 있는 경우:
rwx rw_ r__ user1:group1 file1.txt
이러한 필수 권한을 가진 사용자가 3명 있습니다...
- 사용자 1읽고 쓰기
- 사용자 2RW_
- 사용자 3아르 자형__
내가 해야 할 일은 갖는 것뿐이야사용자 1파일을 소유하고,사용자 2~에그룹 1, 그리고사용자 3둘 다 할 수 없습니다. 그렇죠?
그러나 만약 내가사용자 4그리고사용자 5.
- 사용자 4_wx
- 사용자 5__엑스
어떻게 설정하나요?
이전에는 이 작업을 수행할 필요가 없었는데 Windows 관리자가 나에게 이 질문을 했고 솔직히 대답할 수 없습니다.
답변1
기존 UNIX 권한은 검색된 사용자, 그룹 및 기타 권한만 허용합니다. 이로 인해 어색한 그룹 조합을 만들어야 할 수도 있습니다...
따라서 새로운 형태의 ACL(Access Control List)이 추가되었습니다. 이를 통해 다양한 권한을 가진 여러 사용자와 그룹을 지정할 수 있습니다. 이는 setfacl
명령으로 설정되어 사용됩니다.getfacl
$ setfacl -m u:root:r-- file.txt
$ setfacl -m u:bin:-wx file.txt
$ setfacl -m u:lp:--x file.txt
$ getfacl file.txt
# file: file.txt
# owner: sweh
# group: sweh
user::rw-
user:root:r--
user:bin:-wx
user:lp:--x
group::r--
mask::rwx
other::r--
출력을 보면 파일에 ACL이 있는지 쉽게 알 수 있습니다 ls
.
$ ls -l file.txt
-rw-rwxr--+ 1 sweh sweh 0 Jul 26 10:33 file.txt
+
끝에 있는 권한은 ACL을 나타냅니다.
답변2
예, ACL: 다양한 사용자 또는 그룹에 대해 다양한 권한을 자유롭게 설정할 수 있습니다. IIRC의 일반적인 그룹 권한은 그룹 및 사용자가 ACL:s를 통해 가질 수 있는 권한 집합을 제한하지만( mask
그림 참조 getfacl
), setfacl
권한을 추가하는 경우 이를 처리해야 합니다.
하지만 어떤 경우에는 권한 집합이 적합한지 물어볼 필요가 있습니다.
이러한 필수 권한을 가진 사용자가 3명 있습니다...
- user1 rwx
- user2 rw_
- user3 r__
ACL:s를 사용하거나 (대략) 일반적인 Unix 권한을 사용하여 user1을 파일의 소유자로 만들고 user2를 그룹의 구성원으로 만들고 다른 모든 사람(user3 포함)에게 읽기 액세스 권한을 부여하여 이 작업을 수행할 수 있습니다. 그럼에도 불구하고, 모든 사람(디렉토리에 대한 액세스 권한이 있는 사람)은 읽기 액세스 권한도 갖습니다.
이러한 권한이 무엇을 의미하는지 생각해 봅시다. 읽을 수 있는 사용자 한 명과 읽고 쓸 수 있는 사용자가 있습니다. 이것은 완전히 정상입니다. 이들 사용자 중 누구도 파일을 실행할 권한이 없지만 세 번째 사용자도 파일을 실행할 수 있어야 합니다.
이것은 나에게 별로 의미가 없습니다. 파일을 읽을 수 있는 사용자는 누구나 복사본(*)을 만들고, 실행 파일로 표시하고, 원본 파일을 실행하지 않고 실행할 수 있습니다. 일부 사용자에게는 실행 액세스 권한이 있지만 다른 사용자에게는 실행 액세스 권한이 없는 유일한 상황은 실행 파일에 suid를 통해 높은 권한이 있는 경우입니다. 그러나 이 경우 다른 사용자에게도 파일에 대한 쓰기 액세스 권한을 부여해서는 안 됩니다.
같은 토큰으로 user4 with -wx
및 user5 with는 --x
나에게 이해가 되지 않습니다. 쓰기 전용 액세스는 허용만 가능한 경우 의미가 있을 수 있습니다.추가, 그러나 권한 시스템은 그렇게 세밀하지 않습니다.
(*어디에도 쓸 수 없는 경우는 제외)
그러나 이 비트에 대한 이상한 요구 사항을 제거하면 x
user1과 user2가 쓰기 권한을 갖고 user3이 읽기 권한을 가져야 하는 파일을 얻게 됩니다. 기존 모델을 사용하면 한 명의 작성자와 여러 명의 판독기가 쉽지만 이 상황에서는 파일 권한과 포함 디렉터리의 권한을 결합하는 몇 가지 트릭이 필요합니다. 다행히도 많은 경우 더 많은 권한을 가진 사용자이면 충분합니다.
이는 실행 비트가 필요하지 않은 경우 ACL:s를 사용하는 경우와 같습니다. 그러나 이 특별한 예는 나에게 다소 복잡해 보입니다.