【问题标题】:Switch user without prompting for a password in shell script切换用户而不提示在 shell 脚本中输入密码
【发布时间】:2012-08-14 12:50:05
【问题描述】:

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

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

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

【问题讨论】:

标签: shell scripting


【解决方案1】:

sudoers 中的 NOPASSWD 子句不起作用吗?例如:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 2010-10-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多