如何配置 Samba 以具有 root 权限共享(读/写)任何文件夹?

如何配置 Samba 以具有 root 权限共享(读/写)任何文件夹?

我在 Win7x64 主机上有一个 CentOS 5 VirtualBox 客户机。我试图root使用 Samba 设置与我的 Windows 主机拥有的目录的读/写共享,但经过一番周折后,我还是没有成功。为了简化问题,我禁用了防火墙 ( /etc/init.d/iptables stop)。由于安全性和权限与此目的无关,我宁愿不必设置另一个 unix 用户/组/密码。

以下是testparm

Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[Guest Share]"
Loaded services file OK.
Server role: ROLE_STANDALONE

以及来源/etc/samba/smb.conf

[global]
        workgroup = WRKGRP
        netbios name = SMBSERVER
        security = SHARE
        load printers = No

[Guest Share]
        comment = Guest access share
        path = /root/src
        read only = No
        guest ok = Yes

运行/etc/init.d/smb restart显示正常状态。但是,在我的 Windows 主机上,我只能看到来宾上的共享文件夹\\IPv4,但无法进入“来宾共享”: Windows 浏览

“找不到网络名称”错误信息是常见错误,可能的原因如下:

您尝试访问共享的用户没有足够的权限访问共享的路径。读取 (r) 和访问 (x) 都应该是可能的。

我是否尝试使用 root 作为无密码的 Samba 访客?我想这样做,可以吗?如何配置 Samba 以 root 权限共享(读/写)任何文件夹?

答案1

我可以做到这一点。为了进行比较,以下是我的一个股票条目:

[Music] ; user="jlacroix"
force user = jlacroix
path = /home/jlacroix/Music
writable = no
public = yes

确保将“jlacroix”替换为您使用的用户名。无论实际使用该文件的用户是谁,它都会强制使用该用户。因此,您可能需要将“jlacroix”更改为 root。但是,我不建议以这种方式共享,因为您应该小心哪些用户能够访问 root 许可的文件。

答案2

您检查过 SELinux 吗?

如果 getenforce 的输出不许可或已禁用,则必须将上下文应用于您的共享。您还可以设置一个布尔值来绕过此问题,我在尝试谷歌搜索时发现了这个问题。

您可以使用以下命令进行调试以确认它是否是 SELinux:setenforce 0

答案3

1. 将访客账户设为 nobody

guest account = nobody

2. 将 nobody 设为 samba 管理员用户

admin users = nobody

3. smbd 可能需要以 root 身份运行

也可以看看

人5 smb.conf https://www.samba.org/samba/docs/man/manpages/smb.conf.5.html#ADMINUSERS

答案4

听起来很简单。

只需更改文件夹的权限以反映读/写要求即可。由于文件夹将归 root 所有,因此您需要授予“其他”rw 权限。

Chmod 776 访客共享

这赋予 root 完全 rwx 权限,并使其他所有人都拥有 rw 权限。

更好的方法是创建一个网络用户组,然后将共享上的组从根更改为您刚刚创建的组。

最后一点:我认为您可能需要在要遍历的任何文件夹上设置执行权限。您可能在文件夹本身内设置了读写权限,但要真正获得执行权限可能需要进行配置。也尝试一下。

相关内容