如何将 Samba 中的某些目录列入黑名单?

Jor*_*tro 8 server samba

我正在通过 Samba 将目录导出到我的家庭影院 PC。不幸的是,XBMC 还显示了一些我碰巧在该目录中共享的工作目录。

我想找到一种方法让 Samba 忽略某些目录,这样它们就不会与其他 PC 共享。

这纯粹是出于虚荣的原因,因此解决方案不需要完全完美(因此解决方法会很好,它不必是生产质量)

Rob*_*ans 9

我认为veto files是您正在寻找的选项。

/etc/samba/smb.conf使用 root 权限进行编辑。在特定共享下/var/test,以下设置将排除任何后代子目录或文件匹配foo*bar*(注意,/意味着OR):

[myshare]
  path = /var/test
  veto files = /foo/*bar*/
Run Code Online (Sandbox Code Playgroud)

然后,您需要使用stopstart(不是reload)重新启动Samba :

sudo /etc/init.d/samba stop
sudo /etc/init.d/samba start
Run Code Online (Sandbox Code Playgroud)

注:通过GUI鹦鹉螺创建股份在单个文件中定义的/var/lib/samba/usershare,但veto files 不能有应用。如果这是你的情况:

  • 无论是添加veto files[global]的部分/var/lib/samba/usershare。这将影响您的所有全局共享。
  • 或者删除下现有的共享定义文件,/var/lib/samba/usershare然后手动重新创建/etc/samba/smb.conf。你不能复制粘贴;相反,请按照指南进行操作

  • `veto files` 模式中的 `/` 字符不是目录分隔符。在上面的示例中,如果您在末尾添加一个 `/` 以使其语法正确,则任何名为 `var`、`test` 或 `private` 的文件或目录都将被隐藏。 (2认同)