Compartilhamentos NFS - uma leitura / gravação de IP, repouso somente leitura

0

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 desde que eu uso o Ubuntu (todos os outros, exceto o NAS, estão executando o Windows).

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

Meu arquivo / etc / exports tem esta aparência (por exemplo, de uma linha - há sevral 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 ambos definidos no arquivo de hosts do NAS. Mas, independentemente disso, o hard coding dos IPs também não funciona.

Isso não funciona:

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

Ainda posso montar somente leitura.

As unidades são montadas como Read / Write no NAS e minhas configurações de compartilhamentos do Samba funcionam bem (posso forçar o login como minha conta de usuário no NAS e ser capaz de 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?

    
por MattBoothDev 07.06.2015 / 22:33

1 resposta

1

Para exportar /mnt/TVShows como rw de nas para matt-pc e ro para todos os outros, você pode escrever isso em '/ etc / exports:

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

Observe que o pedido é importante. O primeiro nome de máquina / IP / rede que maches é usado ao exportar para uma máquina, portanto, tem a máquina mais específica primeiro e a mais geral por último. Não termine com uma pegadinha de tudo o que dá muito direito.

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

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

$ getent hosts matt-pc

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

Para montar você faz assim de 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 que não use mais argumentos do que você realmente precisa.

(Sim, eu prefiro ter discos em servidores montados em /srv/ , pois isso é para recursos de servidor, e /mnt/ é mais para montagens temporárias. Eu normalmente tenho /srv/web/ , /srv/files/music/ , /srv/files/video etc. Ele facilita a realização de backups)

    
por Anders 08.06.2015 / 22:56