Estou no FreeBSD e tenho um problema peculiar, que me surpreende.
Eu criei um compartilhamento e, dentro desse compartilhamento, criei um subdiretório chamado subdir
.
Quando abro o smbclient com o diretório atual = share root, subdir
não está listado na listagem de diretórios. Mas quando eu concedo everyone@:full_set:allow
ACE (e nada mais) em subdir
via SSH em outra janela, a sessão smbclient agora pode ver o diretório na listagem "ls".
Na verdade, mesmo everyone@:a:allow
ACE (e nada mais) definido no subdir é suficiente para fazer com que o subdir seja listado em seu diretório pai. (Obrigado pela dica @grawity)
Estou ciente de que o samba pode ocultar arquivos de um cliente se a ACL não permitir direitos de leitura em seu diretório pai ou se for um arquivo / diretório de veto ou ocultar arquivos ocultos. set, ou se ele está explicitamente oculto pelo nome de alguma outra forma, mas eles não estão em uso - acabei de criar o diretório e compartilhar, e não criei nenhuma referência ou propriedade relacionada a ocultá-lo.
Caso contrário, tanto quanto eu saiba, a capacidade de ver um arquivo em um diretório é estritamente governada pelo atributo "r" do diretório pai ... não é?
O que estou recebendo é: adicionar a
ACE na criança - > filho visível na listagem de diretórios pai. Remova a
ACE do filho - > não aparece na listagem de diretórios dos pais.
Estou sentindo falta de algo aqui ou do que está acontecendo? Por que parece precisar de um ACE definido no child
para vê-lo em ls <parent>
? Por que o ACE de uma criança é importante?