ฉันมีระบบที่สามารถเข้าสู่ระบบภายใต้ชื่อผู้ใช้ของฉัน (myuser) แต่ฉันต้องเรียกใช้คำสั่งในฐานะผู้ใช้อื่น (scriptuser) จนถึงตอนนี้ฉันได้พบกับสิ่งต่อไปนี้เพื่อเรียกใช้คำสั่งที่ฉันต้องการ:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
หาก แต่เมื่อฉันพยายามเรียกใช้คำสั่งที่ซับซ้อนมากขึ้นเช่น[[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
ฉันประสบปัญหากับการอ้างอิงอย่างรวดเร็ว ฉันไม่แน่ใจว่าฉันจะส่งคำสั่งที่ซับซ้อนตัวอย่างนี้ไปได้bash -c
อย่างไรเมื่อ\"
จำกัด ขอบเขตของคำสั่งที่ฉันส่งไปแล้ว (และฉันไม่รู้วิธีการอ้างอิง / tmp / บางไดเร็กทอรีซึ่งรวมถึงช่องว่างด้วย
มีวิธีการแก้ปัญหาทั่วไปที่ช่วยให้ฉันสามารถส่งคำสั่งใด ๆ ไม่ว่าจะมีความซับซ้อน / บ้าอ้างถึงหรือเป็นข้อ จำกัด บางอย่างที่ฉันได้มาถึง? มีวิธีแก้ปัญหาอื่น ๆ