我需要在Linux中作为另一个用户运行两个或更多命令。例如,使用“root”,我需要sudo给另一个用户并执行类似“cd / tmp /; ls -ltr”的操作。
如果我这样做:“sudo -i -u john.smith whoami”没有双引号,它会告诉我我是john.smith。
现在我想扩展那个做whoami,更改目录,并执行ls命令,同时使用“root”将sudo作为john.smith。
答案 0 :(得分:2)
Bash支持-c
标志,允许您指定要作为命令行参数运行的命令 - 基本上是内联Bash脚本。这意味着您可以轻松地将多个命令组合到一个bash
的调用中,然后轻松sudo
- 编辑:
sudo -i -u john.smith bash -c 'whoami ; cd /tmp/ ; ls -ltr'
或
sudo -i -u john.smith \
bash -c ' whoami
cd /tmp/
ls -ltr
'
(其他shell语言具有相同的功能。)
答案 1 :(得分:0)
您可以制作小型shell脚本文件并使用sudo启动它。
我经常使用Ubuntu的另一件事是制作" sudo su" - 这给了我root shell,我从那里开始。