我可以使用命令访问另一个用户的帐户:
sudo su - other_user
我没有输入密码。看来这是 sudo 允许我执行的唯一命令。
之后,我可以执行多个任务,例如文件复制和服务器重启。我想自动执行这些任务,以便我可以执行一个脚本,该脚本将获得 other_user 的权限并执行其必须执行的操作。但是,sudo
会生成另一个 shell,直到我退出它才会阻止脚本执行。是否可以控制该 shell 并从我的脚本向其发送命令?
更新2011-11-01:
我尝试了答案中的建议和这两个命令:
sudo -u other_user whoami
sudo su - other_user -c "whoami"
询问密码。
不幸的是,我找不到sudoers查看设置。这种情况让我有点恼火,因为我有权限做我想做的事情,但却不能自动完成。
答案1
使用命令-c
的选项su
以另一个用户身份执行命令。
如果需要,您还可以在脚本或 shell 中使用这些命令的输出。
例子:
[infeligo@server ~] cat /home/kenny/secretfile.txt
cat: /home/kenny/secretfile.txt: Permission denied
[infeligo@server ~] sudo su - kenny -c "cat /home/kenny/secretfile.txt"
Dear diary: Today was a boring day at work. Good thing it's a friday!
[infeligo@server ~]
答案2
没有必要使用 su。
$ sudo -u other_user whoami
other_user