Este é o servidor Ubuntu 10.04 64 e o samba 3.4.7.
Eu tenho um diretório compartilhado /home/mit/share
e outro /home/temp
que eu vinculo ao diretório compartilhado:
ln -s /home/temp /home/mit/share/temp
Mas no Windows, depois de usar a Internet, não consigo abrir S:/temp
, mas no Linux é possível acessar /home/mit/share/temp
como esperado.
Isso funciona se eu vincular diretórios dentro /home/mit/share/temp
, então acho que o samba está restringindo o salto com um link fora / acima do diretório compartilhado.
EDITAR:
Veja também esta pergunta, intitulada Ubuntu + versão mais recente do samba, os links simbólicos não funcionam mais no compartilhamento montado no Windows .
Parece melhor colocar unix extensions = no
na seção global follow symlinks = yes
e wide links = yes
somente na seção de ações, onde você realmente precisa.
A unix extension
bandeira deve estar na seção global e não nas seções de ações individuais. Mas, por razões de segurança, é melhor usar as outras opções somente onde você precisar, e não globalmente.
Respostas:
Editar smb.conf
Nota: Se você estiver usando uma versão mais recente do samba, o seguinte poderá funcionar para você:
documentação
follow symlinks
ewide links
sinalizadores: https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1fonte
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2:grep -o '^[^#;]*' smb.conf.bak >smb.conf
[share]
quer dizer[<share_name>]
?sshfs
Saudações, tentei colocar isso na configuração para corrigir links simbólicos para Windows na minha instalação, mas não tenho certeza se isso afetará o cliente Windows, caso contrário, segue links simbólicos quando eu me conecto a esta caixa.
fonte
Alternativamente às outras respostas, para manter as extensões unix ativadas, é possível usar:
fonte
[share]
quer dizer[<share_name>]
?[homes]
, onde eu a uso. Veja a documentação para detalhes.Para permitir que os clientes Samba sigam links simbólicos fora do caminho compartilhado, tudo que você precisa na configuração do Samba é:
(além do próprio Samba compartilha as definições, é claro). Teoricamente, isso é suficiente para clientes * nix.
NB: A diretiva "follow symlinks" não é necessária, pois o padrão é "yes"
Quanto aos clientes Windows, ainda falta uma configuração para permitir que eles sigam esses links. Para fazer isso:
corre :
reinicie para recarregar as configurações
Nota: o mesmo resultado pode ser obtido editando o registro do Windows. Veja os links abaixo
fontes :
fonte
Pode ser necessário endereçar mais do que apenas o arquivo de configuração do Samba, se você estiver executando o AppArmor.
Você precisa das seguintes diretrizes no seu
smb.conf
:Porém, o AppArmor bloqueia o acesso a partes do sistema de arquivos de acordo com sua própria semântica do conjunto de regras. Portanto, se seu link simbólico no Samba apontasse para um local que o AppArmor iria bloquear, o Samba negaria o acesso.
No meu sistema, o Samba atualiza os perfis do AppArmor no início / parada do serviço, para que eu possa alterar um perfil do AppArmor, mas arrisco o Samba ou outro programa substituí-lo. Em vez disso, decidi criar um compartilhamento inacessível no Samba referenciando o local que continha o destino do link simbólico que eu queria acessar (ainda em
smb.conf
):fonte