
Ich arbeite in einem Labor mit drei Ubuntu-Systemen und möchte einige Dateisysteme über NFS plattformübergreifend mounten. Obwohl die Systeme teilweise dieselben Benutzernamen haben, stimmen die UIDs und GIDs nicht überein, da die drei Systeme separat eingerichtet wurden. Wenn ich ein NFS-Dateisystem von einem System auf ein anderes mounte, wird der Besitz falsch angezeigt. Wenn beispielsweise UID 1000 Alice auf Server1 ist und dieselbe UID 1000 Bob auf Server2 ist, dann scheinen Bobs Dateien Alice zu gehören, wenn Server1 das exportierte Dateisystem von Server2 mountet.
Gibt es also eine Möglichkeit, NFS (v4) dazu zu bringen, UIDs zwischen Servern über die zugehörigen Benutzernamen zu konvertieren? Als ich danach gegoogelt habe, habe ich viele Verweise auf Kerberos, LDAP oder NIS gefunden, was für eine so einfache Aufgabe ein massiver Overkill zu sein scheint und möglicherweise nicht möglich ist, da diese Systeme nicht zentral verwaltet werden.Dieser Linkscheint darauf hinzudeuten, dass meine Frage unmöglich ist. Ist das richtig?
Bearbeiten: Ich habe jede Konfiguration ausprobiert, /etc/idmapd.conf
die mir eingefallen ist oder die ich im Internet finden konnte, und obwohl der idmapd-Prozess eindeutig ausgeführt wird, habe ich bislang keinerlei Hinweise darauf gesehen, dass NFS überhaupt versucht, ihn zu verwenden, und er hatte zu keinem Zeitpunkt die geringste Auswirkung auf die bei NFS-Mounts gemeldeten Benutzer-IDs.
Antwort1
NFSv4 unterstützt ID-Mapping. Wenn aktiviert, überträgt NFS Benutzernamen statt numerischer IDs. Hosts mit unterschiedlichen numerischen UIDs für denselben Benutzer stellen kein Problem dar, da Benutzernamen auf dem Host UIDs zugeordnet werden.
Die ID-Zuordnung wird immer mit den Kerberos-Sicherheitsmodi ( sec=krb5
) verwendet.
Die ID-Zuordnung kann auch im AUTH_UNIX-Modus (Standard sec=sys
) verwendet werden. Konfigurationsdetails habe ich in der Antwort auf Folgendes erklärt:So bringen Sie NFSv4-IDMAP mit sec=sys zum Laufen.
Antwort2
Ohne zentrale Benutzerverwaltung ist es meiner Meinung nach am besten, alle Server zu zwingen, für jeden Benutzer die gleiche GID und UID zu verwenden. Nun ... ich spreche nur von Dateien und/oder Verzeichnissen.
Was ich in diesem Fall tun würde, ist:
- Registrieren Sie jede aktuell verwendete UID und GID.
- Bearbeiten
/etc/passwd
und/etc/group
ordnen Sie die Gruppen auf allen Servern zu. Am besten mit neuen UIDs und GIDs, damit der nächste Schritt schneller geht Führen Sie Folgendes aus (es wird einige Zeit dauern):
find / -group <OLD_GID> -exec chgrp <NEW_GID> '{}' \+ find / -user <OLD_UID> -exec chown <NEW_UID> '{}' \+