创建临时 Samba 共享

创建临时 Samba 共享

是否可以临时共享一个目录桑巴舞

蟒蛇3我可以为当前目录提供服务HTTP协议使用:

python -m http.server

我想做同样的事情桑巴舞

答案1

这可能来得有点晚,但是装袋python 项目正好提供了您所要求的内容。

该文件夹内examples有一个临时文件smbserver.py以及许多进一步有用的脚本。引用他们的示例,SMB 共享您的/tmp目录变得非常简单:

smbserver.py -comment 'My share' TMP /tmp"

答案2

似乎没有一种方法可以像exportfsLinux 上的 NFS 和shareSolaris 上那样创建临时共享。原因可能有所不同,但从技术上讲,您可以执行页面中描述的操作运行多个服务器在同一台机器上并通过自定义smb.conf完成您需要做的事情。

还有一个选项使用 SWAT 动态创建和删除共享,这将需要更改smb配置文件为了允许这种情况发生,请参阅add share command和 的部分delete share command

就个人而言,如果您想要共享动态,您可能希望共享您的主目录并通过 samba 使用动态主共享,这在很多地方都讨论过,包括Ubuntu 论坛, 和Samba 邮件列表

答案3

根据您的 samba 守护进程的年龄以及构建时使用的配置选项,您仍然可以选择在 smb.conf 中定义“动态”共享,指向 /var/dynamic/,请参见下文,然后只需将您暂时想要共享的目录的符号链接添加到该目录中即可。

这个黑客需要广泛的链接选项设置为是的,允许 samba 跟踪共享根目录之外的链接。不幸的是,几年前,Samba 团队调整了他们的默认配置以防止广泛共享,因为它可能被利用。谷歌搜索: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

答案4

假设您想快速将 /somefolder 共享给某个用户临时只读。

添加系统用户:

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 - 这正是我刚刚遇到的情况。

相关内容