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
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
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
.
Estoy teniendo problemas para hacerlo funcionar. Ver http://serverfault.com/questions/421668/folder-shares-over-nfsv4-private-to-user-groups