संपादित दिसंबर 2013: यहाँ एक छोटी जवाब है: एक दिन ले लो या दो खुद को परिचित करने के लिए पायथन पुस्तकालय के साथ "Fabric"। फैब्रिक रिमोट कार्यों को 1 या अधिक सर्वरों को प्रेषित करने के संबंध में मुद्दों का एक टन हल करता है।
आप शायद अभी भी लक्ष्य प्रणाली पर उपयोगकर्ता नाम सेट करना चाहते हैं जो पासवर्ड रहित आदेश चला सकता है (और आप इसे करने के लिए फैब्रिक का भी उपयोग कर सकते हैं!)।
बस सावधान रहें कि फैब्रिक के कुछ पहलू पूरी तरह से पाइथोनिक नहीं हैं। इसके अलावा, फैब्रिक को पहले सिसडमिन के साथ दिमाग में डिजाइन किया गया था, जो लोग सर्वर के खिलाफ कमांड बैच करना चाहते हैं। यदि आप कुछ और करने की कोशिश कर रहे हैं (जैसे कुछ बहुत ही विशिष्ट सर्वर या परिदृश्य स्वचालित करें) तो आप पूरी तरह से समझना चाहेंगे कि "सेटिंग्स के साथ" और/या @ ड्रॉल्स सजावट कैसे काम करती है। मैंने वापस नहीं देखा है ...
(और हाँ, मुझे रिमोट एसएसएच कमांड "रिमोट" सिस्टम पर काम कर रहा है। यानी, सर्वर ए सर्वर सर्वर से कनेक्ट करने के लिए सर्वर बी से पूछता है, और कमांड की वापसी है सर्वर ए पर देखा गया है, भले ही ए सीधे सर्वर सी से बात नहीं करता है। प्रयोगशाला सेटअप आसान बनाता है!)।
मूल प्रतिक्रिया: इस समस्या के कई समाधान हैं। मैदान के लिए घोड़े; कुछ अलग-अलग परिस्थितियों में दूसरों की तुलना में बेहतर हैं।
सवाल पूछा गया है, "कोई टीटीवी" त्रुटि को कैसे हल करें। ऐसा लगता है कि फोकस लगता है इसलिए मुझे लगता है कि सुडौर्स के बारे में बात सिर्फ टीटीवी मुद्दे से बचने के लिए काम करने का प्रयास है।
विकल्प 1) Askhat का उत्तर बहुत अच्छा काम करता है ... ज्यादातर समय। असल में, हमेशा "-tt" निर्दिष्ट करें जो अधिक लक्ष्य प्रणालियों पर काम करता है।
नोट यदि आप पैरामीको जैसे एसएसएच लाइब्रेरी का उपयोग कर रहे हैं, तो आप अभी भी समस्या को दबाएंगे, जिसमें "-t" करने का सहज ज्ञान नहीं है।
विकल्प 2) मेरा उत्तर - एक ASKPASS निर्दिष्ट करना है जो एसटीडीआईएन है।तो यह उदाहरण सूडो पासवर्ड आवश्यकता और टीटीवी दोनों को संतुष्ट करता है: $ shell> ssh [email protected] 'echo "पासवर्ड" | sudo -S echo "foobar"'
विकल्प 3) हां, आप सुडो को अक्षम कर सकते हैं सभी या कुछ उपयोगकर्ताओं पर पासवर्ड चेक, लेकिन यह एक उत्पादन सर्वर पर अच्छा नहीं है।
विकल्प 4) आप दूरस्थ "requiretty" (या सेट कर सकते हैं सभी या sudoers में कुछ उपयोगकर्ताओं के लिए "! Requiretty"। फिर, एक उत्पादन बॉक्स पर शांत नहीं।
यह सर्वर परिवर्तन करने से बचने के लिए सबसे अच्छा है। किसी दिन उस सर्वर को प्रतिस्थापित किया जाएगा, सेटिंग डिफ़ॉल्ट पर वापस जा रही हैं, और आपकी स्क्रिप्ट काम करना बंद कर देगी।
ध्यान दें कि एक बार जब आप अपने सभी विकल्पों को समझ लेते हैं, तो यह बहुत अधिक स्वचालन के दरवाजे खुलता है (उदाहरण के लिए आपके पर एक स्क्रिप्ट लैपटॉप सर्वर होस्टनाम की सूची से कनेक्ट हो सकता है, और उन सर्वरों पर सूडो कार्यों को निष्पादित किए बिना, उन सर्वरों पर स्क्रिप्ट को प्रतिलिपि बनाने की आवश्यकता के बिना)।
... और मुश्किल तरीके से? –
@ bradley.ayers: समस्या यह है कि 'सुडो' एक tty से पासवर्ड पढ़ना चाहता है। या तो आप सूडो के लिए एक टीटी प्रदान करते हैं या आप सूडो में पासवर्ड चेक से बचते हैं। यदि आप सुरक्षा प्राप्त करना चाहते हैं तो उत्तरार्द्ध अधिक कठिन है। – nosid
@nosid इसके लिए धन्यवाद। –