O Samba funciona bem com o Windows quando os nomes com distinção entre maiúsculas e minúsculas estão ativados?

11

Eu quero ter um compartilhamento * Samba acessível por clientes Windows.

O Samba tem uma opção para ativar ou desativar a diferenciação de maiúsculas e minúsculas do nome do arquivo. Normalmente, para acesso ao windows, isto é desabilitado, para que fred == FRED = fReD.

No entanto, isso leva a uma grande preocupação, o AFAICT:

  • No unix, você cria duas pastas chamado "RODDY" e "roddy"
  • No Windows, você verá os dois pastas, mas ...
  • Quando você exclui / renomeia / abre um no Windows, você pode acabar excluir / renomear / etc qualquer um deles. Você não tem como saber qual! .

Então, minha pergunta é: como o Samba se comporta no windows se o flag com distinção entre maiúsculas e minúsculas estiver "ON"? Um usuário ainda pode ver as duas pastas e ter operações de arquivo funcionando de maneira consistente?

    
por Roddy 01.10.2009 / 23:45

2 respostas

10

Deveria estar bem. O Windows Explorer faz um bom trabalho ao exibir o caso do nome do arquivo corretamente. Eu uso isso no meu smb.conf para ter certeza de que o que eu digito no Explorer é o que o Samba usa (eu configurei todos esses por compartilhamento):

case sensitive = True
default case = lower
preserve case = yes
short preserve case = yes

Eu fiz um teste rápido (Samba 3.0.24 no backend, WinXP na frente). Os arquivos foram criados no servidor samba por meio de uma sessão SSH.

$ cd /some/samba/share/path
$ mkdir test
$ cd test

$ mkdir test1 TEST1
$ touch test1/foo TEST1/bar

Depois disso, naveguei pela minha unidade mapeada até o diretório de teste. Eu consigo ver os diretórios "test1" e "TEST1". Eu abri "test1" e vi o arquivo "foo". Eu abri o "TEST1" e vi o arquivo "bar". Até aí tudo bem.

Depois voltei ao diretório de teste e, na janela do Explorer, renomei TEST1 para TEST2. O Windows assustou um pouco - ele renomeou a pasta e mostrou ambas as pastas como TEST2 - parecendo ter renomeado ambas as pastas. Mas, no terminal SSH, verifiquei:

$ ls
test1 TEST2

Então o Windows renomeou o arquivo e o Samba ficou com o nome do arquivo corretamente. Quando pressionei F5 na janela do Explorer para atualizar o conteúdo da pasta, a exibição mudou para mostrar os nomes corretos das pastas.

Advertência: Os sistemas de arquivos Linux permitem alguns caracteres que o Windows não possui (como ":"). O Samba tem a opção "name mangling" para transformar esses nomes de arquivos em algo que o Windows goste. Se eu fizer um arquivo chamado "FA: 23" na minha janela SSH, por exemplo, o Samba manipula o nome para "F7T4H0 ~ F" e é isso que aparece na janela do Explorer.

    
por 07.10.2009 / 09:13
1

As opções que funcionaram para mim estão abaixo:

preserve case           = yes
short preserve case     = yes
    
por 26.09.2013 / 06:20