Monte vários nfs4 no CentOS sem compartilhar um diretório pai

1

Eu quero compartilhar /share/foo e /share/bar etc via NFS no CentOS.

Eu encontrei esse problema comum :

mount.nfs4: mounting 192.168.101.254:/share/foo failed, reason given by server: No such file or directory

A solução parece ser exportar o diretório pai /share com fsid=0 e, em seguida, montar comandos nos caminhos de uso do cliente relacionados a /share , ou seja,

arquivo de exportação do servidor:

/share 192.160.0.0/16(rw,fsid=0)
/share/foo 192.160.0.0/16(ro)
/share/bar 192.160.0.0/16(ro)

fstab do cliente:

192.168.101.254:/foo /share/foo nfs4 intr

Mas se eu quiser exportar isso do servidor:

/share/private 192.168.101.123(ro)

então isso não estará disponível em máquinas que não sejam 192.168.101.123 , porque muitos endereços têm acesso a /share e seus subdiretórios?

Se sim, esta é uma falha de segurança inaceitável. Se não, qual é a minha garantia de que nenhum cliente pode acessar /share/private apesar do fato de que eles podem acessar /share ?

Em resumo, preciso que o servidor exporte /share/foo , /share/bar e /share/private para máquinas cliente diferentes sobre nfs4.

    
por spraff 05.12.2016 / 17:41

2 respostas

1

A melhor maneira de lidar com isso é usar montagens de ligação: crie uma pasta apenas para exportações NFS:

mkdir /srv/nfs

e adicione isso ao seu / etc / fstab:

/share/foo  /srv/nfs/foo    none    defaults,bind    0  0
/share/foo  /srv/nfs/bar    none    defaults,bind    0  0

O / etc / exports é exatamente o mesmo, salve com / share substituído por / srv / nfs. Também certifique-se de atribuir um fsid exclusivo para as entradas foo e bar em / etc / exports.

    
por 25.04.2018 / 19:08
-1

Você não precisa compartilhar a pasta de nível superior.

Se você compartilhar esta pasta, você estará expondo a pasta / share / private como você destacou, então não faça isso.

Eu acho que o seu problema é o erro de digitação no seu cliente fstab.

Você tem:

192.168.101.254:/foo /share/foo nfs4 intr

Qual seria o aspecto de mount / foo de 192.168.101.254, mas você está compartilhando / share / foo, então isso precisa ser:

192.168.101.254:/share/foo /share/foo nfs4 intr

Lembre-se também que o diretório / share / foo também precisa existir em seu sistema de arquivos local primeiro.

    
por 05.12.2016 / 20:03

Tags