특정 사용자에게 특정 삼바 공유만 표시

특정 사용자에게 특정 삼바 공유만 표시

모든 사용자가 특정 폴더에 액세스할 수 있도록 삼바를 설정하고 싶습니다. 예를 들어, 일부 폴더에는 서버에 홈 폴더가 있고 해당 폴더에는 홈 폴더에 대한 액세스 권한이 있어야 하지만 다른 폴더에는 액세스할 수 없거나 액세스할 수 없습니다. 나는 설정했다

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

결과적으로 일부 사용자만 이러한 폴더에 액세스할 수 있으며 이는 문제가 되지 않습니다. 그러나 내가 user3으로 로그인하면 그는 이 share1을 볼 수 있지만 액세스할 수는 없습니다. 공유에 대한 액세스 권한이 없는 사용자가 전혀 볼 수 없도록 특정 사용자에게만 표시되도록 하려면 어떻게 해야 합니까?

작동하는 몇 가지 제안을 찾았 browseable list = user1 user2지만 제게는 작동하지 않고 그것이 틀렸다고 testparm말합니다 .browseable list

답변1

당신이 원하는 것은 추악한 해킹을 통해서만 가능한 것 같습니다.

browseable = no공유를 및 으로 설정하여 시작하세요 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

그런 다음 파일에 다음 줄을 넣고 /etc/samba/sharename.user1.conf. /etc/samba/sharename.user2.conf물론, 그 중 하나만 일반 파일로 존재하면 되고, 다른 하나는 심볼릭 링크일 수 있습니다.

[sharename]
browseable = yes

%U하지만 in 의 정의를 참고하세요 man smb.conf.

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

제가 올바르게 이해했다면 이는 smbclientCIFS(또는 사용자가 사용자 이름을 지정할 수 있는 다른 CIFS 도구)를 사용하는 사람은 누구나 -U user1또는 -U user2옵션을 사용하여 비밀번호 없이 공유를 "찾아볼" 수 있다는 의미입니다.

관련 정보