2010-10-15 9 views
5

मैं एक कमांड निष्पादित करना चाहता हूं जिसके लिए स्थानीय मशीन में सुडो की आवश्यकता है। इसलिए जैसा कि दस्तावेज बताता है, मैंने स्थानीय कमांड का इस्तेमाल किया, लेकिन यह मुझे पासवर्ड दर्ज करने के लिए कह रहा था। इससे कैसे बचा जा सकता है? क्या कोई जगह है जहां मैं अपना स्थानीय मशीन पासवर्ड सहेज सकता हूं?फैब्रिक: स्थानीय कमांड उपयोग

local('sudo /etc/init.d/tomcat6 start',capture=True) 

उत्तर

4

चेक visudo आदेश है, जो आप /etc/sudoers फ़ाइल को संपादित करने की अनुमति देगा, जिसमें आप एक मशीन पर उपयोगकर्ताओं, आदेशों और पासवर्ड-आवश्यकताओं को परिभाषित कर सकते हैं (जैसे उपयोगकर्ता mlzboy करने के लिए पासवर्ड दर्ज करने की जरूरत नहीं है /etc/init.d/tomcat6 निष्पादित करें)। यह मत भूलना इससे सुरक्षा समस्या पैदा हो सकती है।

Sudoers manual

4

आप fabfile साझा करने के लिए योजना नहीं है, तो आप उपयोग कर सकते हैं:

echo "password\n" | sudo -S /etc/init.d/tomcat6 start 

sudo आदमी पृष्ठ के अनुसार:

एस (stdin) विकल्प का कारण बनता है से पासवर्ड को टर्मिनल डिवाइस के बजाय मानक इनपुट पढ़ने के लिए सुडो। पासवर्ड को एक न्यूलाइन वर्ण के बाद पालन किया जाना चाहिए।

+0

शानदार! आकर्षण के रूप में काम किया! – deeshank

1

आप sudo उपयोग करना चाहते हैं, लेकिन लूपबैक IP पर:

from fabric.api import sudo,env 
env.hosts =['127.0.0.1'] 
sudo('aptitude search fabric') 

sudoers संपादित करने के लिए कोई ज़रूरत नहीं, यह देखते हुए कि आप एक ssh सर्वर स्थानीय स्तर पर चल रहा है।

संबंधित मुद्दे