Mostra compartilhamentos de samba específicos apenas para alguns usuários

1

Eu gostaria de configurar meu samba para que cada usuário tenha acesso a pastas específicas. Alguns deles, por exemplo, têm a pasta home no servidor e eles devem ter acesso à sua pasta pessoal, outros não e não devem. Eu coloquei

[share1]
    ...
    valid users = user1, user2
    #those users have access to this share
    ...

O resultado é que apenas alguns usuários têm acesso a essas pastas, o que é bom. Mas quando eu logar como user3 ele vê esse share1, mas não pode acessá-lo. Como posso torná-lo visível apenas para alguns usuários, para que os usuários que não podem acessar o compartilhamento não o vejam?

Encontrei algumas sugestões para usar browseable list = user1 user2 , mas não funciona para mim, testparm diz que browseable list está incorreto.

    
por fulaphex 27.11.2015 / 03:13

1 resposta

1

O que você quer parece ser possível apenas por meio de um hack feio.

Primeiro, defina o compartilhamento para browseable = no e include /etc/samba/sharename.%U.conf .

[sharename]
path = /path/to/share
valid users = user1, user2 
public = no
browseable = no
writeable = yes
include = /etc/samba/sharename.%U.conf

As seguintes linhas são colocadas nos arquivos /etc/samba/sharename.user1.conf e /etc/samba/sharename.user2.conf . Claro, apenas um deles precisa existir como um arquivo regular, o outro pode ser um link simbólico.

[sharename]
browseable = yes

Observe, no entanto, a definição de %U em man smb.conf :

   %U
       session username (the username that the client wanted, not
       necessarily the same as the one they got).

Se eu estiver lendo isso corretamente, isso significa que qualquer pessoa usando smbclient (ou outra ferramenta CIFS que permita ao usuário especificar o nome de usuário) pode "navegar" pelo compartilhamento com as opções -U user1 ou -U user2 , sem precisar da senha.

    
por 27.11.2015 / 05:32