GNU/Linux >> Znalost Linux >  >> Cent OS

Přípojný bod NFSv4 zobrazuje nesprávná vlastnictví jako nikdo:nikdo v CentOS/RHEL

Problém

Připojení NFSv4 nesprávně zobrazuje všechny soubory s vlastnictvím jako „nobody:nobody “. Z klientského serveru má připojená sdílená složka NFSv4 vlastnictví pro všechny soubory a adresáře uvedené jako nikdo:nikdo namísto skutečného uživatele, který je vlastní na serveru NFSv4, nebo dokonce toho, kdo vytvořil nový soubor a adresář.

Také se zobrazí následující chyba v /var/log/messages:

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

Kořenová příčina

V NFSv3 je uživatelské jméno a název_skupiny mapováno z hodnoty UID/GID, UID/GID uživatele vytvářejícího zdroj se uloží na server. Když k němu klientské servery přistupují, zkontroluje se soubor /etc/passwd a /etc/gpasswd, aby se zjistilo, zda id existuje a pro kterého uživatele bude mapováno. Pokud existuje uživatel se stejným uid a gid, bude na tohoto uživatele namapován, jinak se zobrazí číselná hodnota.

V NFSv4 je koncept uživatel@název_domény, pokud neexistuje žádné centralizované mapování uživatelů, pak bude uživatel namapován na výchozího uživatele nikdo nebo jakýkoli uživatel, který byl nakonfigurován v /etc/idmapd.conf.

Nejprve zkontrolujte, zda není konfigurace souboru /etc/imapd.conf poškozena soubor. Pokud provedete změny v souboru idmapd.conf, na CentOS/RHEL 6.5 a novějších je příkaz k vyčištění starých mapování:

# nfsidmap -c

NFSv4 využívá mapování ID k zajištění správného nastavení oprávnění u exportovaných sdílených složek. Pokud se domény klientského serveru a nadřazeného serveru neshodují, pak jsou oprávnění mapována na none:nobody.

Řešení

1. Změňte /etc/idmapd.conf se správným plně kvalifikovaným názvem domény (FQDN) na klientském i nadřazeném serveru. V tomto příkladu je správná doména „example.com“, takže direktiva „Domain =“ v /etc/idmapd.conf by měla být upravena tak, aby zněla:

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

2. Aby se změny projevily, restartujte službu rpcidmapd a znovu připojte souborový systém NFSv4:

# service rpcidmapd restart
# mount -o remount /nfs/mnt/point
Poznámka :Službu rpc.idmapd je nutné restartovat pouze na systémech, kde rpc.idmapd ve skutečnosti provádí mapování id. Na RHEL 6.3 a novějších NFS CLIENTS jsou mapy uloženy v klíčence jádra a samotné mapování id provádí program /sbin/nfsidmap. U starších KLIENTŮ NFS (RHEL 6.2 a starších) a také na všech SERVERech NFS se systémem RHEL se mapování id provádí pomocí rpc.idmapd. Ujistěte se, že klient a server mají odpovídající UID a GID. Je běžnou mylnou představou, že UID a GID se mohou při použití NFSv4 lišit. Účelem mapování id je namapovat id na jméno a naopak. Mapování ID není určeno jako náhrada za správu ID.

Na Red Hat Enterprise Linux 6, pokud byla použita výše uvedená nastavení a UID/GID se shodují na serveru a klientovi a uživatelé stále nejsou mapováni na nikoho:nikdo, pak může být vyžadováno vymazání mezipaměti idmapd.

# nfsidmap -c
Poznámka :Výše ​​uvedený příkaz je nutný pouze na systémech, které používají mapovač id založený na klíčence, např. KLIENTI NFS se systémem RHEL 6.3 a vyšším. U RHEL 6.2 a starších NFS KLIENTŮ a také všech NFS SERVERŮ, na kterých běží RHEL, se při restartování rpc.idmapd vymaže mezipaměť. Další kontrola, zda jsou nastavení passwd:, shadow:a group:správně nastavena v souboru /etc/nsswitch.conf na nadřazeném i klientském serveru.

Deaktivace mapování id

Klienti a servery NFS RHEL6.3 a novější klienti a servery NFS standardně zakazují idmapping při použití autentizace AUTH_SYS/UNIX povolením následujících booleovských příkazů:

klientský server NFS

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

NFS nadřazený server

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

Odstraňování problémů

Pokud výše uvedený plán váš problém nevyřeší, proveďte prosím následující diagnostické kroky:

1. Ladění/upovídanost lze povolit úpravou /etc/sysconfig/nfs :

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

2. Následující výstup se zobrazí v /var/log/messages, když je připojení dokončeno a systém ukazuje none:nobody jako uživatelská a skupinová oprávnění k adresářům a souborům:

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. Shromážděte tcpdump pokusu o připojení:

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


Cent OS
  1. Jak nainstalovat Puppet na CentOS 8 / RHEL 8

  2. Nainstalujte si ownCloud na CentOS 6 / RHEL 6

  3. Nastavte SysLog Server na CentOS 6 / RHEL 6

  1. Jak nastavit SysLog Server na CentOS 7 / RHEL 7

  2. Jak nastavit server NFS na CentOS 7 / RHEL 7

  3. Klient NFSv4 ukazuje „nikdo“ jako vlastníka a skupinu pro přípojný bod (CentOS/RHEL)

  1. Jak nainstalovat vnc server na RHEL 8 / CentOS 8

  2. Jak nainstalovat Puppet 6.x na CentOS 7 / RHEL 7

  3. Nainstalujte MySQL 5.6 na CentOS 7 / RHEL 7