Zuordnung von UID und GID des lokalen Benutzers zur gemounteten NFS-Freigabe

36

Ich habe einen Server mit NFSv4. Ich mounte den Inhalt des Home-Ordners des Remote-Benutzers auf den lokalen Host. Kann Inhalte lesen und schreiben, aber wenn ich den Besitz von Dateien auf dem bereitgestellten Volume vom lokalen Host aus überprüfe, gehören sie alle dem entsprechenden Remote-Benutzer und der entsprechenden Remote-Gruppe (512). Gibt es eine Möglichkeit, es so aussehen zu lassen, als ob es dem lokalen Benutzer und der Gruppe (1000) auf dem lokalen Host gehört?

/ etc / exports auf dem Remote- Host (IP ist 192.168.1.110)

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

/ etc / fstab auf lokalem Host (IP ist 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
quelle

Antworten:

34

Dies ist, was Idmapping tun soll. Zunächst ist enable auf dem Client und dem Server:

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

Bereinige den idmap Cache und starte den idmap Daemon neu:

# nfsidmap -c
# service rpcidmapd restart

Jetzt senden Server und Client anstelle von numerischen IDs String-Principals wie [email protected] . Sie müssen auf beiden Hosts - Client und Server - einen Bob- Account haben . Die numerischen IDs können jedoch unterschiedlich sein.

Kofemann
quelle
7
Ftr, auf dem NFS-Server ist der Pfad / sys / module / nfsd / parameters / nfs4_disable_idmapping (nfsd, nicht nfs)
Mike Purcell
2
Kein Dienst rpcidmapdauf meinem Linux Mint-Client.
Corni
1
Frage zu dieser Antwort: Wird echo N > /sys/module/nfsd/parameters/nfs4_disable-idmapping diese Einstellung dauerhaft sein oder muss ich sie nach jedem Neustart neu einstellen?
Mauritslamers
4
Unter Ubuntu heißt der Dienst idmapdstattrpcidmapd
mauritslamers 18.11.16
2
Debian => idmapd von nfs-common package Der Dienst heißtnfs-idmapd
Philippe Gachoud
5

Sie haben alle Stücke dort. Ordnet in der exportfs-Manpage all_squashalle Uids und Gids den anonymen Versionen zu. Was Sie geschrieben haben, erzwang, dass diese Werte 512 sind. Wenn Sie zu 1000 wechseln, würde der nfs-Server auf dem Remote-Host alles auf 1000 setzen, und der Zugriff sollte gewährt werden.

am weisesten werden
quelle
Meine UID auf dem Client ist 1000, die UID des gleichnamigen Benutzers auf dem Server ist 1003. Ich habe versucht, die Freigabe zu setzen anonuid=1000,anongid=1000und anonuid=1003,anongid=1003(und den nfsserver neu zu starten und die Freigabe zu entfernen / erneut zu laden), und beide funktionieren nicht. Downvoting, weil diese Antwort nicht zu funktionieren scheint.
Phrogz
Nur um zu bestätigen, was sind Ihre Export- und Fstab-Einträge?
wird
1
/home/gkistner *(async,rw,all_squash,anonuid=1000,anongid=1000,no_subtree_check)im Export und 10.20.118.112:/home/gkistner /mnt/r2 nfs rsize=8192,wsize=8192,timeo=14,intrin fstab
Phrogz
3

Bearbeiten Sie auf Ihrem NFS-Client /etc/idmapd.conf und ändern Sie

[Mapping]

Nobody-User = myappuser
Nobody-Group = myappuser

Starten Sie danach den nfs-Dienst neu

c4f4t0r
quelle