切换用户而不提示shell脚本中的密码

时间:2012-08-14 12:50:06

标签: shell scripting

我需要使用shell脚本在两个用户之间切换。

我使用su和sudo在用户之间切换。最重要的是,它每次都提示输入用户密码,我不希望这种情况发生。

我知道密码;有没有办法我可以在脚本本身硬编码,这样它就不会提示用户输入密码?

2 个答案:

答案 0 :(得分:2)

NOPASSWD中的sudoers条款不起作用吗?例如:

user1 ALL=(ALL:ALL) NOPASSWD: /bin/su user2

允许user1在没有密码的情况下su到user2。如果您只需要将某个命令作为user2运行,请将其明确添加到sudoers(通过visudo):

user1 ALL=(user2) NOPASSWD: /path/to/command

然后以user1运行:

sudo -k user2 /path/to/command

答案 1 :(得分:1)

-S参数sudo接受标准输入的密码。请参阅:How to pass the password to su/sudo/ssh without overriding the TTY?