Tengo una caja NAS de Synology (que ejecuta DSM 5.1) y exporté un directorio a través de NFS. Estoy intentando montarlo en mi caja de Ubuntu.
En su mayoría funciona bien, pero tengo problemas con las asignaciones de usuarios y grupos. En el cuadro de Ubuntu, soy uid 1000 (roger), gid 1000 (roger). En Synology, tengo uid 1026 (roger), grupo 100 (usuarios).
Si uso NFSv3, usa valores numéricos uid / gid, lo que significa que la propiedad está en mal estado en Synology.
Si solo tuviera acceso al montaje NFS desde el mismo cuadro de Ubuntu, usando el mismo usuario, estaría bien, pero también accedo al directorio desde un cuadro de Windows, usando CIFS (SMB), lo que significa que los permisos son incorrecto.
Si utilizo NFSv4 ( mount -o nfsvers=4
), con la configuración predeterminada en Synology, los archivos que pertenecen roger.users
a Synology aparecen roger.users
cuando se ven desde el cuadro de Ubuntu. Esto es bueno.
Sin embargo, cuando tengo touch
un archivo:
roger@ubuntu$ touch /mounts/diskstation/music/foo
Termina siendo propiedad de 1000.1000
Synology, y se muestra como propiedad nobody.4294967294
cuando se ve desde el cuadro de Ubuntu.
Todo lo que puedo encontrar sobre el tema en los foros de Synology data de 2011, cuando NFSv4 no era compatible, o consiste en personas que hacen la misma pregunta y luego se rinden.
Para completar, /etc/exports
tiene:
/volume1/music 10.0.0.0/24(rw,async,no_wdelay,root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
... y lo estoy montando en la caja de Ubuntu con:
mount -t nfs diskstation:/volume1/music /mounts/diskstation/music/ -o rw,nfsvers=4
Encontré algunas pistas de que sec=sys
podría ser un problema: por qué el mapeo uid / gid de NFSv4 no funciona con AUTH_UNIX (AUTH_SYS) , pero eso no tiene una solución.
¿Hay una manera simple de solucionar este problema? ¿Hay alguna forma más compleja ( tos de Kerberos de tos ) para resolver esto?
En serio, si Kerberos es la respuesta, tomaré ese golpe, pero me gustaría saber antes de perder un montón de tiempo.
Actualización : aunque la documentación de Synology habla sobre varias opciones de Kerberos, no puedo encontrarlas en la interfaz de usuario. Las notas de la versión indican "Si se implementa el sabor de seguridad Kerberos ...". Encontré (pero no puedo encontrar de nuevo) una página que implica que podría no estar en ciertos modelos. Tengo un DS211, de acuerdo con la página de información del sistema. Tal vez no tengo suerte?
Respuestas:
Para que la asignación de ID NFSv4 funcione correctamente, tanto el cliente como el servidor deben ejecutar el
idmapd
daemon ID Mapper y tener el mismoDomain
configurado/etc/idmapd.conf
.De esta forma, su cliente NFS envía sus credenciales de identificación como
[email protected]
en los comandos NFS en el cable, y su idmapper del servidor NFS asigna eso a un usuario llamadoroger
en el servidor NFS. El UID y el GID no importan, el mapeador de mapas los asigna en cada sistema.Sin embargo, no me molesto con eso en mi Synology. Mi carpeta compartida tiene los siguientes permisos:
Esto hace que
anonuid=1024,anongid=100
(eladmin
usuario y elusers
grupo) se agreguen a la exportación en/etc/exports
el NAS.Mi cliente NFS (que no tiene el ID Mapper en ejecución) envía mis comandos NFS como mi usuario (
1000:1000
) y debido a que ese UID y GID no existen en el NAS, traduce mi UID y GID para1024:100
que me traten como el Usuario administrador que tiene permiso completo.Este es un uso terriblemente poco profesional e inseguro de NFS para un entorno empresarial, pero solo para mí acceder a mis archivos en casa es un abuso del comportamiento de NFS que es aceptable para mí.
Otra opción es hacer que
roger
el UID y el GID sean iguales en el Cliente NFS y NAS, luego puede usar NFSv4 sin asignación de ID, o puede usar NFSv3 que se basa solo en UID y GID.fuente
Realmente he estado luchando con exactamente el mismo problema. Pasé por la gran molestia de configurar un servidor Kerberos con Docker en Synology, configuré el mapeo de ID, y todavía no me gustó el comportamiento. Kerberos está demasiado diseñado y es difícil seguir trabajando en reinicios y montajes automáticos. Además, la umask predeterminada de los archivos recién creados fue 0000, y cada nuevo archivo se creó en modo 777, sin importar cuál fuera mi umask local.
Mi solución fue similar a la de suprjami, pero la llevé un poco más allá:
roger.remote
. Haga lo mismo para un grupo de usuarios y asígnele el mismo nombre que el nombre de usuario.roger.remote
el UID a 1000, y GID a 1000roger.remote
a 1000 tambiénanonuid=1000,anongid=1000
/usr/syno/etc.defaults/rc.sysv/S83nfsd.sh restart
chmod 777 /volume1
. Tuve muchos problemas extraños con mi directorio de inicio montado. KDE no se iniciará porque laaccess()
función glibc devolverá el acceso denegado en el directorio NFS montado. (Pero cualquier subdirectorio funcionaría) Firefox también tuvo un problema similar, donde se negó a guardar archivos en el directorio montado debido a la verificación de acceso. Aunque los permisos eran correctos, podía tocar / crear / escribir archivos en el directorio montado. Cambiar el directorio padre / volumen1 a escritura mundial solucionó ese problema tonto y engañó a las aplicaciones cliente para que escribieran en él.synoacltool -del /volume1/myshare
. Debería ver el+
símbolo eliminado de la salida ls -l.chown roger.remote:roger.remote /volume1/myshare
chmod 755 /volume1/myshare
En Synology debería ver:
¡Disfrutar!
fuente