我有一个只能以我的用户名 (myuser) 登录的系统,但我需要以其他用户 (scriptuser) 身份运行命令。到目前为止,我想出了以下来运行我需要的命令:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
Run Code Online (Sandbox Code Playgroud)
但是,如果当我尝试运行更复杂的命令时,例如[[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
我很快就会遇到引用问题。我不确定如何将这个示例复杂命令传递给bash -c
,当\"
已经分隔了我传递的命令的边界时(所以我不知道如何引用 /tmp/Some 目录,其中包含一个空格。
无论引用多么复杂/疯狂,是否有通用解决方案允许我传递任何命令,或者这是我达到的某种限制?是否有其他可能的,也许更具可读性的解决方案?
我正在开发一个使用 facebook 登录的应用程序。到目前为止,它不是公开的,并且受 nginx 中的 http 基本身份验证保护。是否可以禁用 facebook ip 范围的 http auth,以便我们的测试人员也可以测试 facebook 功能?如果可能,请包含示例配置片段。