我想设置我的 samba,以便每个用户都可以访问特定文件夹。例如,其中一些在服务器上有主文件夹,并且这些文件夹应该有权访问其主文件夹,而另一些则没有,也不应该访问。我已经设定
[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 工具)的人都可以使用-U user1
或-U user2
选项“浏览”共享,而无需密码。