我有一个简单的 shell 脚本,用于以普通用户身份登录,并且这个普通用户有一个 shell,可以切换到具有 sudo 权限的用户。但是,我无法让它工作:
sshpass -p PASS ssh -t -o StrictHostKeyChecking=no user@host "sudo -s -u SUDOUSER;sudo cp -r "${STAGING}/${THEME}/*" /opt/themes/"${THEME}/.";exit;rm -rf "${STAGING}/*""
这样就可以正常登录到服务器,然后切换到 SUDOUSER,但实际上它只是停在那里,并在主机上提示我作为 SUDOUSER(基本上是让我登录到服务器上的 SUDOUSER 并等待命令)
我需要运行脚本并返回到我的原始终端并完成 cp 和 rm 任务。
有人可以帮忙吗?
谢谢
答案1
这似乎主要是引用问题。试试这个:
sshpass -p PASS ssh -t -o StrictHostKeyChecking=no user@host \
"sudo -s -u SUDOUSER '\
cp -r \"${STAGING}/${THEME}/*\" /opt/themes/\"${THEME}/.\"; \
rm -rf \"${STAGING}/*\"'"
我假设$STAGING
和$THEME
是您本地 shell 中的变量。