我已经创建了一个 fuse 目录,并像这样启动它:./myfuse /home/shared -o allow_other -o umask=022 -o nonempty -d
我可以像这样访问它:ls -la /home/shared
并且它运行良好。
好的,将其关掉一会儿。
我有一个 samba-share 定义为:
[root@cboardman-rh1 /]# testparm /etc/samba/smb.conf
Load smb config files from /etc/samba/smb.conf
rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)
Processing section "[shared]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = MYWORKGROUP
server string = Samba Server Version %v
security = SHARE
guest account = samba-user
lanman auth = Yes
client lanman auth = Yes
log level = 5
log file = /var/log/samba/log.%m
max log size = 50
wins support = Yes
[shared]
comment = Sharing for everyone
path = /home/shared
guest only = Yes
guest ok = Yes
启动 samba,我可以smbclient //cboardman-rh1/shared
并且连接没有问题。
问题是:当我将两者放在一起时,我遇到了麻烦。
具体来说,当我从 smbclient 执行时ls
,我得到
smb: \> ls
NT_STATUS_ACCESS_DENIED listing \*
40960 blocks of size 512. 1 blocks available1
然后 fuse 开始查找“/myfuse”而不是“/”。 ls /home/shared
(只点击 fuse)fuse 会按照预期查找“/”。即使在我的 fuse 代码中添加 hack 以将“/myfuse”转换为“/”,我也会得到相同的错误代码。
Samba 在做什么?我在日志中没有看到任何有用的信息。有什么想法吗?
我在一台禁用了 SELinux 和 iptables 的 RHEL 服务器上。
答案1
步骤 1:确保它与给定的示例兼容。
步骤 2:确保您的保险丝代码中没有任何错误。包括可能被ls
安装的保险丝目录上的简单代码忽略的非常细微的错误。
答案2
我使用了基于保险丝的脚本,并通过添加-o allow_other,nonempty
保险丝参数解决了类似的 SMB 问题。
我希望这能解决你的问题。