시스템 관리가 처음인데 권한과 관련된 질문이 있습니다. 라는 그룹이 있습니다 administration
. 그룹 내에는 , , , administration
사용자가 있습니다 . 모든 사용자가 이 그룹에 속합니다 . 이제 다른 사용자의 디렉터리를 볼 수 있도록 사용자에게 권한을 부여해야 합니다 . 하지만 자신의 홈페이지 외에 다른 사용자의 홈페이지는 보고 싶지 않습니다 . (즉, 집 등 만 볼 수 있어야 합니다 .)user1
user2
user3
superuser
administration
superuser
/home
user1
user2
user3
user1
user1
사용자와 그룹을 생성하고 모든 사용자를 그룹에 할당했습니다. 이제 권한을 어떻게 지정해야 합니까 superuser
?
즉, 두 개의 그룹(예: NormalUsers
및 Superuser
)을 갖는 것을 고려하고 있습니다. 이 그룹에는 사용자 및 이 NormalUsers
있습니다 . 이 그룹에는 사용자만 있습니다 . 이제 그룹에 있는 사용자의 파일에 대한 전체 액세스 권한이 필요합니다 . 리눅스에서 이것이 가능합니까?user1
user2
user3
Superuser
Superuser
Superuser
NormalUsers
답변1
사용자가 협조할 의향이 있으면 다음을 사용할 수 있습니다.액세스 제어 목록(액세스 제어 목록). (및 친구의) 홈 디렉토리에 ACL을 설정하여 user1
권한을 부여합니다 superuser
. 또한 새로 생성된 파일에 대한 기본 ACL과 기존 파일에 대한 ACL을 설정합니다.
setfacl -R -m user:superuser:rx ~user1
setfacl -d -R -m user:superuser:rx ~user1
user1
원한다면 자신의 파일에서 ACL을 변경할 수 있습니다. 협력 하더라도 user1
, 예를 들어 제한적인 권한으로 아카이브의 압축을 풀 때 또는 일부 응용 프로그램이 의도적으로 사용자만 읽을 수 있는 파일을 생성하는 경우(예: 메일 클라이언트가 하는 경향이 있음) 새 파일을 실수로 읽을 수 없게 될 수 있습니다.
파일에 항상 superuser
읽기 권한을 부여하려는 경우user1
파일 시스템 바인딩.
mkdir -p ~superuser/spyglass/user1
chown superuser ~superuser/spyglass
chmod 700 ~superuser/spyglass
bindfs -p a+rD-w ~user1 ~superuser/spyglass/user1
~superuser/spyglass/user1을 통해 액세스되는 파일은 누구나 읽을 수 있습니다. 권한 외에도 ~superuser/spyglass/user1
홈 디렉터리 보기도 있습니다. 액세스 권한이 user1
있는 superuser
유일한 사용자는 그 혜택을 누릴 ~superuser/spyglass
수 있습니다 . superuser
이 방법은 자동화되어 있으므로 user1
선택 해제할 수 없습니다.
답변2
ACL을 사용하여 특정 디렉터리에 대한 모든 그룹 액세스 권한을 부여할 수 있습니다.
예를 들어, 를 실행하면 setfacl -m g:dba:rwx /home/foo
dba 그룹의 구성원은 디렉토리를 소유한 그룹에 관계없이 디렉토리에 대한 rwx 권한을 갖게 됩니다.
이 권한을 포함하려면 "기본" ACL(디렉토리 내에 새로 생성된 개체에 대한 ACL)을 설정해야 할 수도 있습니다.
답변3
불행히도 기본 Linux에서 직접 이 작업을 수행할 수 있는 방법은 없습니다.
일부 관리자를 위해 sudoers에 새 그룹을 만들고 실행을 허용할 허용 가능한 명령의 화이트리스트를 포함할 수 있습니다.
그러나 원하는 것을 정확하게 달성하려면 Apparmor 또는 SELinux를 사용하여 원하는 것을 달성해야 합니다. 불행하게도 이러한 도구 중 어느 것도 쉽게 설정하고 사용할 수 없으며 예제는 여기에서 빠른 답변의 범위를 훨씬 벗어납니다.