nfs 공유를 구성 중이며 /etc/exports는 다음과 같습니다.
/nfs_anon 192.168.122.0/24(rw,all_squash,anonuid=1111,anongid=1111)
모든 클라이언트에서 사용자 uid 1111에 대한 umask를 설정하지 않고 클라이언트가 서버의 기본 umask를 사용하도록 강제하는 방법이 있습니까?
목표는 클라이언트가 umask 값에 관계없이 기본적으로 특정 권한 집합을 사용하여 파일을 생성하도록 하는 것입니다.
답변1
첫째, NFS 버전 3 또는 4를 사용하고 있습니까? 버전 3의 경우 서버와 클라이언트 모두 NFSACL 확장을 지원합니까?
NFSv3 + NFSACL 또는 NFSv4를 사용하고 NFS 서버의 실제 파일 시스템이 ACL을 지원하는 경우 NFS 서버에서 비슷한 작업을 수행할 수 있습니다(필요에 맞게 권한 조정).
setfacl -m d:u::rwx,d:g::rwx,d:o::rwx /nfs_anon
공유에 이미 하위 디렉터리가 있는 경우 공유의 최상위 디렉터리와 모든 기존 하위 디렉터리에 기본 ACL을 적용할 수 있습니다.
find /nfs_anon -type d -exec setfacl -m d:u::rwx,d:g::rwx,d:o::rwx {} \+
기본 마스크 ACL이 공유된 최상위 디렉터리에 적용되면 해당 디렉터리 내에 생성된 모든 새 하위 디렉터리는 자동으로 동일한 기본 마스크 ACL을 갖게 됩니다.
둘째, ACL을 사용하더라도 이는 새로운 기본 마스크만 적용한다는 점에 유의하세요. 결과 권한은 파일을 생성한 프로그램이 요청한 내용에 따라 결정됩니다(일반적으로 일반 파일의 경우 0666, 실행 파일/디렉터리의 경우 0777).
내가 아는 한, x
ACL도 프로그램이 처음에 권한 비트를 요청하지 않은 경우 권한 비트를 설정할 수 없습니다. 프로그램의 원래 요청에서 비트를 뺄(마스크)만 할 수 있습니다.