10.6. Problemas con los permisos en NFS
Uno de los problemas que plantea el uso de NFS es que no permite validar a los usuarios que tratan de acceder a una carpeta compartida. En realidad, el servidor NFS envía al cliente los permisos de cada archivo y subcarpeta que encuentre dentro de la carpeta compartida. Además, también se envía el UID del usuario propietario y el GID de su grupo principal.
El problema es que, cuando existan usuarios y/o grupos en los equipos cliente que tengan asignado el mismo UID o dispongan del mismo GID para su grupo principal, estos usuarios locales asumirán los permisos que tenían los usuarios del equipo servidor sobre el contenido de las carpetas compartidas.
Dicho así, parece un poco lioso, pero vamos a tratar de explicarlo usando el siguiente ejemplo:
Este ejemplo ilustra varias posibles situaciones:
- Los usuarios root y usuario existen tanto en el servidor como en los clientes y tienen los mismos valores UID y GID, por lo que podrán utilizar los elementos compartidos sin ningún problema.
- El usuario jlopez existe tanto en el servidor como en los clientes, sin embargo, como no coinciden ni sus UID ni sus GID, el usuario de un equipo cliente no podrá usar los datos compartidos que pertenezcan a la misma cuenta del equipo servidor. Sin embargo, sí que podrá beneficiarse de los permisos heredados del grupo cuyo GID es 1030, aunque se trate de grupos diferentes (en el servidor corresponde con el grupo Direccion y en los clientes con el grupo Almacen).
- Igual de curioso resulta el caso del usuario fgil, que podrá acceder desde un equipo cliente a los datos compartidos que pertenezcan a la cuenta aperez del servidor, ya que, aunque el nombre de las cuentas es diferente, sus valores UID y GID son los mismos.
La opción root_squash es el valor predeterminado, por lo que no es necesario incluirlo de forma explícita
Afortunadamente, si estamos usando la opción root_squash en las definiciones de las carpetas compartidas que incluimos en el archivo /etc/exports, el superusuario del equipo cliente no tendrá plenos poderes sobre los archivos compartidos por el servidor. Lógicamente, sí que mantendrá los privilegios sobre sus propios archivos.
Como vemos, el tratamiento que hace NFS de las cuentas de usuarios y grupos se aleja bastante de lo deseable. Sin embargo, los problemas que hemos ilustrado más arriba desaparecen cuando combinamos el uso de NFS con la autenticación centralizada de LDAP, pero esto no lo aprenderemos hasta el próximo capítulo.