问题:如何在没有密码的情况下以另一个用户身份运行脚本?

我有必须以 user2 身份运行的 script.sh。但是,此脚本只能在我的应用程序中的 user1 下运行。

我想运行以下命令:

su user2 -C script.sh

但可以在没有密码的情况下运行。

我也希望这是非常严格的,因为在 user1 中只能在 user2 下运行 script.sh 而没有别的。

我已经尝试使用 sudoers 文件执行此操作,但经过数小时的尝试后,我一直感到困惑。

如果有人可以提供一个明确的示例来说明如何实现这一点(而不是像使用 sudoers 这样的通用示例),我们将不胜感激。

解答

调用visudo并添加:

user1 ALL=(user2) NOPASSWD: /home/user2/bin/test.sh

命令路径必须是绝对的!然后从user1shell 调用sudo -u user2 /home/user2/bin/test.sh。完毕。

Logo

更多推荐