【发布时间】:2017-03-10 11:56:38
【问题描述】:
我正在尝试通过 SSH 创建具有 sudo 用户权限的目录。
这是我形成的命令
some_command "ssh -t userA@host bash -c \"\'sudo -u userB bash -c \" mkdir -p /home/userB/dir_to_create \" \'\" "
这里some_command 是expect 脚本的一部分。
我收到此错误:-
[sudo] password for userB:
mkdir: missing operand
Try `mkdir --help' for more information.
Connection to host closed.
如果我跑
sudo -u userB bash -c "mkdir /home/userB/dir_to_create"
它有效。
【问题讨论】:
-
您是否需要使用所有这些
bash -c构造?如果 sudo 配置为允许bash并且不允许任意命令,则您不需要 ssh 并且仅需要 sudo 才需要它,这并不常见。 -
ssh userA@host 'sudo -u userB mkdir /home/userB/dir_to_create'有什么问题? -
@MarkPlotnick 谢谢。有效。我尝试了你的方式,并像魅力一样工作。你能把那个写成答案,这样我就可以接受了。再次感谢。这就是我所做的:-
spawn bash -c "ssh -t userA@host \"sudo -u userB bash -c 'mkdir -p /home/userB/perf_tools' \" "