脚本的 Collectd Exec 插件权限被拒绝

问题描述

我正在使用示例脚本测试 collectd Exec 插件,然后再将其用于我的最终目的。但我遇到了 sample script 本身的问题。

这是错误

collectd[4585]: exec plugin: Failed to execute ``/home/ec2-user/magic_level.sh'': Permission denied

更多信息:

$cat /home/ec2-user/magic_level.sh
#!/bin/bash
HOSTNAME="${COLLECTD_HOSTNAME:-localhost}"
INTERVAL="${COLLECTD_INTERVAL:-60}"
while sleep "$INTERVAL"; do
  echo "PUTVAL \"$HOSTNAME/exec-magic/gauge-magic_level\" interval=$INTERVAL N:$(date +%N)"
done

$ls -l /home/ec2-user/magic_level.sh
-rwxrwxr-x. 1 ec2-user ec2-user 244 Dec 27 16:28 /home/ec2-user/magic_level.sh

我的 exec 插件配置:

<Plugin exec>
    Exec "ec2-user" "/home/ec2-user/magic_level.sh"
</Plugin>

注意:我可以看到 SELINUX 已启用。但是我在日志中看不到对这个脚本的任何拒绝

谁能帮我解决这个问题

解决方法

实际上这是被 SELINUX 阻止了。

exec read system_u:system_r:collectd_t:s0 59 file execute system_u:object_r:shell_exec_t:s0 denied 147851

最初我没有看到错误,因为我对 SELINUX 缺乏了解