Ao exibir arquivos contendo caracteres especiais como "() ?:" no nome do arquivo através do Samba, os nomes são transformados em um formato irreconhecível. Por exemplo, um arquivo
my_file:_(important).txt
é exibido como
M43J1E~0.TXT
Existe uma maneira de evitar esse comportamento (sem renomear os arquivos, obviamente)? Estou assumindo que a codificação de caracteres não é a culpada, porque vários caracteres UTF-8 parecem funcionar bem.
Respostas:
O Windows não permite alguns caracteres nos nomes de arquivos permitidos pelo Unix. O Samba "manipula" os nomes dos arquivos para fazê-los cumprir com as restrições do Windows. Você pode verificar o arquivo
/etc/smb.conf
ou/etc/samba/smb.conf
ver quais configurações estão em vigor. Para mostrar essas configurações mais os padrões, use este comando:Para restringir um pouco isso:
Veja esta página para mais informações. Além disso, consulte cerca da metade desta página (as mesmas informações do link anterior).
fonte
Eu uso uma pasta compartilhada no OS-X e Windows. Alguns arquivos têm o mesmo problema, porque se enquadram no seguinte: Eles usam caracteres no nome do arquivo, não suportados pelo Windows.
Consulte: http://support.microsoft.com/kb/177506
Ele lista os caracteres, não suportados pelo Windows, em arquivos ou diretórios. Eu acho que o Samba usa a mesma lista de caracteres ao listar arquivos e diretórios.
Um pouco mais abaixo, eles escreveram:
Mas eu, pessoalmente, tomei a lista de caracteres não permitidos como referência para informar alguns clientes aqui;)
fonte
Eu possuo um laptop Apple Macbook Pro com o OS X 10.11 "El Capitan" de 64 bits executando o Samba 3 que eu instalei através do Macports .
Também possuo um laptop Dell Inspiron com GNU / Linux XUbuntu 16.04 de 64 bits "Xenial Xerus" executando o Samba 3 que eu instalei através do APT.
Ambas as máquinas têm pastas compartilhadas na rede e usam o Samba para se comunicar na minha WLAN (LAN sem fio).
Ambos os meus sistemas estão em português do Brasil. Assim, uso caracteres especiais como ç , á , ã , â , ô , é , ó etc.
Quando uso meu laptop Linux para acessar meus compartilhamentos do OS X Samba, todas as strings são mostradas corretamente: palavras como maçã , ônus e bênção são mostradas corretamente. Arquivos e pastas com nomes longos também são mostrados e seus nomes são mostrados corretamente. Assim, o servidor Samba em execução no OS X já está configurado corretamente ...
... mas as coisas não estavam funcionando do contrário: se eu usasse o aplicativo Finder no OS X para acessar meus compartilhamentos Linux Samba, todos os arquivos e pastas com pelo menos um desses caracteres especiais não seriam mostrados (eles permaneceriam invisíveis para eu) e os nomes longos de arquivos e pastas foram convertidos em nomes curtos estranhos. Portanto, havia algo errado com o servidor Samba em execução na minha máquina Linux.
=> No meu caso, o que resolveu esse problema foi adicionar as seguintes linhas à
[global]
seção dentro dosmb.conf
arquivo na minha máquina Linux:Depois disso, abri uma janela do terminal shell e reiniciei o servidor Linux Samba com este comando:
... que pode ser substituído por esse outro comando (caso o comando acima não funcione na sua distribuição Linux):
Depois que reiniciei o servidor Linux Samba, o aplicativo Finder no OS X finalmente mostrou corretamente todos os arquivos e pastas que estavam ocultos anteriormente por causa de seus nomes terem um ou mais caracteres especiais. Os nomes mutilados ("encurtados") também foram "não mutilados".
Notas de rodapé :
smb.conf
arquivo é/etc/samba/smb.conf
smb.conf
arquivo armazenado no local padrão/etc/samba/
: existem várias maneiras diferentes de editar osmb.conf
arquivo. Por exemplo, se você não estiver usando um ambiente de área de trabalho (por exemplo, seu sistema possui apenas um terminal shell, sem janelas), você pode instalar o editor de texto Nano , emitindo um comando comosudo apt-get install nano -y
ousudo dnf -b -y install nano
ou qualquer outra coisa (dependendo da distribuição do Linux) estão usando) e, em seguida, executesudo nano /etc/samba/smb.conf
. Caso esteja usando um ambiente de área de trabalho, você pode instalar um editor de texto gráfico, como o GNOME Edit , emitindo um comando comosudo apt-get install gedit -y
ousudo dnf -b -y install gedit
ou qualquer outra coisa (dependendo da distribuição do Linux que estiver usando) e, em seguida, executesudo gedit /etc/samba/smb.conf
.display charset
parâmetro está obsoleto.dos charset
parâmetro não suporta oUTF-8
argumento. Portanto, ele deve usar o argumento padrãoCP850
.mangled names = no
instrui o servidor Samba a não encurtar nomes longos de arquivos e pastas. Portanto, como o cliente Samba apenas replica para o usuário o que o servidor Samba forneceu ao cliente, uma vez que o servidor esteja configurado corretamente, o cliente não exibirá mais o nome abreviado do usuário.fonte
da documentação do samba você pode usar estes:
fonte