Eu tenho duas máquinas A
e B
na minha rede local (ambas Ubuntu 21.10).
Na máquina A
tenho um drive apenas para dados (músicas, fotos, filmes, documentos, etc) montados em /media/data
. Cada usuário (há 2) na máquina pode ler/gravar o conteúdo da unidade.
Eu preciso poder fazer o mesmo da minha máquina B
(onde há apenas um usuário), ou seja, acesso de leitura/gravação.
Neste caso, qual é o método adequado para conseguir isso? considerando que :
- Eu preciso que o usuário da máquina
B
não crie problemas de permissões para os usuários da máquinaA
- Eu preciso que meus programas da máquina
B
tenham permissões corretas para ler/gravar na unidade
Essas duas necessidades não foram totalmente atendidas com a configuração anterior que tentei. É por isso que eu especifico isso. Embora eles possam não ter sido atendidos porque minha configuração não estava correta... Eu não sei. Eu tenho aprendido e experimentado coisas no ano passado.
Então aqui está o que eu já tentei:
compartilhamento via compartilhamento de rede local do Samba --> acesso aos arquivos (tocando música, por exemplo) era lento
sshfs :
- Eu nunca consegui configurá-lo corretamente para montar automaticamente na inicialização
- Estou com problemas de permissões. Por exemplo: ao usar beets (para gerenciar minha biblioteca de músicas), beets cria pastas/arquivos que pertencem (na máquina
B
) a um usuário listado como#user 1001
. Este usuário é desconhecido do sistema, mas éuid
o usuário com o qual eu ssh on machineA
(e é diferente do meuuid
on machineB
) e não tenho permissão para modificar nada (propriedade, excluir arquivo, etc). Eu não consegui resolver isso, então a solução sshfs não é aceitável para o meu uso.
NFS : Acabei de testar hoje e não consegui passar um
mount.nfs: access denied by server while mounting (null)
erro
Então agora eu decidi parar de tentar as coisas porque estou um pouco perdido e realmente não sei o que eu deveria realmente tentar: entender melhor sshfs para resolver problemas de permissão? fazer o NFS funcionar?... e resolvi pedir ajuda :)
Até agora, usar sshfs tem sido a melhor solução para mim (o acesso aos arquivos é rápido e estável), mas sem resolver esses problemas de permissão não é bom o suficiente, e também se eu pudesse configurar o automount corretamente na inicialização, seria ainda melhor ...
Obrigado pela ajuda !
Editar
Em relação ao NFS, foi o que eu fiz:
- instalar
nfs-kernel-server
na máquinaA
- instalar
nfs-common
na máquinaB
- linha adicionada
/media/data 00.00.00.00(rw,sync,no_subtree_check)
(com o endereço IP da máquinaB
) na/etc/exportfs
máquinaA
- correu
sudo exportfs -a
- Eu verifiquei a modificação com
sudo exportfs
- Eu permiti nfs no firewall (ufw)
- Verifiquei se podia ver a exportação da máquina
B
comshowmount
e podia vê-la - Ao tentar montar a pasta com
sudo mount 00.00.00.00:/media/data ~/data
(com endereço IP da máquinaA
) ela retornamount.nfs: access denied by server while mounting (null)
Então optei pelo método NFS e o fiz funcionar bem graças ao link do wiki do Arch Linux postado por @PonJar nos comentários acima: https://wiki.archlinux.org/title/NFS A principal diferença é que você precisa de pacotes
nfs-kernel-server
para a máquina servidora enfs-common
para a máquina cliente.O que eu fiz diferente do que está exposto no meu Edit sobre NFS na pergunta é principalmente que:
/srv/nfs/data
/srv/nfs/data
pasta à que eu queria exportar, que era/media/data
Caso contrário, verifiquei se a exportação estava correta e se podia vê-la da minha máquina cliente (nota: showmount não funciona quando o firewall está ativo na máquina do servidor, verifique antes de configurá-lo) e abri portas para nfs no firewall ufw.
Eu então montei com sucesso a unidade com
sudo mount -t nfs -v 192.168.1.108:/srv/nfs/data ~/data
Por fim, adicionei a seguinte linha em
/etc/fstab
:192.168.1.108:/srv/nfs/data /home/myuser/data nfs defaults,_netdev 0 0
e a pasta agora é montada automaticamente na inicialização.Esse método parece resolver os problemas de permissão que eu encontrei às vezes.