我需要使用shell脚本在两个用户之间切换。
我使用su和sudo在用户之间切换。最重要的是,它每次都提示输入用户密码,我不希望这种情况发生。
我知道密码;有没有办法我可以在脚本本身硬编码,这样它就不会提示用户输入密码?
答案 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?