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

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

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

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

答案1

您可以使用多种方式:

  1. 使用su。通过 su 你可以这样执行命令:

su user -c "command"

或者

su - user -c "command"

不同的是,当你有破折号时,你将获得目标用户的环境。使用此命令,您将被要求输入目标用户的密码

  1. 使用sudo

sudo -u user "command"

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

  1. 使用ssh

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

ssh user@localhost "command"

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

答案2

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

相关内容