运行 Fuse 安装的 Samba 共享时出错

运行 Fuse 安装的 Samba 共享时出错

我已经创建了一个 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 问题。

我希望这能解决你的问题。

相关内容