O problema com a mangled namesopção do Samba é que nenhuma das configurações é ideal. Você pode ter nomes que não sejam mutilados, mas não podem ser acessados de forma alguma, pois contêm caracteres ilegais ou nomes mutilados no formato DOS 8.3 e, portanto, quase ilegíveis.
Felizmente, existe (agora) um módulo VFS chamadocatia que fornecerá mapeamentos de caracteres personalizados. Em particular, é possível mapear os caracteres considerados ilegais nos nomes de arquivos do Windows.
Na [global]seção, coloque estas linhas:
# Mapping illegal characters, where enabled with "vfs objects = catia"
mangled names = no
catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6
Em cada [share_name]seção, adicione esta próxima linha (se você já tiver uma vfs objectslinha, basta anexar catiaà lista):
vfs objects = catia
No meu sistema baseado no Debian, este módulo de objeto VFS foi instalado como parte do pacote padrão.
Um exemplo de um nome de ficheiro que está mapeado por esta configuração é 2017-12-24 12:23.txt. O uso mangled names = yesdeste arquivo é exibido como 2BB0Y9~4.TXT. O uso vfs objects = catiadesse nome de arquivo é exibido como 2017-12-24 12÷23.txt. Não é perfeito, mas é muito bom. E o mais importante, eu posso acessá-lo em aplicativos do Windows.
Veja ꞉ ∶ ׃ ꞉ para outros caracteres que se parecem com dois pontos ASCII.
Stéphane Chazelas
@ StéphaneChazelas também fique à vontade para enviar isso como uma sugestão para a equipe de desenvolvimento do Samba. Eu apenas peguei a lista sugerida.
roaima 25/07
Quando compartilho uma pasta com o Nautilus, a pasta não aparece, obviamente, em /etc/samba/smb.conf. Como posso aplicar sua solução nesse cenário?
Hans Deragon 19/05/19
Isso é perfeito, obrigado.
Será
5
Por alguma razão, o Samba começou a alterar os nomes dos arquivos que contêm dois pontos. Até agora não consegui encontrar nada sobre esse comportamento na Internet.
A solução é muito simples. Adicionar mangled names = noa [global]seção /etc/samba/smb.confe reiniciar o Samba corrigiu o problema.
Esta solução está incompleta. Arquivos com caracteres ilegais do Windows, como ':', não são mostrados. Veja a solução da roaima.
Hans Deragon 19/05/19
1
Caracteres especiais ponto de interrogação? \ etc é ilegal nos nomes de arquivos do Windows e eu sempre evito usá-los.
No entanto, não tenho nenhum problema com esses caracteres usando o macOS Catalina acessando minha configuração do FreeNAS-11.3-U1 e SMB / Samba. Não sei por que essa configuração não é por padrão, mas você precisará seguir estas etapas para fazê-la funcionar perfeitamente no MacOS.
No FreeNAS webUI, vá para Compartilhamento> SMB> Editar
Escolha "modo avançado" e marque catia e fruit em "objetos VFS"
Defina o parâmetro auxiliar como fruit:encoding = native
Por alguma razão, o Samba começou a alterar os nomes dos arquivos que contêm dois pontos. Até agora não consegui encontrar nada sobre esse comportamento na Internet.
A solução é muito simples. Adicionar
mangled names = no
a[global]
seção/etc/samba/smb.conf
e reiniciar o Samba corrigiu o problema.fonte
Caracteres especiais ponto de interrogação? \ etc é ilegal nos nomes de arquivos do Windows e eu sempre evito usá-los.
No entanto, não tenho nenhum problema com esses caracteres usando o macOS Catalina acessando minha configuração do FreeNAS-11.3-U1 e SMB / Samba. Não sei por que essa configuração não é por padrão, mas você precisará seguir estas etapas para fazê-la funcionar perfeitamente no MacOS.
No FreeNAS webUI, vá para Compartilhamento> SMB> Editar
fruit:encoding = native
Vá para Serviços e reinicie o SMB
fonte