User1
가지고 있어야 한다쓰기 액세스파일을 다운로드하려면"사람들"도착하다뿌리디렉터리 /bucket
에 대한 다른 작업은 허용되지 않습니다.
User2
필요읽기 권한보관소"사람들"존재하다뿌리디렉터리 /bucket
및 가져오기 파일"사람들"User2
서버에 들어가세요 .
/bucket
위 사용자의 루트 디렉터리 권한과 사용자 권한을 설정하는 방법은 무엇입니까 ?
답변1
"루트 디렉토리"가 무엇을 의미하는지 명확히 할 수 있습니까? 또한 Linux 배포판을 지정하지 않았으므로 내 명령은 Ubuntu를 기반으로 합니다.
ACL이 없으면 옵션이 제한됩니다. 나는 이러한 사용자가 /bucket 디렉토리를 소유하는 것을 원하지 않는다고 가정합니다. 그룹을 만들고(예제에서는 "Readers"라고 함) User2를 "Readers" 그룹에 추가합니다.
addgroup readers
adduser User2 readers
/bucket 디렉터리의 그룹 소유권을 "독자"에게 부여합니다.
chgrp readers /bucket
이제 독자 그룹에 /bucket 디렉터리에 대한 읽기 액세스 권한을 부여하고 "other"가 쓰기 액세스만(읽기 불가) 갖도록 설정할 수 있습니다. 또한 쓰기 권한이 있는 사람이 다른 사용자의 파일을 삭제하는 것을 방지하기 위해 고정 비트를 설정했습니다.
chmod 1753 /bucket
완료되면 권한은 다음과 같아야 합니다.
drwxr-x-wt 1 root readers 0 Feb 26 17:08 bucket
이는 루트에게 모든 권한을 부여하며, 독자는 읽을 수는 있지만 쓸 수는 없고, 다른 사람은 디렉터리에 쓸 수 있지만 읽을 수는 없습니다.
보다 세부적인 제어(예: 사용자당 권한)가 필요한 경우 ACL 사용을 고려할 수 있습니다. ACL을 사용하기 위해 위의 프로세스를 약간 변경하겠습니다.
먼저 두 사용자를 모두 포함하는 그룹을 만듭니다. 내 예에서는 이 그룹을 "bucket-users"라고 부르겠습니다.
addgroup bucket-users
adduser User1 bucket-users
adduser User2 bucket-users
다음으로 버킷 사용자 그룹을 제공합니다.완전히 통제하다/버킷 디렉토리. User1이 디렉토리에 넣지 않은 파일을 삭제하는 것을 방지하려면 고정 비트가 다시 필요합니다.
chmod 1770 /bucket
완료되면 권한은 다음과 같아야 합니다.
drwxrwx--T 1 root bucket-users 0 Feb 26 17:08 bucket
다음으로 setfacl 명령을 사용하여 이러한 사용자의 권한을 추가로 제한하겠습니다.
setfacl -m "u:User1:-wx" /bucket
setfacl -m "u:User2:r-x" /bucket
그런 다음 getfacl 명령을 사용하여 이러한 권한을 확인할 수 있습니다.
$ getfacl bucket
# file: bucket
# owner: root
# group: bucket-users
# flags: --t
user::rwx
user:User1:-wx
user:User2:r-x
group::r-x
mask::rwx
other::---