사용자 그룹에 비공개로 NFSv4를 통한 폴더 공유

사용자 그룹에 비공개로 NFSv4를 통한 폴더 공유

일부 사용자가 사용할 수 있는 NFSv4를 통해 폴더를 공유하려고 하는데 권한 문제가 있습니다.

폴더 그룹 소유자로 새 파일이 생성되도록 setGID를 사용하여 폴더 권한을 설정했습니다. 그러나 사용자는 그룹에 대한 권한 없이도 자유롭게 파일을 만들 수 있습니다(실제로 기본 사용자 UMASK는 700이므로 이런 일이 항상 발생합니다).

결국 신청하려고 했는데ACL을 사용하여 디렉토리 umask를 적용하는 이 솔루션. 그렇게 했지만 예상대로 작동하지 않았습니다. 나는에 읽었다NFS 위키일반 ACL은 NFSv4에서 작동하지 않으며 nfs4 전용 ACL 도구를 사용해야 합니다.

그런데 문제가 좀 있어요. 서버에 nfs4-acl-tools 설치를 시도했는데 다음과 같은 결과가 나타납니다.

# nfs4_getfacl /export/proyectos/
Operation to request attribute not supported.

예, 파티션은 ACL 지원을 통해 마운트됩니다.

/dev/mapper/mpath4-part1 /export/proyectos ocfs2 rw,relatime,_netdev,heartbeat=local,nointr,data=ordered,errors=remount-ro,usrquota,coherency=full,user_xattr,acl 0 0

그리고 일반 ACL이 작동합니다.

# getfacl /export/proyectos/
getfacl: Eliminando «/» inicial en nombres de ruta absolutos
# file: export/proyectos/
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

제안한대로 nfs4_getfacl을 추적했습니다.메일링 리스트그리고 이것을 얻었습니다 :

# strace nfs4_getfacl /export/proyectos
<stripped>
getxattr("/export/proyectos", "system.nfs4_acl", 0x0, 0) = -1 EOPNOTSUPP (Operation not supported)
<stripped>

nfs4_getfacl이 올바른 플래그를 요구하고 있습니까? 나는 nfs4_acls가 어떤 파일 시스템에서도 전혀 구현되지 않았으며 현재 nfs4가 일종의 nfs4acl-posixacl 매핑에 의존하고 있다고 생각했습니다. 하지만 더 이상 잘 모르겠습니다.

답변1

getfaclNFS 서버에서 사용해야 하며 (로컬 파일 시스템을 쿼리하기 때문에) nfs4_getfaclNFS 클라이언트에 있을 때 사용해야 합니다.

NFSv4 ACL과 Linux ACL acl(5)은 완전히 다른 표준입니다! Linux NFS 서버는 ACL을 앞뒤로 변환합니다.

게시물 읽기Linux의 nfs 마운트에 acl이 없습니까?.

관련 정보