我想让每个 Linux 用户看到所有 systemd 服务的状态。
我为 /etc/sudoers 文件创建了以下几行:
ALL ALL = NOPASSWD: /usr/bin/systemctl is-active *
ALL ALL = NOPASSWD: /usr/bin/systemctl is-enabled *
ALL ALL = NOPASSWD: /usr/bin/systemctl status *
是否存在我目前可能看不到的安全风险?
事实上,每个 Linux 用户都可以看到所有服务的状态,这对我来说并不构成安全风险。
答案1
答案2
所有列出的systemctl
命令(status
、is-enabled
、is-active
)都可以由任何普通用户调用,无需 root 权限。
这里不需要 sudo。
答案3
它是安全的,只要你运行的是最新版本的 sudo,env_reset 已启用,并且常见的警告
答案4
systemctl status
通常调用它less
,它允许您使用内置命令将输出写入任何文件名和目录下s
。如果通过 sudo 调用,则此文件将以 root 身份创建,并可以覆盖任何现有文件,从而允许非特权用户造成破坏。
更进一步说,如果您的输出包含有效的命令,则可以以 root 身份运行它们(例如,systemctl
如果此文件在下创建) 。/etc/cron.hourly