Il problema
Il montaggio di NFSv4 mostra in modo errato tutti i file con proprietà come "nessuno:nessuno “. Dal server client, la condivisione NFSv4 montata ha la proprietà per tutti i file e le directory elencati come nessuno:nessuno invece dell'utente effettivo che li possiede sul server NFSv4, o anche chi ha creato il nuovo file e directory.
Viene visualizzato anche il seguente errore in /var/log/messages:
nss_getpwnam: name ‘[email protected]’ does not map into domain 'localdomain'
Causa principale
In NFSv3 il nome utente e il nome_gruppo vengono mappati dal valore UID/GID, l'UID/GID dell'utente che crea la risorsa viene salvato sul server. Quando i server client vi accedono, i file /etc/passwd e /etc/gpasswd verranno controllati per vedere se l'id esiste e per quale utente verrà mappato. Se esiste un utente con lo stesso uid e gid, verrà mappato a quell'utente, altrimenti verrà mostrato il valore numerico.
In NFSv4 il concetto è utente@nomedominio, se non esiste una mappatura utente centralizzata, l'utente verrà mappato sull'utente predefinito nessuno o qualsiasi altro utente sia stato configurato in /etc/idmapd.conf.
Per prima cosa controlla la configurazione errata di /etc/imapd.conf file. Se apporti modifiche al file idmapd.conf, su CentOS/RHEL 6.5 e versioni successive il comando per ripulire le vecchie mappature è:
# nfsidmap -c
NFSv4 utilizza la mappatura ID per garantire che le autorizzazioni siano impostate correttamente sulle condivisioni esportate. Se i domini del server client e del server padre non corrispondono, le autorizzazioni vengono mappate su nessuno:nessuno.
La soluzione
1. Modificare /etc/idmapd.conf con il nome di dominio completo (FQDN) corretto, sia sul client che sul server di appartenenza. In questo esempio, il dominio corretto è "example.com", quindi la direttiva "Domain =" all'interno di /etc/idmapd.conf dovrebbe essere modificata in:
# vi /etc/idmapd.conf Domain = oracle.com
2. Per rendere effettive le modifiche, riavviare il servizio rpcidmapd e rimontare il filesystem NFSv4:
# service rpcidmapd restart # mount -o remount /nfs/mnt/pointNota :È solo necessario riavviare il servizio rpc.idmapd sui sistemi in cui rpc.idmapd sta effettivamente eseguendo la mappatura id. Su RHEL 6.3 e NFS CLIENTS più recenti, le mappe sono memorizzate nel keyring del kernel e la mappatura id stessa viene eseguita dal programma /sbin/nfsidmap. Sui vecchi CLIENT NFS (RHEL 6.2 e precedenti) così come su tutti i SERVER NFS che eseguono RHEL, la mappatura id viene eseguita da rpc.idmapd. Assicurati che il client e il server dispongano di UID e GID corrispondenti. È un malinteso comune che gli UID e i GID possano essere diversi quando si utilizza NFSv4. Lo scopo della mappatura id è mappare id a un nome e viceversa. La mappatura degli ID non è intesa come sostituzione della gestione degli ID.
Su Red Hat Enterprise Linux 6, se le impostazioni di cui sopra sono state applicate e gli UID/GID sono abbinati su server e client e gli utenti non vengono ancora mappati su nessuno:nessuno quindi potrebbe essere necessaria una cancellazione della cache idmapd.
# nfsidmap -cNota :Il comando precedente è necessario solo su sistemi che utilizzano l'id mapper basato su keyring, ad es. CLIENT NFS con RHEL 6.3 e versioni successive. Su RHEL 6.2 e CLIENT NFS precedenti, nonché su tutti i SERVER NFS che eseguono RHEL, la cache viene svuotata al riavvio di rpc.idmapd. Un altro controllo, verifica se le impostazioni passwd:, shadow:e group:sono impostate correttamente nel file /etc/nsswitch.conf sia sul server principale che su quello client.
Disabilitazione mappatura ID
Per impostazione predefinita, i client e server NFS RHEL6.3 e più recenti disabilitano l'idmapping quando si utilizza l'autenticazione AUTH_SYS/UNIX abilitando le seguenti istruzioni booleane:
Server client NFS
# echo 'Y' > /sys/module/nfs/parameters/nfs4_disable_idmapping
Server padre NFS
# echo 'Y' > /sys/module/nfsd/parameters/nfs4_disable_idmapping
Risoluzione dei problemi
Se il piano di cui sopra non risolve il tuo problema, esegui i seguenti passaggi diagnostici:
1. È possibile abilitare il debug/verbosità modificando /etc/sysconfig/nfs :
# vi /etc/sysconfig/nfs RPCIDMAPDARGS="-vvv"
2. Il seguente output viene mostrato in /var/log/messages quando il montaggio è terminato e il sistema mostra nessuno:nessuno come utente e permessi di gruppo su directory e file:
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. Raccogli un tcpdump del tentativo di montaggio:
# tcpdump -s0 -i {INTERFACE} host {NFS.SERVER.IP} -w /tmp/{SR_number}-$(hostname)-$(date +”%Y-%m-%d-%H-%M-%S”).pcap &