Acabei de enfrentar um problema que não consegui encontrar em lugar nenhum (por exemplo, documentação do samba).
Eu tenho um compartilhamento de samba no servidor1 e esse compartilhamento montado no servidor2. O compartilhamento do server1 é um link simbólico para /var/container/db
.
O problema é que quando tento abrir esta pasta com link simbólico do servidor2, ela mostra meus arquivos locais no servidor2, já que o caminho /var/container/db
existe no meu servidor2.
O que pode causar esse problema e qual a solução para ele?
Ambos os servidores rodando em Debian.
Responder1
Se você compartilhar um link simbólico entre hosts do tipo Unix, o sistema que monta o compartilhamento interpretará o link simbólico de acordo com sua própria árvore de sistema de arquivos. É assim que funcionam os links simbólicos no estilo Unix.
Se o compartilhamento no servidor 1 incluir o que você deseja que o link simbólico aponte, você poderá usar umrelativolink simbólico em vez de um link absoluto.
Por exemplo, se o seu compartilhamento samba no server1 estiver /var
montado no server2 como /server1var
, e o link simbólico estiver localizado no server1 como /var/some/directory/link-to-db
, seu link simbólico atual seria feito assim:
server1# ln -s /var/container/db /var/some/directory/link-to-db
Em vez disso, você poderia fazer assim:
server1# cd /var/some/directory
server1# ln -s ../../container/db link-to-db
Se o banco de dados no server1 não estiver no compartilhamento Samba, você precisará do parâmetro do servidor Samba wide links = yes
. Isso faria com que o servidor1 seguisse o link simbólico e fornecesse acesso ao servidor1 /var/container/db
em vez de apenas passar o símbolo
No entanto, se o servidor estiver rodando com configurações padrão, ele também estará unix extensions = yes
habilitado por padrão - o que será desabilitado wide links
se o cliente for um sistema do tipo Unix (como no seu caso).
No entanto, ao definir allow insecure wide links = yes
, você pode permitir que o wide links
parâmetro funcione mesmo quando unix extensions
estiver em vigor na conexão de compartilhamento -mas isso não é recomendado porque não é seguro.O administrador no server1 perderia o controle do que é compartilhado e do que não é, porque os clientes poderiam tentar obter acesso a qualquer arquivo fora do compartilhamento Samba apenas criando um link simbólico adequado no compartilhamento se for gravável - e então seria apenas uma questão de saber se a conta de usuário usada na conexão tem permissão para ler o arquivo ou não.
Basicamente, allow insecure wide links
+ wide links
+ unix extensions
+ um compartilhamento gravável pelo cliente é praticamente equivalente a apenas compartilhar /
com o Samba. Não recomendado.