尽管权限表面上正确,但无法访问 Samba 共享

尽管权限表面上正确,但无法访问 Samba 共享

我一直尝试为 NAS 上的某些目录设置 Samba 共享,但似乎无法使其工作。

我的简化版本smb.conf归结为

[global]
dns proxy = no

create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775

[Media]
path = /srv/Media
writeable =yes

/srv/Media并且其后代属于samba模式为 775 的用户和组。我尝试访问共享的用户属于usersamba,即他对该路径具有读写权限。我已通过suuser验证cd了这一点/srv/Media,我可以在其中列出和修改文件而不会出现问题。

为了验证我的 Samba 密码(使用 设置smbpasswd -a user)是否正确,我尝试使用 smbclient 连接,同时故意输入错误的密码,结果如NT_STATUS_LOGON_FAILURE预期一样得到了 ,而使用正确的密码连接时,系统会将我带入 smbclient shell。但是,一旦进入 shell,如果我尝试ls,就会得到NT_STATUS_ACCESS_DENIED listing \*。通过 CIFS 或 gvfs 进行挂载也不起作用。

我研究过许多有类似问题的问题和文章,但我发现几乎所有问题都是由于共享目录的权限问题造成的。在确认相关用户确实可以在本地访问相关目录但不能通过 Samba 访问后,我迷茫了。

答案1

是 AppArmor。当我在测试时跟踪日志时,我只跟踪了 Samba 日志journalctl -fu smb。最重要的是,我在 systemd-nspawn 容器中运行 Samba,并且也在容器内部跟踪日志,因此无论如何我都无法找到错误,但在心血来潮查看主机上的审计日志后,我看到 /srv/Media 上针对配置文件 smbd 的大量拒绝打开调用。

出于完整性考虑,我(在主机上)最后用来关联日志的完整命令是journalctl -m _SYSTEMD_UNIT=smb.service _HOSTNAME=nas + _AUDIT_FIELD_PROFILE='"smbd"'。这要求客户机日志与主机链接,这是使用 时的默认设置machinectl start

相关内容