如何在shell脚本中以不同的用户身份登录并执行一组命令?

Gir*_*ara 3 bash shell-script

我的要求是以不同的用户身份登录,这需要密码身份验证,并在我从我的用户帐户运行的 shell 脚本中以该用户身份执行一些命令。

例如:user1 正在执行脚本。要求是使用密码以 user2 身份登录并使用单个 shell 脚本执行一组命令。

Rom*_*nov 7

您可以使用以下几种方式:

  1. 使用su. 通过 su 您可以以这种方式执行命令:

su user -c "command"

或者

su - user -c "command"
Run Code Online (Sandbox Code Playgroud)

不同之处在于,当您使用 dash 时,您将获得目标用户的环境。使用此命令,您将被要求输入目标用户的密码

  1. 使用sudo

sudo -u user "command"

使用此命令,您可以使用或不使用密码(您的密码)执行它

  1. 使用ssh

使用 ssh,您可以使用用户密码、密钥密码(如果有)执行命令

ssh user@localhost "command"
Run Code Online (Sandbox Code Playgroud)

PS还有其他可能的方法,这些方法很少可能,例如 rsh


小智 0

使用该命令su [username]允许您从当前位置在该用户的上下文中运行命令。使用以下命令su - [username]将您切换到该用户的主目录。如果省略用户名,您将切换到 root。