Eu tenho uma caixa Synology NAS (executando o DSM 5.1) e exportei um diretório via NFS. Estou tentando montá-lo na minha caixa do Ubuntu.
Geralmente funciona bem, mas estou tendo problemas com os mapeamentos de usuários e grupos. Na caixa do Ubuntu, eu sou uid 1000 (roger), gid 1000 (roger). Na Synology, eu uid 1026 (Roger), grupo 100 (usuários).
Se eu uso o NFSv3, ele usa valores numéricos de uid / gid, o que significa que a propriedade está desarrumada na Synology.
Se eu acessar apenas a montagem NFS da mesma caixa do Ubuntu, usando o mesmo usuário, tudo bem, mas também acessarei o diretório a partir de uma caixa do Windows, usando CIFS (SMB), o que significa que as permissões são errado.
Se eu usar o NFSv4 ( mount -o nfsvers=4
), com as configurações padrão do Synology, os arquivos pertencentes roger.users
ao Synology aparecerão pertencentes a roger.users
quando visualizados na caixa Ubuntu. Isso é bom.
No entanto, quando eu touch
um arquivo:
roger@ubuntu$ touch /mounts/diskstation/music/foo
Ele acaba sendo de propriedade 1000.1000
da Synology e mostrado como de propriedade nobody.4294967294
quando visualizado na caixa do Ubuntu.
Tudo o que posso encontrar sobre o tópico nos fóruns da Synology é datado de 2011, quando o NFSv4 não era suportado, ou consiste em pessoas fazendo a mesma pergunta e desistindo.
Para completar, /etc/exports
possui:
/volume1/music 10.0.0.0/24(rw,async,no_wdelay,root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
... e eu estou montando na caixa Ubuntu com:
mount -t nfs diskstation:/volume1/music /mounts/diskstation/music/ -o rw,nfsvers=4
Encontrei algumas dicas de que isso sec=sys
pode ser um problema: Por que o mapeamento uid / gid do NFSv4 não funciona com AUTH_UNIX (AUTH_SYS) , mas isso não tem solução.
Existe uma maneira simples de contornar esse problema? Existe uma (mais complexo tosse Kerberos tosse ) maneira de resolver isso?
Sério, se Kerberos é a resposta, eu levo esse golpe, mas eu gostaria de saber antes de perder muito tempo com isso.
Atualização : enquanto a documentação da Synology fala sobre várias opções do Kerberos, não consigo encontrá-las na interface do usuário. As notas de versão afirmam "Se o sabor de segurança Kerberos for implementado ...". Encontrei (mas não consigo encontrar novamente) uma página que implica que ela pode não estar em certos modelos. Eu tenho um DS211, de acordo com a página Informações do sistema. Talvez eu esteja sem sorte?
Respostas:
Para o mapeamento de ID do NFSv4 funcionar corretamente, o cliente e o servidor devem estar executando o
idmapd
daemon do Mapeador de ID e ter o mesmoDomain
configurado/etc/idmapd.conf
.Dessa forma, seu cliente NFS envia suas credenciais de ID como
[email protected]
nos comandos NFS na conexão e o idmapper do servidor NFS mapeia isso para um usuário chamadoroger
no servidor NFS. O UID e o GID não importam, eles são mapeados em cada sistema pelo idmapper.No entanto, eu não me incomodo com isso na minha Synology. Minha pasta compartilhada tem as seguintes permissões:
Isso resulta em
anonuid=1024,anongid=100
(oadmin
usuário e ousers
grupo) sendo adicionados à exportação no/etc/exports
NAS.Meu cliente NFS (que não possui o ID Mapper em execução) envia meus comandos NFS como meu usuário (
1000:1000
) e, como esse UID e GID não existem no NAS, ele converte meu UID e GID para1024:100
que eu seja tratado como o Usuário administrador com permissão total.Esse é um uso extremamente inseguro e não profissional do NFS para um ambiente de negócios, mas apenas para acessar meus arquivos em casa, é um abuso do comportamento do NFS que é aceitável para mim.
Outra opção é fazer
roger
é UID e GID o mesmo no cliente NFS e NAS, então você pode usar NFSv4 sem ID Mapping, ou você poderia usar NFSv3 que se baseia apenas em UID e GID.fonte
Eu tenho realmente lutado com exatamente o mesmo problema. Passei pela enorme dificuldade de configurar um servidor Kerberos com o Docker no Synology, configurei o mapeamento de ID e ainda não gostei do comportamento. O Kerberos é excessivamente projetado e difícil de continuar trabalhando nas reinicializações e na montagem automática. Além disso, a umask padrão dos arquivos recém-criados era 0000, e cada novo arquivo era criado no modo 777, independentemente do meu umask local.
Minha solução foi semelhante à do suprjami, mas levei um pouco mais longe:
roger.remote
. Faça o mesmo para um grupo de usuários e atribua o mesmo nome que o nome de usuário.roger.remote
o UID para 1000 e o GID para 1000roger.remote
para 1000 tambémanonuid=1000,anongid=1000
/usr/syno/etc.defaults/rc.sysv/S83nfsd.sh restart
chmod 777 /volume1
. Eu tive muitos problemas estranhos com o meu diretório pessoal montado. O KDE não seria iniciado porque aaccess()
função glibc retornaria o acesso negado no diretório NFS montado. (Mas qualquer subdiretório funcionaria) O Firefox também teve um problema semelhante, onde se recusou a salvar arquivos no diretório montado por causa da verificação de acesso. Mesmo que as permissões estivessem corretas e eu pudesse tocar / criar / gravar arquivos no diretório montado. Alterar o diretório pai / volume1 para o mundo gravável corrigiu esse problema idiota e enganou os aplicativos clientes para escrever nele.synoacltool -del /volume1/myshare
. Você deve ver o+
símbolo removido da saída ls -l.chown roger.remote:roger.remote /volume1/myshare
chmod 755 /volume1/myshare
Na Synology, você deve ver:
Desfrutar!
fonte