로컬 사용자의 UID 및 GID를 마운트 된 NFS 공유에 매핑


36

NFSv4가있는 서버가 있습니다. 원격 사용자의 홈 폴더 내용을 로컬 호스트에 마운트하고 있습니다. 내용을 읽고 쓸 수 있지만 로컬 호스트에서 마운트 된 볼륨에있는 파일의 소유권을 검사 할 때 모두 해당 원격 사용자 및 그룹에 속합니다 (512). 로컬 호스트의 로컬 사용자 및 그룹 (1000)에 속하는 것처럼 보이게하는 방법이 있습니까?

원격 호스트 에서 / etc / exports (IP는 192.168.1.110 임)

/home/user512 192.168.1.142(rw,sync,all_squash,anonuid=512,anongid=512)

의 / etc / fstab 파일로컬 호스트 (IP는 192.168.1.142입니다)

192.168.1.110:/home/user512    /home/localuser/projects/project512   nfs    rw,hard,intr,rsize=32768,wsize=32768    0       0

답변:


34

이것이 idmapping이해야 할 일입니다. 우선, enable은 클라이언트와 서버에 있습니다 :

# echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping

idmap 캐시를 정리하고 idmap 데몬을 다시 시작하십시오.

# nfsidmap -c
# service rpcidmapd restart

이제 서버와 클라이언트에서 bob@YOURDOMAIN.COM 과 같은 숫자 ID 대신 문자열을 전송합니다 . 클라이언트와 서버 모두 호스트에 bob 계정 이 있어야 합니다. 그럼에도 불구하고 숫자 ID는 다를 수 있습니다.


7
Ftr, nfs 서버에서 경로는 / sys / module / nfsd / parameters / nfs4_disable_idmapping (nfsd 아님, nfsd 아님)
Mike Purcell

2
rpcidmapdLinux Mint 클라이언트에는 서비스 가 없습니다 .
코니

1
이 답변에 대한 질문 : echo N > /sys/module/nfsd/parameters/nfs4_disable-idmapping 이 설정을 영구적으로 수행 합니까, 아니면 재부팅 후 매번 재설정해야합니까?
mauritslamers

4
우분투에서 서비스 idmapd대신에 호출 됩니다rpcidmapd
mauritslamers

2
데비안 => idmapd은 NFS-일반 패키지 서비스는 이름nfs-idmapd
필립 Gachoud을

5

거기에 모든 조각이 있습니다. exportfs 매뉴얼 페이지에서 all_squash모든 uid 및 gid를 익명 버전에 매핑합니다. 당신이 쓴 것은 그 값을 512로 강제했습니다. 1000으로 변경하면, 원격 호스트의 nfs 서버는 모든 것을 1000으로 만들고 액세스 권한을 부여해야합니다.


클라이언트의 내 uid는 1000이고 서버에서 같은 이름을 가진 사용자의 uid는 1003입니다. 설정 anonuid=1000,anongid=1000anonuid=1003,anongid=1003(및 nfsserver를 다시 시작하고 공유를 마운트 해제 / 다시 마운트) 시도했지만 작동하지 않습니다. 이 답변이 효과가없는 것처럼 보이기 때문에 하향 조정입니다.
Phrogz

내보내기 및 fstab 항목은 무엇입니까?
becomingwisest

1
/home/gkistner *(async,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)수출 및 10.20.118.112:/home/gkistner /mnt/r2 nfs rsize=8192,wsize=8192,timeo=14,intrfstab
Phrogz

3

nfs 클라이언트에서 /etc/idmapd.conf를 편집하고 변경하십시오.

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

nfs 서비스를 다시 시작하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.