我的机器上有两个用户equah
。hoster
test1
我在 中创建了一个 samba 共享/home/equah
,用户可以equah
毫无问题地访问该共享。
我还创建了共享test2
并将/smbtest
所有权更改为 user equah
,也可以访问该用户equah
。
但是当我创建共享test3
并/home/hoster/sharetest
尝试连接时, nautilus 会提示Failed to mount Windows share: Permission denied
,这就是我想要的工作。
ls -l
显示所描述目录的以下详细信息:
drwx------ 14 equah equah 4096 Sep 8 20:09 /home/equah
drwxr-xr-x 2 equah equah 4096 Sep 8 20:33 /smbtest
drwxrwxrwx 3 equah equah 4096 Sep 8 20:44 /home/hoster/sharetest
drwx------ 19 hoster hoster 4096 Sep 8 20:20 /home/hoster
我还看到,访问控制系统对hoster
主目录应用了权限,我将其删除以查看这是否是错误,但没有任何成功。
我目前使用全新的 Arch Linux 安装和samba 4.8.5-1
.
我的 samba 配置 ( /etc/samba/smb.conf
) 包含:
[global]
workgroup = EQGROUP
server string = eq-host samba server
server role = standalone server
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
[test1]
comment = test
path = /home/equah
valid users = equah
[test2]
comment = test
path = /smbtest
valid users = equah
[test3] # <== Not Working ?
comment = test
path = /home/hoster/sharetest
valid users = equah
我的困难是,某些权限设置可能会阻止登录的 samba 用户访问任何父目录都属于另一个用户的目录的内容。很难创建共享/home/hoster/sharetest/test
并将两者的所有权更改sharetest/test
为 equah,也无法仅共享test
文件夹
答案1
这里有一个典型的所有权/权限问题。您已告诉 SAMBA/home/hoster/sharetest
仅允许访问equah
该用户 ( ),但您的底层文件系统权限拒绝访问该用户 ( drwx------ 19 hoster hoster 4096 Sep 8 20:20 /home/hoster
)。
允许equah
访问该目录应该就可以了
chmod a+x /home/hoster
或者强制访问由equah
执行hoster
# add to smb.conf share definition
force user = hoster
log level = 3
一般来说,可以使用并查看 SAMBA 服务器日志文件来诊断此类问题。