我的 Linux 系统有两个用户,并且我在其上配置了 samba,因此一些共享目录可供两个用户访问,而一些共享目录仅供其中一个用户访问。
问题是,当我从 Windows 客户端访问计算机并使用第二个用户(权限较少)进行身份验证时,会显示不可访问的文件夹(尽管它们不可浏览),我该如何向该用户隐藏这些文件夹?
以下是/etc/samba/smb.conf文件:
[anonymous]
path = /repo/samba/anonymous
writeable = yes
browseable = yes
valid users = user1, user2
[archive]
path = /repo/samba/archive
writeable = no
browseable = yes
valid users = user1, user2
[user1]
path = /repo/samba/user1
writeable = yes
browseable = yes
valid users = user1
[user1-ro]
path = /repo/samba/user1-ro
writeable = no
browseable = yes
valid users = user1
什么时候用户2尝试访问服务器,他们看到用户1和用户1-ro文件夹,我想为他们隐藏这两个。
我要说的是,Linux 系统运行Ubuntu-MATE 16.04。
答案1
添加:
hide unreadable = yes
到您的配置中的共享定义。
在 SMB 术语中,这被称为“基于访问的枚举”。
答案2
我不确定为什么 @techraf 的答案不起作用(尽管根据文档应该有效),但我找到了另一个解决方案并且有效。我添加了
access based share enum = true
归档/etc/samba/smb.conf
。