如何在将sudo用作另一个用户时运行多个命令

时间:2016-12-08 17:13:11

标签: linux

我需要在Linux中作为另一个用户运行两个或更多命令。例如,使用“root”,我需要sudo给另一个用户并执行类似“cd / tmp /; ls -ltr”的操作。

如果我这样做:“sudo -i -u john.smith whoami”没有双引号,它会告诉我我是john.smith。

现在我想扩展那个做whoami,更改目录,并执行ls命令,同时使用“root”将sudo作为john.smith。

2 个答案:

答案 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,我从那里开始。