모든 사용자가 특정 폴더에 액세스할 수 있도록 삼바를 설정하고 싶습니다. 예를 들어, 일부 폴더에는 서버에 홈 폴더가 있고 해당 폴더에는 홈 폴더에 대한 액세스 권한이 있어야 하지만 다른 폴더에는 액세스할 수 없거나 액세스할 수 없습니다. 나는 설정했다
[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).
제가 올바르게 이해했다면 이는 smbclient
CIFS(또는 사용자가 사용자 이름을 지정할 수 있는 다른 CIFS 도구)를 사용하는 사람은 누구나 -U user1
또는 -U user2
옵션을 사용하여 비밀번호 없이 공유를 "찾아볼" 수 있다는 의미입니다.