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.