samba como exibir arquivos com dois pontos em seus nomes?

13

O Samba não exibe arquivos corretamente quando eles contêm dois pontos.

Nome do arquivo original: test:file.txt

Nome para exibição no Windows: T8S6CH~R.TXT

Como posso corrigir isso?

Informações:

Linux: SLES 11 SP 3

Samba: Version 3.6.3-0.33.39.1-3128-SUSE-CODE11-x86_64

Peter VARGA
fonte

Respostas:

13

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.

roaima
fonte
1
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.

Peter VARGA
fonte
Que bom saber disso! +1
Luciano Andress Martini
4
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

  1. Escolha "modo avançado" e marque catia e fruit em "objetos VFS"
  2. Defina o parâmetro auxiliar como fruit:encoding = native

Vá para Serviços e reinicie o SMB

trommegutten
fonte