Tôi có một hệ thống mà tôi chỉ có thể đăng nhập dưới tên người dùng (myuser), nhưng tôi cần chạy các lệnh như người dùng khác (scriptuser). Cho đến nay, tôi đã đưa ra các cách sau để chạy các lệnh tôi cần:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
Tuy nhiên, nếu tôi cố chạy một lệnh phức tạp hơn, chẳng hạn như [[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
tôi nhanh chóng gặp rắc rối với việc trích dẫn. Tôi không chắc làm thế nào tôi có thể chuyển lệnh phức tạp ví dụ này đến bash -c
, khi \"
đã phân định ranh giới của lệnh tôi đang chuyển (và vì vậy tôi không biết cách trích dẫn / tmp / Một số thư mục, bao gồm một khoảng trắng.
Có một giải pháp chung cho phép tôi vượt qua bất kỳ lệnh nào cho dù trích dẫn có phức tạp / điên rồ đến mức nào, hay đây là một giới hạn nào đó mà tôi đã đạt được? Có những giải pháp khác có thể và có lẽ dễ đọc hơn?