我在 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
,但无法进入“来宾共享”:
“找不到网络名称”错误信息是常见错误,可能的原因如下:
您尝试访问共享的用户没有足够的权限访问共享的路径。读取 (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 权限。
更好的方法是创建一个网络用户组,然后将共享上的组从根更改为您刚刚创建的组。
最后一点:我认为您可能需要在要遍历的任何文件夹上设置执行权限。您可能在文件夹本身内设置了读写权限,但要真正获得执行权限可能需要进行配置。也尝试一下。