linux - 如何使用另一个用户通过 sudo 运行多个命令

标签 linux bash

我想做如下的事情

ssh -t 10.x.xx.xxx "sudo -s -u user1 /bin/bash -c 'tar --warning=none -xf abc.tgz;cd abc/def;'"

但它给了我以下错误

tar:您必须指定 -Acdtrux' 或 --test-label' 选项之一 请尝试 tar --help' 或 tar --usage' 了解更多信息。

最佳答案

一种可能性是您只需在 tar 命令中省略 x 之前的 - 即可。否则,你所拥有的或多或少是正确的,尽管比需要的时间长了一点。除非 user1 有除 /bin/bash 之外的登录 shell,并且您需要使用 bash,否则您可以将命令缩短为

ssh 10.x.xx.xxx 'sudo -u user1 -s "tar --warning=none xf abc.tgz; ..."'

对于 -s 启动的任何 shell,-s 的字符串参数都会自 Action 为参数传递给 -c

关于linux - 如何使用另一个用户通过 sudo 运行多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26242466/

相关文章:

linux - 多线程进程的内存布局

linux - 检查bash shell脚本中的参数数量

bash - Bash 脚本中不要有空代码行的任何原因(历史或其他原因)

linux - 在搜索路径中调用二进制文件与显式调用它

Java 错误 (hsqldb)

linux - 破译 wget 命令

java - 您可以将 Java 应用程序的窗口标题设置为命令行参数吗?

linux - 在 Linux 中,如何查找修改日期不早于给定文件的文件?

git - 从 Github checkout 分支,无需克隆整个仓库,也无需 Git

mysql - mysql 数据库克隆的有效方法/工具