저는 최근에 ACL과 setfacl
각 사용자의 액세스 권한을 설정하는 방법에 대해 배웠습니다. 하지만 구현 방법을 모르는 한 가지는 특정 디렉터리의 특정 사용자에 대한 모든 쓰기(*) 액세스를 제한하는 것입니다.그리고 안에 있는 모든 것.
즉, 사용자 some_user
와 디렉터리 some_dir
( chmod 777 some_dir
사용한다고 가정)를 고려합니다. some_user
쓰기 액세스를 제한하는 방법이 있습니까 ?아니요다른 액세스 권한 some_dir
및 모든 콘텐츠를 변경하시겠습니까?
내가 시도한 것/생각한 것:
setfacl -R -m u:some_user:rx some_dir/
some_user
사용자가 이전에 읽을 수 없었던 파일에 대한 읽기 액세스 권한을 부여하고 사용자가 이전에 실행할 수 없었던 파일에 대한 실행 액세스 권한을 부여하기 때문에 성공하지 못할 것입니다 .- (내가 아는 한) 마스크를 한 사용자에게 특정하게 만들 수 있는 방법이 없기 때문에 마스크를 재귀적
r-x
으로 설정해some_dir
도(다시 ) 그렇게 되지 않습니다.setfacl
ACL 문서를 살펴본 후 이 방향을 가리키는 내용을 발견하지 못했기 때문에 분명히 이 목적으로 ACL을 사용하는 방법을 찾고 있는 것은 아닙니다.
(*) 또는 읽기 또는 실행 액세스 - 어느 쪽인지는 중요하지 않지만 간단하게 유지하기 위해 쓰기 액세스를 고수하겠습니다.
답변1
이제 사용자 p3에 대해 acl을 적용하기 전에 모든 사람이 디렉토리 k2에 대한 전체 액세스 권한을 갖습니다.
mkdir k2
chmod 777 k2
getfacl k2
# file: k2
# owner: praveen
# group: praveen
user::rwx
group::rwx
other::rwx
이제 사용자 p3의 쓰기 액세스를 디렉토리 k2로 제한하겠습니다.
setfacl -m u:p3:rx k2
$ getfacl k2
# file: k2
# owner: praveen
# group: praveen
user::rwx
user:p3:r-x =====> user p3 have only read and execute acess not write
group::rwx
mask::rwx
other::rwx