如何将用户对journalctl的sudo权限限制为特定单位?

如何将用户对journalctl的sudo权限限制为特定单位?

我想为我们的用户提供对journalctl特定单元的访问权限。例如,httpd.我最初的想法是指定这样的命令规范:

/usr/bin/journalctl -u httpd.service *

这将使他们能够访问有用的选项,例如--all--full--follow等。但是,很快注意到它还允许他们指定不同的单位(例如,-u tomcat)。

指定每个可接受的选项是做到这一点的唯一方法吗?或者我可以在文件上利用 ACL 之类的东西来进行更精细的访问吗?

答案1

您可以编写一个setuid(或setgid?)可执行文件来清理环境,然后运行该journalctl命令。您必须解析journalctl允许用户指定的选项,然后传递它们。

警告

永远不要编写setuid脚本(任何以 hash-bang (" #!") 开头的脚本)。如果您的setuid脚本需要解释器,黑帽可以轻松破坏它。

对象的前 4 个字节setuid必须是“ \177ELF”。

相关内容