Centos8:Selinux 阻止 Samba 服务启动

Centos8:Selinux 阻止 Samba 服务启动

我的 Samba4 服务被阻止使用 systemctl 启动。审计日志显示:

type=AVC msg=audit(1606428851.446:87): avc:  denied  { execute } for  pid=1748 comm="(samba)" 
name="samba" dev="dm-0" ino=1462831 scontext=system_u:system_r:init_t:s0 
tcontext=unconfined_u:object_r:user_home_t:s0 tclass=file permissive=0

将 Selinux 策略设置为“宽容”可以解决问题......但这不是一个完整的解决方案。

Samba 是在本地构建的。它不是 repo 包。因此,据我所知,我必须在 Selinux 中手动启用它的可执行路径。但我该怎么做呢?

服务定义文件如下所示:

[Unit]
Description=Samba Active Directory Domain Controller
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/samba/sbin/samba -D
PIDFile=/usr/local/samba/var/run/samba.pid
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

答案1

除了手动编译 Samba(为什么?!)之外,您还将二进制文件移至 而不是 复制到 中/usr/local。因此,它保留了其 SELinux 类型user_home_t,应用于用户主目录中的文件。

一个简单的方法restorecon就能解决这个问题。

当然,由于您手动构建了 Samba(再次,为什么?),它的许多其他文件将位于 SELinux 意想不到的位置,因此您可能会遇到更多问题。

相关内容