让组使用 root 权限和参数执行单个命令

让组使用 root 权限和参数执行单个命令

我在尝试通过网络服务器执行命令时遇到问题。

我所拥有的以及我想要实现的目标:我使用组www-data(不是 sudoer)运行 Apache2 Web 服务器。在网络服务器上运行的脚本应以特定用户身份执行命令(使用“passthru”的 PHP 脚本)。

我发现一种可能的方法是允许该组www-data以 sudo 的方式执行特定命令(也不需要密码)。但我需要 root 权限才能以其他用户身份运行该命令。是否可以添加为命令别名?

最重要的是,我还需要能够将命令行参数/参数传递给命令。附带说明:其中一个参数也是一种-u选择。

有没有(更好的)方法来实现这一目标?也就是说,因为它只有一个命令:

sudo -u myuser -c "MY_COMMAND WITH CHANGING ARGUMENTS"

我知道的另一种选择是使用su命令。但在这种情况下,我需要“黑客”来输入密码,因为脚本应该由服务器执行,而无需用户的帮助。

答案1

我一定是忽略了这个显而易见的答案。

添加到 sudoers“源”和目标用户(应代表其执行命令的用户)并指定程序的路径。就我而言,使用组而不是用户。

www-data ALL = (mytargetuser) NOPASSWD: /path/to/my/program

这个答案中描述的解决方案:https://unix.stackexchange.com/a/13058

相关内容