
Tengo problemas para que los archivos aparezcan usando un montaje NFSv4 entre
Server: Ubuntu 20.04, 192.168.1.1
Client: Ubuntu 18.04, 192.168.1.2
En el servidor tengo una carpeta y un archivo.
/home/server/files/myfile.pdf
(tenga en cuenta que se utiliza 'servidor' como nombre de cuenta de usuario). Aquí está la cadena completa de propiedad y permisos del archivo original:
drwxr-xr-x root:root /
drwxr-xr-x root:root /home/
drwxr-xr-x server:server /home/server/
drwxrwxr-x server:nfsgroup /home/server/files/
-rwxrwxrwx server:nfsgroup /home/server/files/myfile.pdf
Aquí puedes ver un ejemplo de una utilidad 'usuario':'grupo' que creé:
nfsuser uid=127
nfsgroup gid=134
Tanto 'nfsuser' como 'server' están en el grupo 'nfsgroup'.
En el servidor, tengo el /files/
directorio enlazado montado en /srv/nfs4/files/
in /etc/fstab
, con una entrada
/home/server/files /srv/nfs4/files none bind 0 0
Esto fue exitoso y puedo ver claramente el /srv/nfs4/files/myfile.pdf
archivo como
-rwxrwxrwx server:nfsgroup /srv/nfs4/files/myfile.pdf
Aquí está la cadena total de propiedad y permisos del archivo montado y servido:
drwxr-xr-x root:root /
drwxr-xr-x root:root /srv/
drwxrwxr-x server:nfsgroup /srv/nfs4/
drwxrwxr-x server:nfsgroup /srv/nfs4/files/
-rwxrwxrwx server:nfsgroup /srv/nfs4/files/myfile.pdf
Ahora, quiero exportar el /srv/nfs4/
directorio completo, que contiene el archivo bind-mounted files/
, al cliente. Tengo esta entrada en el servidor /etc/exports
:
/srv/nfs4 192.168.1.2(rw,sync,fsid=0,root_squash,all_squash,anonuid=127,anongid=134,no_subtree_check)
Tenga en cuenta en particular que el all_squash,anonuid=127,anongid=134
grupo de configuraciones hace que el usuario cliente 'cliente' sea reconocido como 'nfsuser' en el 'nfsgroup' con respecto a los permisos.
Después de exportar esto usando $ sudo exportfs -ra
, lo monto en el directorio de nivel raíz /nsffiles/
del cliente usando el comando $ sudo mount -t nfs 192.168.1.1:/srv/nfs4 /nsffiles
.
El resultado es que yopuede verfiles/
el directorio exportado dentro /nsffiles/
del cliente. Sin embargo, no puedo ver su contenido:
$ ls -Alhd /nsffiles/
drwxrwxr-x 8 client 134 4.0K Nov 14 20:37 /nsffiles/
$ ls -Alhd /nsffiles/files/
drwxr-xr-x 2 root root 4.0K Nov 14 20:36 /nsffiles/files/
$ ls -Alh /nsffiles/files/
total 0
El hecho de que el cliente NFS pueda ver el files/
directorio indica que no hay nada fundamentalmente malo con mis servicios NFS o la red local. No hay problemas con el firewall y no debería necesitar instalar ningún paquete adicional. Además, anteriormente tenía el montaje NFS funcionando perfectamente bajo una estructura de carpetas ligeramente diferente ( files/
por ejemplo, estaba en un directorio fuera de casa), así que sé que lo básico está bien en ese sentido.
Supongo que la causa más probable de por qué no funcionará ahora es un cambio sutil de propiedad/permisos entre la configuración anterior y la actual. En particular, el directorio montado es
server side: `/srv/nfs4/` drwxrwxr-x server:nfsgroup
client side: `/nsffiles/` drwxrwxr-x client:134
El directorio contenido es
server side: `/srv/nfs4/files/` drwxrwxr-x server:nfsgroup
client side: `/nsffiles/files/` drwxr-xr-x root:root
Es decir, para el directorio montado, los permisos se convierten como server:nfsgroup -> client:134
, lo que se espera. Sin embargo, los permisos para el directorio contenido se convierten como server:nfsgroup -> root:root
. ¿Por qué root:root
y no client:134
?
Este servidor fallapreguntaSuena similar, pero se refiere a Windows y no puedo decir si se aplica la única respuesta.
Este Unix.SEpreguntase refiere a los permisos de archivos NFS para una configuración de Windows/Linux; Toda la información que puedo obtener de ella son cosas que ya sé y creo que me he ocupado.
Por favor responda sólo si sabe de lo que está hablando. Si no puede resistirse a publicar una suposición descabellada, identifíquela como tal. O, ya sabes, proporciona suficiente información para que tu lector pueda notar la diferencia.