SELinux 阻止 cups-pdf 输出到 samba 共享目录

SELinux 阻止 cups-pdf 输出到 samba 共享目录

我想设置一个 cups-pdf 打印机来将 PDF 打印到 samba 共享目录,但 SELinux 拒绝 cups 访问该共享目录。(cups 需要写入本地 FS 目录,该目录由在同一台机器上运行的 samba 作为 Windows 共享托管)

我正在使用 CentOS 6。

我的审计日志显示:

类型 = AVC 消息 = 审核(1342728685.377:32002):avc:拒绝 {getattr} for pid=236 55 comm="cups-pdf" path="/mnt/storage/samba" dev=sdb1 ino=11927553 scontext=syst em_u:system_r:cups_pdf_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:samba_sha re_t:s0 tclass=dir

我不能简单地重新标记目录,因为它没有 samba_share_t 标签,从而拒绝进一步的 samba 访问。

有人有解决这个问题的方法吗?

答案1

cups-pdf 附带 SELinux 策略,允许 cups 打印到用户主目录。您可以在 中找到它/usr/share/doc/cups-pdf-*/contrib/SELinux-HOWTO

只需进行微小的修改即可让它写入 Samba 共享:

require {
    type samba_share_t;
}

allow cupsd_t samba_share_t:dir { add_name create getattr remove_name search setattr write };
allow cupsd_t samba_share_t:file { create getattr read setattr unlink write };

答案2

我提前道歉,这真的不是讽刺 - 你能禁用 SELinux 吗?

如果你的环境不需要它,你可以尝试将 SELinux 置于宽容模式,在该模式下它仍会记录警报,但不会阻止访问,方法是调用

设置强制 0

不过,这只是暂时的,直到重新启动,如果你想使它永久生效,请编辑 /etc/selinux/config 文件并相应地设置“SELINUX=XXXXXXX”行(强制、允许、禁用)

禁用将不会记录违规行为,也不会阻止任何访问

相关内容