Estoy intentando crear algunos recursos compartidos NFS para mi red doméstica para poder administrar mi NAS más fácilmente. Actualmente estoy usando Samba para el hogar, pero NFS es más rápido para mí ya que uso Ubuntu (todos los demás, excepto el NAS, ejecutan Windows).
Lo que quiero hacer es crear algunos recursos compartidos NFS que sean de sólo lectura para todos excepto para mi máquina. Tengo los recursos compartidos NFS funcionando bien, ya que puedo montarlos en mi computadora y explorar las carpetas, pero me veo obligado a ser de solo lectura en ellos, lo cual es frustrante ya que declaré en mi configuración/exportación que mi Las máquinas pueden leer/escribir.
Mi archivo /etc/exports se ve así (por ejemplo, de una línea; hay varias como esta con el mismo resultado):
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check) 192.168.1.0/25(ro,sync,no_root_squash,no_subtree_check)
matt-pc.1 y matt-pc.2 están definidos en el archivo de hosts del NAS. Pero independientemente de eso, codificar las IP tampoco funciona.
Esto tampoco funciona:
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check) *(ro,sync,no_root_squash,no_subtree_check)
Todavía puedo montar solo lectura.
Las unidades están montadas como lectura/escritura en el NAS, y la configuración de mis recursos compartidos de Samba funciona bien (puedo forzar el inicio de sesión como mi cuenta de usuario en el NAS y poder leer y escribir archivos).
Si formateo los recursos compartidos de esta manera:
/mnt/TVShows matt-pc.*(rw,sync,no_root_squash,no_subtree_check)
Simplemente recibo errores de permisos cuando intento montar en la máquina cliente (mi máquina).
Así es como estoy montando en mi máquina cliente:
nas.local:/mnt/TVShows /mnt/NFS/TVShows nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
¿Puedo trabajar esto?
Respuesta1
Para exportar /mnt/TVShows
desde rw
hacia nas
y matt-pc
hacia ro
todos los demás, puede escribir esto en `/etc/exports:
#
/mnt/TVShows matt-pc(rw,no_subtree_check) 192.168.1.0/24(ro)
Note que el orden es importante. El primer nombre de máquina/IP/red que se utiliza al exportar a una máquina, por lo tanto, coloque la máquina más específica primero y la más general al final. No acabes con una captura de todo lo que da mucho derecho.
Recuerde también que cada conjunto de opciones es inherente al siguiente, por lo que sólo necesita ser específico en el primero. El resto son sólo cambios con respecto a la configuración anterior. Evite también establecer opiniones que no necesita. (Y siempre lea man
las (1) páginas y documentación relevantes en /usr/share/doc/"package name"/
)
Compruebe también cómo se resuelven correctamente los nombres que está utilizando. Para usar eso, use el getent
comando (1). Como esto:
$ getent hosts matt-pc
Y cómo funciona eso depende de resolv.conf
y /etc/hosts
(o en realidad del contenido de /etc/nsswitch.conf
).
Para montar se hace así desde cada máquina:
/etc/fstab
# ro, that is this line in all but matt-pc
nas.local:/mnt/TVShows /mnt/NFS/TVShows nfs auto,ro,noatime,nolock,bg,nfsvers=4,intr,tcp 0 0
# rw, that is this line in only matt-pc
nas:/mnt/TVShows /mnt/NFS/TVShows nfs auto,rw,noatime,nfsvers=4,tcp 0 0
Sin embargo, tenga en cuenta que no utilice más argumentos de los que realmente necesita.
(Sí, prefiero tener discos en servidores montados en /srv/
, ya que es para recursos del servidor y /mnt/
más para montajes temporales. Normalmente tengo /srv/web/
, /srv/files/music/
, /srv/files/video
etc. Esto hace que sea más fácil hacer copias de seguridad)