Compartilhamentos NFS - um IP de leitura/gravação, restante somente leitura

Compartilhamentos NFS - um IP de leitura/gravação, restante somente leitura

Estou tentando criar alguns compartilhamentos NFS para minha rede doméstica para poder gerenciar meu NAS com mais facilidade. Atualmente estou usando o Samba para uso doméstico, mas o NFS é mais rápido para mim, já que uso o Ubuntu (todos os outros, exceto o NAS, estão executando o Windows).

O que eu quero fazer é criar alguns compartilhamentos NFS que sejam somente leitura para todos, exceto minha máquina. Eu tenho os compartilhamentos NFS funcionando bem, pois posso montá-los no meu computador e navegar nas pastas, mas sou forçado a ser somente leitura neles, o que é frustrante, já que declarei em minha configuração/exportação que meu máquinas sejam de leitura/gravação.

Meu arquivo /etc/exports se parece com isto (por exemplo, de uma linha - existem vários como este com o mesmo 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 e matt-pc.2 são definidos no arquivo hosts do NAS. Mas, independentemente disso, codificar os IPs também não funciona.

Isso também não funciona:

/mnt/TVShows    matt-pc.*(rw,sync,no_root_squash,no_subtree_check) *(ro,sync,no_root_squash,no_subtree_check)

Ainda só consigo montar somente leitura.

As unidades são montadas como leitura/gravação no NAS e minhas configurações de compartilhamentos Samba funcionam bem (posso forçar o login como minha conta de usuário no NAS e poder ler e gravar arquivos).

Se eu formatar os compartilhamentos assim:

/mnt/TVShows    matt-pc.*(rw,sync,no_root_squash,no_subtree_check)

Acabei de receber erros de permissão ao tentar montar na máquina cliente (minha máquina).

É assim que estou montando na minha máquina cliente:

nas.local:/mnt/TVShows  /mnt/NFS/TVShows nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0

Posso trabalhar isso?

Responder1

Para exportar /mnt/TVShowsde rwpara nase matt-pcpara rotodos os outros você pode escrever isto em `/etc/exports:

#
/mnt/TVShows matt-pc(rw,no_subtree_check) 192.168.1.0/24(ro)

Observe que a ordem é importante. O primeiro nome/IP/rede da máquina que faz a máquina é usado ao exportar para uma máquina, portanto, tenha a máquina mais específica primeiro e a mais geral por último. Não termine com um apanhado de tudo o que dá muitos direitos.

Lembre-se também de que cada conjunto de opções é inerente ao seguinte, portanto, você só precisa ser específico primeiro. O resto são apenas alterações das configurações anteriores. Evite também opiniões definidas que você não precisa. (E sempre leia man(1) páginas e documentação relevantes em /usr/share/doc/"package name"/)

Verifique também como os nomes que você está usando foram resolvidos corretamente. Para usar isso, use o getentcomando (1). Assim:

$ getent hosts matt-pc

E como isso funciona depende de resolv.confe /etc/hosts (ou na verdade do conteúdo de /etc/nsswitch.conf).

Para montar você faz assim em 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

Observe, porém, que não use mais argumentos do que você realmente precisa.

(Sim, prefiro ter discos em servidores montados em /srv/, pois isso é para recursos do servidor e /mnt/é mais para montagens temporárias. Normalmente tenho /srv/web/, /srv/files/music/, /srv/files/videoetc. Isso torna mais fácil fazer backups)

informação relacionada