Como você faz o samba seguir o symlink fora do caminho compartilhado?

46

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 no compartilhamento:

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 ligar diretórios dentro de /home/mit/share/temp , então eu acho que o samba está restringindo a pular 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 ser melhor colocar unix extensions = no na seção global e follow symlinks = yes e wide links = yes apenas na seção compartilhamentos, onde você realmente precisa.

O sinalizador unix extension tem que residir na seção global e não nas seções de compartilhamentos individuais. Mas, por motivos de segurança, é melhor usar as outras opções apenas onde você precisar e não globalmente.

    
por mit 24.12.2010 / 04:23

4 respostas

72

Edite o smb.conf

[global]
unix extensions = no

[share]
follow symlinks = yes
wide links = yes

Observação: se você estiver usando uma versão mais recente do samba, o seguinte pode funcionar para você:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

documentação sobre follow symlinks e wide links sinalizadores: link

    
por 15.06.2014 / 06:51
8

Saudações, eu tentei colocar isso na configuração para corrigir links simbólicos para o windows para minha configuração, mas não tenho certeza se isso afetará o windows client, caso contrário ele segue links simbólicos quando eu me conecto a esta caixa.

[global]                                                                        
unix extensions = no
    
por 03.01.2011 / 00:40
8

Como alternativa às outras respostas, para manter as extensões unix ativadas, é possível usar:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes
    
por 31.07.2016 / 21:27
3

Para permitir que os clientes Samba sigam links simbólicos fora do caminho compartilhado, tudo o que você precisa na configuração do Samba é:

[global]
allow insecure wide links = yes
unix extensions = no

[myShare]
wide links = yes

(além das definições de compartilhamento do Samba, é claro). Isso é - teoricamente - suficiente para clientes * nix.

NB: A diretiva "follow symlinks" não é necessária, já que o padrão é "yes"

Quanto aos clientes Windows, 1 configuração ainda está faltando para permitir que eles sigam esses links. Para fazer isso:

  1. abra um shell do Windows com privilégios de administrador
  2. executar:

    fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
    
  3. reinicialize para recarregar as configurações

NB: o mesmo resultado pode ser obtido editando o registro do Windows. Veja os links abaixo

fontes:

por 11.10.2018 / 15:52