Saudações, amigos livres!
O motivo que me faz escrever essa dica é o sofrimento. O sofrimento de procurar, procurar, procurar; testar, testar e testar; e no fim não conseguir!
Quando montava o compartilhamento e listava (ls -lha), os arquivos/diretórios que continham acentos eram listados com interrogações, caracteres especiais etc.
Existem muitos artigos sobre esse problema de
acentuação no Samba, mas nenhum deles (que eu tenha lido) resolveu minha situação.
Li muitos e boa parte dizia para adicionar linhas de charset, unixcode, bla, bla, bla no smb.conf, mas embora tenha testado um bocado, nada funcionava. Digamos que até resolva, mas apenas se essa máquina
Linux estiver compartilhando diretórios para máquinas Windows. Mas e se ela estiver "mapeando" pastas compartilhadas por uma máquina Windows? Essa é minha situação: uma estação
Linux com um compartilhamento Windows montado.
Pois bem, depois de muito sofrer, consegui reunir a solução dessa imensa "colcha de retalhos":
Esqueça esse negócio de adicionar linhas no smb.conf. Teu Linux não está servindo compartilhamentos para outras máquinas. Está usando! A solução é apenas adicionar codepage=cp850 no teu script de montagem da unidade. Ficaria mais ou menos assim:
mount -t smbfs -o
username=usuario,password=senha,workgroup=grupo_ou_o_dominio,codepage=cp850 //192.168.23.1/sistema /mnt/drive_windows/
Depois disso, restartei o serviço do samba:
# service smb restart
ou
# rcsmb restart
Fui na unidade montada e voilà! Tudo listado bonitinho: os cedilhas, acentos agudos, circunflexos e tudo mais que tenho direito. Na máquina Windows, onde está servindo o compartilhamento, crie algum arquivo com acentos, tipo: áçê.txt
Com certeza, listará da mesma forma no seu Linux (que está com essa unidade montada). Que legal! Agora resolvi meu problema, tô saindo pra almoçar! NADA DISSO! Com isso, voce "resolveu" o problema de visualização dos arquivos que foram criados e armazenados na máquina Windows. Experimente criar um arquivo dentro dessa unidade montada através do Shell do seu Linux. Tipo:
# touch çáê.txt
Vai gravar tudo maluco de novo! Pô, mas porque quando crio no Windows ele fica certo, mas quando eu crio no Linux, fica doido de novo? Simples: com aquela linha para montar o compartilhamento, você disse que aquela unidade montada fala a língua "cp850". Isso para aquela unidade montada, mas teu Linux ainda fala "outra língua". Então, vamos fazer com que eles se entendam e falem a mesma língua:
Em /etc/sysconfig/i18n coloque o seguinte:
LANG=pt_BR.iso8859-1
SYSFONT=lat1u-16
SYSTERM=linux
LC_COLLATE=POSIX
Lembrem-se de comentar o que tinha antes.
Restarte seu smb (só de precaução) e tcharam!!!! Sistemas "falando" a mesma língua! Faça aquele mesmo teste de criar um arquivo com acentos através do Linux. Em /mnt/drive_windows:
# touch áçê.txt
Prontinho! Agora fique feliz, deixe seus usuários felizes, tenha menos dor de cabeça, dê uma volta de carro, tome uma cerveja e vá almoçar!
Thyago Furtado da Silva
Vitória - ES
thyagofs(a)gmail.com