मेरे पास एक प्रणाली है जिसे मैं केवल अपने उपयोगकर्ता नाम (myuser) के तहत लॉग इन कर सकता हूं, लेकिन मुझे अन्य उपयोगकर्ता (स्क्रिप्टर) के रूप में कमांड चलाने की आवश्यकता है। अब तक, मुझे निम्नलिखित आदेशों को चलाने की आवश्यकता है जो मुझे चाहिए:
ssh -tq myuser@hostname "sudo -u scriptuser bash -c \"ls -al\""
हालांकि, जब मैं अधिक जटिल कमांड चलाने की कोशिश करता [[ -d "/tmp/Some directory" ]] && rm -rf "/tmp/Some directory"
हूं , जैसे कि मैं जल्दी से उद्धृत करने में परेशानी में पड़ जाता हूं। मुझे यकीन नहीं है कि मैं इस उदाहरण को जटिल कमांड से कैसे पारित कर सकता हूं bash -c
, जब \"
पहले से ही मैं जिस कमांड को पारित कर रहा हूं उसकी सीमाओं को परिसीमित करता है (और इसलिए मुझे नहीं पता कि कैसे / tmp / कुछ निर्देशिका को उद्धृत करना है, जिसमें रिक्त स्थान शामिल हैं।
क्या कोई सामान्य समाधान है जो मुझे किसी भी आदेश को पारित करने की अनुमति देता है, चाहे वह उद्धरण कितना भी जटिल / पागल क्यों न हो, या क्या यह किसी प्रकार की सीमा तक पहुँच गया है? क्या अन्य संभव और शायद अधिक पठनीय समाधान हैं?