Táboa de Contidos

Compartir un directorio entre varios usuarios mediante NFS

Preparar el sistema de archivos

El directorio debe estar compartido por NFS con la opción root_squash.

cat /var/lib/nfs/etab | grep root_squash

El sistema de archivos debe tener la opción xattr activada y debe estar montado también con esta opción.

mount | grep xattr

Si no lo estuviera, debe añadirse la opción xattr al fstab y el sistema de archivos también debe soportarlo. Por ejemplo, para añadírselo a un sistema de archivos ocfs2:

tunefs.ocfs2 --fs-features=xattr /dev/mapper/mpath4-part1

Establecer los permisos adecuadamente

El directorio debe tener como grupo propietario uno al que pertenezcan todos los usuarios. El grupo debe tener el mismo GID tanto en el cliente como en el servidor. Lo mejor es que ambos los cojan de un servidor LDAP.

Para comprobarlo, en el servidor:

stat -c %g /export/raiz/compartido

En el cliente:

stat -c %g /mnt

El directorio debe tener el permiso SetGID (g+s) y permiso de lectura y escritura para el usuario y grupo.

chmod g+s /export/raiz/compartido
chmod u+rwx /export/raiz/compartido
chmod o-rwx /export/raiz/compartido

Usando NFS3

Debe forzarse los permisos 770 para el raiz del directorio compartido, para evitar que los archivos creados por los usuarios puedan tener permisos que los hagan ilegibles por otros usuarios del mismo grupo.

setfacl -d --set u::rwx,g::rwx,o::--- /export/raiz

Por último, el sistema de archivos debe estar montado con la opción acl. Para remontarlo en el momento (se pierde al reiniciar):

mount -o remount,acl /export/raiz

Si estás usando un servidor NFS4, debes montar con la opción nfsvers=3 y el tipo nfs.

Los clientes también deben montar la carpeta con la opción acl.

Usando NFS4

Estoy teniendo problemas para hacerlo funcionar. Ver http://serverfault.com/questions/421668/folder-shares-over-nfsv4-private-to-user-groups