如何禁用 systemd 脚本的 SELINUX?

如何禁用 systemd 脚本的 SELINUX?

我在 CentOS 7 中有一个 systemd 脚本,除非我禁用 SELINUX,否则它无法正常运行。是否可以以某种方式在系统上启用 SELINUX,但仅对此 systemd 脚本禁用它?

systemd 脚本:

[Unit]
Description=Tractor Blade Service
Wants=network.target network-online.target autofs.service
After=network.target network-online.target autofs.service
RequiresMountsFor=/101.102.103.104/pipeline/

[Service]
Type=simple
User=IRUser
ExecStart=/opt/pixar/Tractor-2.1/bin/tractor-blade --debug --log /101.102.103.104/pipeline/logs/tractor/tractor-blade-%H.log --engine=111.222.333.444 --supersede --pidfile=/var/run/tractor-blade.pid

[Install]
WantedBy=multi-user.target

答案1

您可以不受限制地运行该进程,这样它将具有与禁用 SELinux 相同的权限。

# This will setup the executable to be unconfined. Temporarily
chcon -t unconfined_exec_t /opt/pixar/Tractor-2.1/bin/tractor-blade
# This command will make that permanent
semanage fcontext -a -t unconfined_exec_t /opt/pixar/Tractor-2.1/bin/tractor-blade

您可以在 Red Hat 文档中阅读有关不受限制的进程的更多信息:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Targeted_Policy-Unconfined_Processes.html

答案2

尝试使用 semanage fcontext 命令

semanage fcontext -a -t <YourLabel> -f f <YourPath>应该管用。

-a = 为 fcontext 对象类型添加记录

-t = 对象的 SELinux 类型

-f = 文件类型

答案3

安全增强型Linux系统访问控制(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/chap-Security-Enhanced_Linux-Systemd_Access_Control.html

您还可以将 selinux 状态更新为允许
setenforce 0
getenforcesestatus

相关内容