각 사용자에게 다른 권한을 부여하려면 어떻게합니까?


11

그래서 저는 몇 년 동안 Linux를 사용해 왔으며이 답변을 알아야합니다.하지만 찾는 데 어려움이 있습니다. 특히 나는 데비안 기반 배포판을 사용하고 있습니다 .... 주로 우분투.

사용자가 3 명 이상인 서버가있는 경우 각 사용자에 대해 파일에 다른 권한 집합을 설정하는 방법

예를 들면 다음과 같습니다.

이러한 권한과 소유권을 가진 파일이있는 경우 :

rwx rw_ r__ user1:group1 file1.txt

원하는 권한을 가진 3 명의 사용자가 있습니다 ....

  • user1 rwx
  • user2 rw_
  • user3 r__

내가해야 할 일은 user1 이 파일을 소유하고 user2group1 에 있고 user3 이 둘 중 어느 것도 정확하지 않습니까?

그러나 user4user5 가 있으면 어떻게 됩니까 ?

  • user4 _wx
  • user5 __x

어떻게 설정합니까?

이전에이 작업을 수행 할 필요는 없었지만 Windows 관리자가 해당 질문을 받았고 정직하게 대답 할 수 없었습니다.


8
이러한 종류의 권한에 대해서는 액세스 제어 목록 (ACL)을 사용해야합니다 . 빠른 자습서는 여기에서 찾을 수 있습니다 . 주의 할 점은 일단 권한 대신 ACL 경로를 시작한 후에는 매우 미끄러운 경사이며 결국 의도하지 않은 결과로 인해 상황이 매우 복잡해집니다.
MelBurslan

답변:


19

기존의 유닉스 권한은 사용자, 그룹 및 다른 권한 만 허용합니다. 이로 인해 그룹을 어색한 조합으로 만들어야 할 수 있습니다 ...

따라서 새로운 형태의 ACL (Access Control Lists)이 도입되었습니다. 이를 통해 권한이 다른 여러 사용자 및 여러 그룹을 지정할 수 있습니다. 이것들은 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--

ls출력 을보고 파일에 ACL이 있는지 쉽게 알 수 있습니다 .

$ ls -l file.txt
-rw-rwxr--+ 1 sweh sweh 0 Jul 26 10:33 file.txt

+권한의 끝은 ACL을 나타냅니다.


2

예, ACL :은 서로 다른 사용자 또는 그룹에 대해 서로 다른 권한을 자유롭게 설정할 수 있습니다. IIRC 일반적인 그룹 권한은 그룹과 사용자가 ACL을 통해 가질 수있는 권한의 집합을 제한 :의 (로 표시 mask에를 getfacl)하지만, setfacl사용 권한을 추가하는 경우 그 처리해야한다.

그러나 경우에 따라 권한 집합이 의미가 있는지 묻어 야합니다.

원하는 권한을 가진 3 명의 사용자가 있습니다 ....-
user1 rwx
-user2 rw_
-user3 r__

user1을 파일의 소유자, user2를 그룹의 구성원으로 만들고 user3을 포함한 다른 사용자가 읽기 액세스 권한을 갖도록하여 ACL : s를 사용하여 또는 대략적인 Unix 권한으로이를 구현할 수 있습니다. 그럼에도 불구하고 (디렉토리에 대한 액세스 권한이있는) 모든 사람이 읽기 액세스 권한을 갖습니다.

이러한 권한의 의미를 고려해 봅시다. 읽을 수있는 한 명의 사용자와 읽고 쓸 수있는 다른 사용자가 있습니다. 그것은 완전히 평범합니다. 이들 중 어느 것도 파일을 실행할 수있는 권한이 없지만 세 번째 사용자도 파일을 실행할 수 있어야합니다.

그것은 내 마음에별로 의미가 없습니다. 파일을 읽을 수있는 모든 사용자는 원본 파일을 실행할 수있는 권한없이 사본 (*)을 만들고 실행 파일로 표시하고 실행할 수 있습니다. 실행 파일이 suid를 통해 높은 권한을 가진 경우에만 일부 사용자에게는 실행 액세스 권한을 갖는 것이 합리적 일 수 있습니다. 그러나이 경우 파일에 대한 쓰기 권한을 가진 다른 사용자가 없어야합니다.

같은 의미에서 user4 with -wx및 user5 with --x도 의미가 없습니다. 단지 허용의 가능성이 있다면 쓰기 전용 액세스가 적합 할 수 있습니다 추가가 있지만, 권한 시스템은 미세 그레인 것이 아니다.

(* 어디에도 쓸 수 없다면)


그러나 x비트에 대한 이상한 요구 사항을 제거하면 user1 및 user2에 쓰기 권한이 있고 user3에 읽기 권한이 있어야하는 파일이 남아 있습니다. 기존 모델에서는 한 명의 작성자와 여러 명의 독자가 쉬울 수 있지만이 경우 파일 권한을 포함하는 디렉토리의 권한과 결합하기위한 트릭이 필요합니다. 다행히 많은 경우에 더 많은 권한을 가진 한 명의 사용자로 충분합니다.

실행 비트에 대한 요구 사항이 없으면 ACL : s를 사용하는 경우처럼 보입니다. 그러나 그것으로,이 특별한 예는 나에게 다소 복잡해 보입니다.


사용자가 실행 권한없이 마운트 된 파일 시스템에만 쓸 수있는 경우 적절한 권한이 설정되어 있으면 원본을 실행할 수 있어도 사본을 실행할 수 없습니다. 또한 익스플로잇을 찾지 못하게하려면 실행 전용이 의미가있을 수 있습니다. -wx그래도 확실히 이상합니다.
celtschk

1
일부 시스템에는 추가 만 허용하는 메커니즘이 있습니다. chattr +a예를 들어 리눅스는 . 시스템에 특정한 내용이 없어도 파일을 FIFO로 만들 수 있습니다. --x, 또한 확장에 의해 -wx, 나에게 의미가 디렉토리 .
Random832
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.