GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Der NFSv4-Mountpoint zeigt in CentOS/RHEL falsche Eigentumsrechte als „body:nobody“ an

Das Problem

NFSv4-Mount zeigt fälschlicherweise alle Dateien mit Eigentümern als „nobody:nobody an “. Vom Client-Server aus hat die gemountete NFSv4-Freigabe die Eigentümerschaft für alle Dateien und Verzeichnisse, die als „body:nobody“ aufgeführt sind, anstatt des tatsächlichen Benutzers, dem sie auf dem NFSv4-Server gehören, oder sogar, der die neue Datei und das neue Verzeichnis erstellt hat.

Außerdem wird der folgende Fehler in /var/log/messages angezeigt:

nss_getpwnam: name ‘[email protected]’ does not map into domain 'localdomain'

Ursache

In NFSv3 werden der Benutzername und der Gruppenname vom UID/GID-Wert abgebildet, die UID/GID des Benutzers, der die Ressource erstellt, wird auf dem Server gespeichert. Wenn die Client-Server darauf zugreifen, werden die Dateien /etc/passwd und /etc/gpasswd überprüft, um festzustellen, ob die ID existiert und welchem ​​Benutzer sie zugeordnet wird. Wenn es einen Benutzer mit derselben uid und gid gibt, wird er diesem Benutzer zugeordnet, andernfalls wird der numerische Wert angezeigt.

In NFSv4 ist das Konzept user@domainname, wenn es keine zentralisierte Benutzerzuordnung gibt, dann wird der Benutzer dem Standardbenutzer none oder einem anderen Benutzer zugeordnet, der in /etc/idmapd.conf konfiguriert wurde.

Überprüfen Sie zuerst die fehlerhafte Konfiguration von /etc/imapd.conf Datei. Wenn Sie Änderungen an der Datei idmapd.conf vornehmen, lautet der Befehl unter CentOS/RHEL 6.5 und neuer zum Bereinigen der alten Zuordnungen:

# nfsidmap -c

NFSv4 verwendet die ID-Zuordnung, um sicherzustellen, dass die Berechtigungen für exportierte Freigaben ordnungsgemäß festgelegt werden. Wenn die Domänen des Client-Servers und des übergeordneten Servers nicht übereinstimmen, werden die Berechtigungen auf niemand:niemand.

abgebildet

Die Lösung

1. Ändern Sie die /etc/idmapd.conf mit dem richtigen vollqualifizierten Domänennamen (FQDN) sowohl auf dem Client als auch auf dem übergeordneten Server. In diesem Beispiel ist die richtige Domain „example.com“, also sollte die Direktive „Domain =“ in /etc/idmapd.conf wie folgt geändert werden:

# vi /etc/idmapd.conf
Domain = oracle.com

2. Um die Änderungen in Kraft zu setzen, starten Sie den rpcidmapd-Dienst neu und mounten Sie das NFSv4-Dateisystem erneut:

# service rpcidmapd restart
# mount -o remount /nfs/mnt/point
Hinweis Hinweis:Es ist nur erforderlich, den rpc.idmapd-Dienst auf Systemen neu zu starten, auf denen rpc.idmapd tatsächlich die ID-Zuordnung durchführt. Auf RHEL 6.3 und neueren NFS-CLIENTS werden die Zuordnungen im Kernel-Schlüsselbund gespeichert und die ID-Zuordnung selbst wird vom Programm /sbin/nfsidmap durchgeführt. Auf älteren NFS-CLIENTS (RHEL 6.2 und älter) sowie auf allen NFS-SERVERN, auf denen RHEL ausgeführt wird, wird die ID-Zuordnung von rpc.idmapd durchgeführt. Stellen Sie sicher, dass Client und Server über übereinstimmende UIDs und GIDs verfügen. Es ist ein weit verbreiteter Irrglaube, dass die UIDs und GIDs unterschiedlich sein dürfen, wenn NFSv4 verwendet wird. Der Zweck der ID-Zuordnung besteht darin, eine ID einem Namen zuzuordnen und umgekehrt. Das ID-Mapping ist nicht als Ersatz für das ID-Management gedacht.

Wenn unter Red Hat Enterprise Linux 6 die oben genannten Einstellungen angewendet wurden und UID/GIDs auf Server und Client übereinstimmen und Benutzer immer noch niemandem zugeordnet werden:niemand, dann muss möglicherweise der idmapd-Cache geleert werden.

# nfsidmap -c
Hinweis :Der obige Befehl ist nur auf Systemen erforderlich, die den Keyring-basierten ID-Mapper verwenden, z. NFS-CLIENTS mit RHEL 6.3 und höher. Auf RHEL 6.2 und älteren NFS-CLIENTS sowie allen NFS-SERVERN, auf denen RHEL ausgeführt wird, wird der Cache gelöscht, wenn rpc.idmapd neu gestartet wird. Überprüfen Sie erneut, ob die Einstellungen für passwd:, shadow:und group:in der Datei /etc/nsswitch.conf sowohl auf dem Parent- als auch auf dem Client-Server richtig eingestellt sind.

ID-Mapping deaktivieren

Standardmäßig deaktivieren RHEL6.3 und neuere NFS-Clients und -Server die ID-Zuordnung, wenn sie die Authentifizierungsvariante AUTH_SYS/UNIX verwenden, indem sie die folgenden booleschen Anweisungen aktivieren:

NFS-Client-Server

# echo 'Y' > /sys/module/nfs/parameters/nfs4_disable_idmapping

Übergeordneter NFS-Server

# echo 'Y' > /sys/module/nfsd/parameters/nfs4_disable_idmapping

Fehlerbehebung

Wenn der obige Plan Ihr Problem nicht löst, führen Sie bitte die folgenden Diagnoseschritte durch:

1. Debugging/Ausführlichkeit kann durch Bearbeiten von /etc/sysconfig/nfs aktiviert werden :

# vi /etc/sysconfig/nfs
RPCIDMAPDARGS="-vvv"

2. Die folgende Ausgabe wird in /var/log/messages angezeigt, wenn das Einhängen abgeschlossen ist und das System niemanden:nobody als Benutzer- und Gruppenberechtigungen für Verzeichnisse und Dateien anzeigt:

Jul 3 00:23:18 node1 rpc.idmapd[1874]: nss_getpwnam: name ‘[email protected]’ does not map into domain ‘localdomain’
Jun 3 00:26:54 node1 rpc.idmapd[1874]: nss_getpwnam: name ‘[email protected]’ does not map into domain ‘localdomain’

3. Sammeln Sie einen tcpdump des Ladeversuchs:

# tcpdump -s0 -i {INTERFACE} host {NFS.SERVER.IP} -w /tmp/{SR_number}-$(hostname)-$(date +”%Y-%m-%d-%H-%M-%S”).pcap &


Cent OS
  1. So installieren Sie Puppet unter CentOS 8 / RHEL 8

  2. Installieren Sie ownCloud auf CentOS 6 / RHEL 6

  3. SysLog-Server auf CentOS 6 / RHEL 6 einrichten

  4. So richten Sie einen SysLog-Server unter CentOS 7 / RHEL 7 ein

  5. So installieren Sie Puppet 6.x auf CentOS 7 / RHEL 7

So installieren Sie Redis Server auf CentOS 8 / RHEL 8

So richten Sie den NFS-Server unter CentOS 8 / RHEL 8 ein

So installieren Sie Zabbix Server 4.x unter CentOS 6 / RHEL 6

Installieren Sie die Gnome-GUI auf CentOS 7 / RHEL 7

Installieren Sie Nginx unter CentOS 7 / RHEL 7

So installieren Sie Zabbix Server 5.0 / 4.0 unter CentOS 7 / RHEL 7