如何运行脚本作为另一个用户没有密码

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

我想要运行下面的命令:

su user2 -C script.sh 

但能够运行没有密码。

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

我试着用sudoers文件来做这个,经过几个小时的尝试后,我感到困惑不解。

如果有人可以提供一个明确的例子来说明如何完成(而不是像使用sudoers那样的通用types),那么将不胜感激。

打电话visudo并添加这个:

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

命令path必须是绝对的 ! 然后从user1 shell中调用sudo -u user2 /home/user2/bin/test.sh 。 完成。

尝试运行:

 su -c "Your command right here" -s /bin/sh username 

这将运行命令作为用户名,因为你有权限sudo作为该用户。