我可以使用命令访问另一个用户的帐户:
sudo su - other_user
我没有input密码。 看来这是sudo允许我的唯一命令。
之后,我可以执行文件复制和服务器重启等多项任务。 我想自动执行这些任务,以便我可以执行一个脚本,这将获得其他用户的权利并做它必须做的事情。 然而, sudo衍生另一个shell,直到我退出它阻止脚本执行。 是否有可能控制该shell,并从我的脚本发送命令到它?
更新2011-11-01:
我试着从答案和这两个命令的build议:
sudo -u other_user whoami sudo su - other_user -c "whoami"
要求密码。
不幸的是,我找不到sudoers来看设置。 这种情况让我感到有些懊恼,因为有权做我想做的事,但不能自动化。
使用su命令的-c选项作为另一个用户执行命令。
如果需要,还可以在脚本或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 ~]
su的使用不是完全必要的。
$ sudo -u other_user whoami other_user