我的要求是以不同的用户身份登录,这需要密码身份验证,并以该用户的身份在我从用户帐户运行的 shell 脚本中执行一些命令。
示例:user1 正在执行脚本。要求是使用密码以 user2 身份登录,并使用单个 shell 脚本执行一组命令。
答案1
您可以使用多种方式:
- 使用
su
。通过 su 你可以这样执行命令:
su user -c "command"
或者
su - user -c "command"
不同的是,当你有破折号时,你将获得目标用户的环境。使用此命令,您将被要求输入目标用户的密码
- 使用
sudo
:
sudo -u user "command"
使用此命令,您可以使用或不使用密码(您的密码)执行它
- 使用
ssh
:
使用 ssh,您可以使用用户密码、密钥密码(如果有)执行命令
ssh user@localhost "command"
PS 还有其他可能的方法,但很少可能,例如 rsh
答案2
使用该命令su [username]
允许您从当前位置在该用户的上下文中运行命令。使用以下命令su - [username]
将您切换到该用户的主目录。如果省略用户名,您将切换到 root。