Wie ordne ich den NFS-Client-Root-Benutzer dem NFS-Server-Root-Benutzer zu?

1

Wir haben ein Problem bei der Verwendung von NFS. Wir können nicht in ein Verzeichnis auf dem NFS-Clientcomputer schreiben, wenn dieses Verzeichnis auf dem NFS-Server erstellt wurde. Der Grund scheint eine Datei- / Verzeichnisberechtigung und eine Benutzerzuordnung zu sein.

Unser Setup:

Wir haben 2 EC2-Knoten - Ubuntu 16.04.2 LTS

Auf einem Computer installierter NFS-Server:

ubuntu@master:~$ less /etc/exports
/home/ubuntu/data *(rw,no_subtree_check,sync,insecure)

Dasselbe Verzeichnis ist auf einem anderen Computer installiert:

sudo mkdir /home/ubuntu/data
sudo mount -t nfs masterIp:/home/ubuntu/data /home/ubuntu/data

Ein Problem, das wir haben:

Wenn wir ein Verzeichnis in NFS in einem Master erstellen, wird es folgendermaßen erstellt:

# sudo mkdir /home/ubuntu/data/Test
# sudo ls -all /home/ubuntu/data
drwxr-xr-x  2 root  root       4096 Jul  5 07:19 Test

Der Master hat keine Probleme beim Zugriff auf dieses Verzeichnis und beim Erstellen der Datei insideeetc. Wenn wir jedoch versuchen, eine Datei von einem Slave-Knoten innerhalb des Testverzeichnisses zu erstellen, wird der Fehler "Berechtigung verweigert" angezeigt.

Wenn wir ein Verzeichnis von einem NFS-Client-Computer erstellen, sieht es so aus:

# sudo mkdir /home/ubuntu/data/Test2
# sudo ls -all /home/ubuntu/data
drwxr-xr-x  2 root  root       4096 Jul  5 07:19 Test
drwxr-xr-x  2 nobody nogroup   4096 Jul  5 07:21 Test2

Es scheint also, dass der Root-Benutzer des NFS-Clients beim Schreiben in NFS-Verzeichnisse nobody @ nogroup zugeordnet ist und daher nicht in Verzeichnisse schreiben kann, die vom Root-Benutzer auf dem NFS-Server erstellt wurden. Wir müssen den Root-Benutzer einer NFS-Clinet dem Root-Benutzer eines NFS-Servers zuordnen, damit beide Benutzer frei mit Verzeichnissen arbeiten können, unabhängig davon, wo sie erstellt wurden.

MaxNevermind
quelle

Antworten:

3

Verwenden Sie die no_root_squash Option in Ihrem /etc/exports Eintrag. Von der Handbuchseite für exports:

Benutzer-ID-Zuordnung

nfsd basiert seine Zugriffssteuerung auf Dateien auf dem Serverrechner auf dem   UID und GID werden in jeder NFS-RPC-Anforderung bereitgestellt. Das normale Verhalten a   Benutzer würde erwarten, dass sie nur auf ihre Dateien auf dem Server zugreifen kann   wie auf einem normalen Dateisystem. Dies setzt voraus, dass die gleichen uids   und gids werden auf dem Client- und dem Server-Computer verwendet. Das ist nicht   immer wahr, noch ist es immer wünschenswert.

Sehr oft ist es nicht wünschenswert, dass sich der Root-Benutzer auf einem Client-Rechner befindet   wird auch als root behandelt, wenn auf Dateien auf dem NFS-Server zugegriffen wird. Zu   dieses Ende, UID 0 wird normalerweise einer anderen ID zugeordnet: der sogenannten   anonym oder niemand uid . Diese Betriebsart ('root' genannt)   squashing ') ist die Standardeinstellung und kann mit ausgeschaltet werden no_root_squash.

Larssend
quelle