
나는 다음과 같은 환경을 가지고 있습니다 :
host1: zfs 2.1.11이 포함된 Debian 12: 기본 패키지 nfs-utils 2.6을 사용하여 LDAP 서버 열기
호스트2: Debian 12: 기본 패키지인 nfs-utils 2.6을 사용하여 LDAP 클라이언트 열기
LDAP 서버 측에는 Primarygroup1과 Primarygroup2라는 두 개의 그룹이 생성되었으며 user1 사용자는 Primarygroup2 그룹에 속합니다.
서버 측
getent group:
primarygroup1:*:1000001:
primarygroup2:*:1000002:
getent passwd:
user1:x:1000001:1000002:user1:/home/user1:/bin/false
서버는 권한이 있는 파일과 함께 NFS를 통해 데이터세트를 제공합니다.
NFS 엑스포:
exportfs -v
/tank/d1 <world>(sync,wdelay,hide,fsid=9a31889cb81531154198e4c3c5156b74,sec=sys,rw,secure,no_root_squash,no_all_squash)
파일 권한:
getfacl /tank/d1/file.txt
getfacl: Removing leading '/' from absolute path names
# file: tank/d1/file.txt
# owner: root
# group: primarygroup1
user::rwx
group::r--
other::---
고객 입장에서:
NFS 마운트
mount
192.168.164.200:/tank/d1 on /mnt/testnfs type nfs
(rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.164.200,mountvers=3,mountport =53721,mountproto=udp,local_lock=none,addr=192.168.164.200)
파일에 대한 권한
getfacl /mnt/testnfs/file.txt
getfacl: Removing leading '/' from absolute path names
# file: mnt/testnfs/file.txt
# owner: root
# group: primarygroup1
user::rwx
group::r--
other::---
getent group:
primarygroup1:*:1000001:
primarygroup2:*:1000002:
getent passwd:
user1:x:1000001:1000002:user1:/home/user1:/bin/false
문제는 클라이언트 측 user1이 파일을 읽을 수 있는 권한이 없고, Primarygroup1에 속하지 않지만 파일을 읽을 수 있다는 것입니다.
user1@deb12nfsclient:/root$ cat /mnt/testnfs/file.txt
####### data ######
NFS 서버를 다시 시작하고 다시 마운트하면 도움이 될 때도 있지만 대부분의 경우에는 작동하지 않습니다. 또한 약 15분 후에 NFS 서버를 다시 시작하지 않고도 이러한 권한이 저절로 올바르게 작동하는 것을 확인했습니다.
약 15분 후:
user1@deb12nfsclient:/root$ cat /mnt/testnfs/file.txt
cat: /mnt/testnfs/file.txt: Permission denied
클라이언트 측에서는 noac, actimeo=0 마운트 옵션을 사용했지만 도움이 되지 않았습니다.
왜 이런 식으로 동작하는지 아는 사람이 있나요? 권한이 제대로 작동하도록 이 시간을 단축할 수 있는 방법이 있나요?
감사합니다 아담