我想做如下的事情
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/