Answers:
似乎没有一种类似于exportfs
Linux share
上的NFS和Solaris 上那样创建临时共享的方法。原因可能会有所不同,但是您可以从技术上做类似于在同一台计算机上运行多个服务器的页面中所述的操作,并使用自定义功能smb.conf
来完成所需的操作。
还有一个选项可以使用SWAT动态创建和删除共享,这将需要对smb.conf进行更改以使其发生,请参阅add share command
和delete share command
就个人而言,如果您希望动态共享,则可能需要共享主目录并通过在许多地方讨论过的samba(包括Ubuntu论坛和Samba邮件列表)使用动态主目录共享。
根据您的samba守护程序的年龄以及构建它时使用的配置选项,您仍然可以选择在smb.conf中定义一个“动态”共享,指向/ var / dynamic /,参见下文,然后只需将符号链接添加到您要暂时共享到目录中的目录即可。
此技巧要求将Wide links选项设置为yes,以允许samba跟随共享根目录之外的链接。不幸的是,几年前,Samba团队对默认配置进行了调整,以防止广泛共享,因为它可能被利用。Google:Samba和“广泛链接”,用于历史记录和变通方法。
[dynamic]
comment = Somewhere to park dynamic shares
path = /var/dynamic
read only = Yes
inherit acls = Yes
follow symlinks = yes
wide links = yes
快速测试应该看看你的好,例如
mkdir -p /var/dynamic/test
cd /var/dynamic
ln -s test a_link
ln -s /tmp/ tmp_test
假设您要快速将/ somefolder共享给someuser临时只读。
添加系统用户:
useradd -r someuser
默认情况下,如果需要强制使用该文件夹,则该文件夹通常是其他可读的文件夹(请使用ls -ld / somefolder检查):
chmod -R o+r /somefolder
使用以下密码将用户添加到samba:
smbpasswd -a someuser
快速编辑smb.conf并在底部添加
[someshare]
path = /somefolder
read list = someuser
退出,保存并最终运行
smbcontrol smbd reload-config
等等。
显然,一旦完成,您可能想删除“ someshare”部分,然后重新运行reload-config命令。
免责声明:我没有对此进行全面测试,但令我惊讶的是,问题的答案如此简单。如果您已经拥有一些具有现有samba访问权限的用户,则可以跳过一些步骤而直接进行smb.conf的编辑-正是我刚遇到的用户。
net share add
命令是您要找的吗?