Mapowanie UID i GID użytkownika lokalnego do zamontowanego udziału NFS

36

Mam serwer z NFSv4. Montuję zawartość folderu domowego zdalnego użytkownika na lokalnym hoście. Mogę czytać i zapisywać zawartość, ale kiedy sprawdzam własność plików na podłączonym woluminie z lokalnego hosta, wszystkie one należą do odpowiedniego zdalnego użytkownika i grupy (512). Czy jest jakiś sposób, aby wyglądać tak, jakby należał do lokalnego użytkownika i grupy (1000) na lokalnym hoście?

/ etc / export na zdalnym hoście (adres IP to 192.168.1.110)

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

/ etc / fstab na lokalnym hoście (adres IP to 192.168.1.142)

192.168.1.110:/home/user512    /home/localuser/projects/project512   nfs    rw,hard,intr,rsize=32768,wsize=32768    0       0
Alexander
źródło

Odpowiedzi:

34

To właśnie powinno zrobić idmapping. Po pierwsze, enable znajduje się na kliencie i serwerze:

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

wyczyść pamięć podręczną idmap i zrestartuj demona idmap:

# nfsidmap -c
# service rpcidmapd restart

Teraz na serwerze, a klient wyśle ​​zamiast identyfikatorów numerycznych ciąg znaków takich jak [email protected] . Musisz mieć konto BOB na obu hostach - kliencie i serwerze. Niemniej jednak numeryczne identyfikatory mogą być różne.

kofemann
źródło
7
Ftr, na serwerze NFS ścieżka to / sys / module / nfsd / parameters / nfs4_disable_idmapping (nfsd, nie nfs)
Mike Purcell,
2
Brak usługi rpcidmapdna moim kliencie Linux Mint.
Corni,
1
Pytanie o tę odpowiedź: czy zrobienie echo N > /sys/module/nfsd/parameters/nfs4_disable-idmapping sprawi, że to ustawienie będzie trwałe, czy też będę musiał je resetować za każdym razem po ponownym uruchomieniu?
mauritslamers
4
W Ubuntu usługa jest nazywana idmapdzamiastrpcidmapd
mauritslamers
2
Debian => idmapd z pakietu nfs-common Usługa nazywa sięnfs-idmapd
Philippe Gachoud
5

Masz tam wszystkie elementy. Ze strony podręcznika exportfs all_squashmapuje wszystkie identyfikatory użytkownika do wersji anonimowych. To, co napisałeś, zmusiło te wartości do 512. Jeśli zmienisz na 1000, serwer nfs na zdalnym hoście sprawi, że wszystko będzie 1000, i dostęp powinien zostać przyznany.

stawanie się
źródło
Mój identyfikator użytkownika na kliencie to 1000, identyfikator użytkownika o tej samej nazwie na serwerze to 1003. Próbowałem ustawić anonuid=1000,anongid=1000i anonuid=1003,anongid=1003(zrestartować serwer nfsserver i cofnąć / ponownie zamontować udział) i żadne z nich nie działa. Głosowanie w dół, ponieważ wydaje się, że ta odpowiedź nie działa.
Phrogz
Tylko dla potwierdzenia, jakie są twoje wpisy dotyczące eksportu i fstab?
zostanie
1
/home/gkistner *(async,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)w eksporcie i 10.20.118.112:/home/gkistner /mnt/r2 nfs rsize=8192,wsize=8192,timeo=14,intrfstab
Phrogz
3

na swoim kliencie NFS edytuj /etc/idmapd.conf i zmień

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

po tym ponownie uruchom usługę NFS

c4f4t0r
źródło