Tengo seis máquinas, un servidor NFS y cinco clientes. Tres clientes (que ejecutan Ubuntu 14.04) funcionan bien. Los otros dos, que ejecutan 12.04, presentan errores de permisos.
En la máquina cliente asignada, ls -l /home/
devuelve:
drwxr-xr-x 22 testuser testuser 12288 Oct 9 18:03 testuser
Esta es la configuración de permisos esperada. testuser
es el usuario que necesita permiso para esta carpeta.
Pero, cuando inicio sesión testuser
, aparece touch /home/testuser/test.txt
este error:
touch: cannot touch `/home/testuser/test.txt': Permission denied
Ahora, los identificadores numéricos NO coinciden con las cadenas de identificadores, peroMe han dicho que este no tiene por qué ser el caso.
Configuración del cliente:
cat /sys/module/nfs/parameters/nfs4_disable_idmapping
N
La configuración anterior permite a NFS asignar los permisos del usuario utilizando cadenas, no UID y GID numéricos.
cat /etc/idmapd.conf
[General]
Verbosity = 0
Pipefs-Directory = /run/rpc_pipefs
# set your own domain here, if id differs from FQDN minus hostname
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nogroup
Configuración del servidor:
cat /etc/exports
/raid/nfs/home server1(rw,sync,no_root_squash,no_subtree_check)
/raid/nfs/home server2(rw,sync,no_root_squash,no_subtree_check)
¿Hay algún error o paso adicional que debo seguir para que las máquinas 12.04 funcionen correctamente? ¿O debería simplemente hacer el esfuerzo y actualizar, o simplemente cambiar todos los UID para que coincidan con el servidor?
Respuesta1
el problema es que idmapd está involucrado solo cuando haces GETATTR/SETATTR (stat, chown, setacl) o se usa kerberos (para el mapeo de principal a id). Pero cuando el cliente nfs envía una solicitud CREATE con auth=sys, uid y gid se toman del mensaje RPC. Por lo tanto, necesita una coincidencia de uid y gid en el servidor y el cliente para resolver su problema de permisos.