Mostrando arquivos ocultos como ocultos no Windows a partir do Linux Samba Share do NTFS Drive

0

Eu tenho um Raspberry Pi que está usando samba e ntfs-3g para compartilhar um disco rígido externo USB na minha rede doméstica. No disco rígido, existem alguns arquivos marcados com o atributo de arquivo do Windows "Ocultos". No entanto, quando eu acesso o compartilhamento em um PC com Windows, os arquivos não aparecem como ocultos. Como resultado, vejo muitos arquivos ocultos, como desktop.ini , thumbs.db , bem como diretórios como $RECYCLE.BIN e System Volume Information , embora minha configuração do Windows em Opções de Pasta esteja definida para não mostrar arquivos ocultos.

Eu sei que samba não está transferindo corretamente o atributo Oculto porque, se eu visualizar as Propriedades de um arquivo que deve estar oculto, a caixa de seleção Oculto não será selecionada:

Estes são os conteúdos atuais do meu arquivo smb.conf :

#### GLOBAL CONFIG #####

workgroup = WORKGROUP
netbios name = raspberrypi
server string = %h
wins support = yes
dns proxy = no
security = share
null passwords = yes
guest account = nobody
interfaces = eth0 lo
bind interfaces only = yes

#### PUBLIC SHARE #####

[Mazda6]
comment = Media Drive
path = /media/HDD
browseable = yes
guest ok = yes
writeable = yes
public = yes
available = yes
create mask = 0666
directory mask = 0777

Como posso ter arquivos marcados com o atributo de arquivo oculto na unidade NTFS para serem mostrados como ocultos quando visualizados no compartilhamento samba em um PC Windows?

    
por bdr9 30.04.2014 / 00:52

1 resposta

0

Eu acredito - mas não testei a mim mesmo - que você só precisa adicionar map hidden = yes à configuração do seu compartilhamento. Observe que isso pode ter o comportamento não intencional / indesejado de fazer com que "outros arquivos executáveis" (de acordo com as permissões de arquivo do Linux) sejam "ocultos" no Windows também; Isso ocorre porque o Samba reaproveita esse bit como sendo o atributo "oculto" para o Windows, já que ele reside no Linux que não possui tais atributos.

Caso contrário, você poderá usar a opção hide files para ocultar os arquivos especificados; por exemplo, você aplica isso à configuração do seu compartilhamento:

hide files = /$RECYCLE.BIN/System Volume Information/desktop.ini/thumbs.db/

A desvantagem aqui, é claro, é que você deve codificar os arquivos que deseja ocultos explicitamente em sua configuração e, infelizmente, não há como distinguir entre, um desktop.ini que deve estar oculto e um desktop.ini que não deve ser oculto - ambos serão ocultados com essa configuração. (NOTA: Não tenho certeza se isso funcionará com diretórios; acredito que deveria, mas não posso testá-lo no momento. Também pode haver problema com o caractere $ ; novamente, acho que funcionará, mas eu Não sou capaz de testá-lo agora.)

Como sempre, a documentação é sua amiga.

Atualização: Pelo teste do OP, conforme relatado nos comentários abaixo, parece que todos os arquivos em uma partição NTFS podem aparecer no Linux com permissões 0777; como isso significa que o bit "other execute" está definido, o Samba acaba interpretando cada arquivo como "oculto" com a configuração map hidden ativada, tornando a solução insustentável sem primeiro mover todos os dados para um sistema de arquivos diferente.

    
por 30.04.2014 / 01:26