2012-05-25 3 views
7

मैं कैपिस्ट्रानो के माध्यम से अपने किसी भी दूरस्थ निष्पादित आदेशों के लिए सुडो का उपयोग नहीं करना चाहता हूं। विशेष रूप से, जब मैं cap deploy:setup चलाता हूं, तो मुझे पहले mkdir कमांड के दौरान मेरे सूडो पासवर्ड के लिए कहा जाता है। मैंने set :use_sudo, false को अपनी deploy.rb फ़ाइल में जोड़ा, लेकिन इससे कोई फर्क नहीं पड़ता।कैपिस्ट्रानो "सेट: use_sudo, false" के साथ भी सुडो का उपयोग कर

मैंने काफी पूर्ण तैनाती.आरबी फ़ाइल के साथ शुरुआत की, लेकिन मुद्दों को शुरू करने के बाद इसे नीचे दबा दिया।

# App Definitions 

set :domain, '[server-ip]' 
role :app, domain 
role :web, domain 
role :db, domain, :primary => true 

set :user, "my_app" 
set :use_sudo, false 

task :sudo_test do 
    run "#{try_sudo} whoami" 
end 

चल cap sudo_test परिणाम मुझ में मेरी sudo पासवर्ड के लिए संकेत किया जा रहा: यहाँ मेरी कम से कम संस्करण अभी भी पता चलता है कि use_sudo का सम्मान नहीं किया जा रहा है। मैं यहाँ क्या खो रहा हूं (बालों के अलावा मैं पहले से ही बाहर खींच लिया है)?

गूगल निष्कर्ष

https://groups.google.com/forum/?fromgroups#!topic/capistrano/QNYnvW8obrg

किसी ने वही समस्या होने के साथ एक धागा। धागे में कोई निष्कर्ष/संकल्प नोट किया गया।

+0

वह '# {try_sudo}' बिट क्या है? क्या होगा यदि आप इसे बाहर ले जाएं? – sbeam

+0

'# {try_sudo} 'को _sudoize_ कमांड करना चाहिए यदि': use_sudo' को' false' पर सेट किया गया है। मैं इसे 'sudo_test' में शामिल करता हूं क्योंकि कैपिस्ट्रानो रेल कार्य संभवतः इसका भी उपयोग करते हैं, और संभवतः समस्या कहां से उत्पन्न होती है। –

+0

हम अपने deploy.rb फ़ाइल में 'sudo -i ' का उपयोग करते हैं। – yeowzir

उत्तर

4

जाहिर है, कुछ कैपिस्ट्रानो कार्यों के साथ सुडो कार्यक्षमता को अक्षम करना संभव नहीं है। धारणा यह है कि सर्वर पर अप्रतिबंधित उपयोगकर्ता कुछ कार्यों को पूरा करने में सक्षम नहीं होना चाहिए।

प्रश्न में कमांड mkdir है। मैं तर्क दूंगा कि एक अप्रतिबंधित उपयोगकर्ता इस आदेश को चलाने में सक्षम होना चाहिए यदि पैरेंट फ़ोल्डर एक ऐसा है जिसके लिए उन्हें ऐसा करने की अनुमति है। मैं यह भी तर्क दूंगा कि उपयोगकर्ता वास्तव में एक विशेषाधिकार प्राप्त उपयोगकर्ता हो सकता है, जैसे रूट। सर्वश्रेष्ठ प्रणालियां? जरुरी नहीं। कुछ तैनाती के कारण के दायरे में, हां।

https://github.com/capistrano/capistrano/issues/211#issuecomment-7667467

+1

: use_sudo, mkdir के साथ झूठी काम किया (तैनाती का उपयोग: सेटअप) – vish

12

किसी और ने इस मुद्दे में चलाता है और मेरे जैसे एक मूर्ख है के लिए:

यहाँ मेरी मूल प्रश्न के उत्तर के लिए लिंक है। सुनिश्चित करें कि आप झूठी उद्धरण नहीं दे रहे हैं। मैं था:

set :use_sudo, "false" 

और जब मैं यह

में स्विच करने
set :use_sudo, false 

सबसे बातें तरह से मैं उम्मीद काम करना शुरू किया। जैसा कि वाईडब्ल्यूसीए हैलो बताता है कि अभी भी कमांड हैं जो use_sudo सेटिंग को अनदेखा करते हैं। हालांकि, इसे सही ढंग से सेट करना न भूलें।

+0

एक स्पष्टीकरण के रूप में (कैपिस्ट्रानो कोड के प्रासंगिक भाग को पढ़ने के बिना): "झूठी" रूबी में एक वास्तविक-ईश मूल्य है। केवल शून्य और झूठी झूठी-आश हैं। कोई अन्य मूल्य, सहित। 0, "", [], सच माना जाता है। तो सेटिंग: use_sudo "false" को सेटिंग के समान ही है: use_sudo true पर। –

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