我正在尝试创建一个执行我编写的自定义脚本的 systemd 服务。这只是我与 systemd 计时器一起使用的备份脚本。当我尝试在 systemd 文件中执行一些简单的操作时,比如“/usr/bin/free”或类似的东西,它工作得很好。但是,当我尝试执行我的脚本“/root/scripts/mybackupscript.sh”时,它失败了:
Main process exited, code=exited, status=203/EXEC
如果我将 selinux 设置为 permissive,它将毫无问题地启动我的脚本。
所以我知道 selinux 正在限制 systemd 执行我的脚本。但是我不知道如何使用selinux。如何创建 selinux 上下文以允许 systemd 执行我的脚本?
示例:此 systemd 文件运行没有问题:
[Unit]
Description=Logs system statistics to the systemd journal
Wants=myMonitor.timer
[Service]
Type=oneshot
ExecStart=/usr/bin/free
[Install]
WantedBy=multi-user.target
但是这个脚本失败了(除非我将 selinux 设置为 permissive,在这种情况下它执行得很好):
[Unit]
Description=Logs system statistics to the systemd journal
Wants=myMonitor.timer
[Service]
Type=oneshot
ExecStart=/root/scripts/mybackupscript.sh
[Install]
WantedBy=multi-user.target
任何想法,将不胜感激。谢谢!