2012-06-24 11 views
6

मेरी तैनाती फ़ाइल में मैं www-आंकड़ों के समूह सेट की अनदेखी करता है सेटअप मैं Capistrano की उम्मीद करने के लिए chown जड़ के साथ फ़ोल्डर: www-डेटाCapistrano के साथ नियोजित करना समूह की स्थापना

लेकिन सभी फ़ोल्डर्स और फ़ाइलें रूट हैं: रूट।

कोई भी विचार जहां से यह समस्या आ सकती है?

सूचना: मैं सिस्टम-व्यापी-आरवीएम का उपयोग कर रहा हूं।

+2

यह रूट के रूप में तैनात करने के लिए एक बहुत ही खराब प्रथा है, मैं सुझाव देता हूं कि उपयोगकर्ता बनाएं और इसके साथ तैनाती करें। –

उत्तर

8

मेरी समझ के लिए आपको इसे मैन्युअल रूप से करना चाहिए, पर कौन सा सेटअप है, उपयोगकर्ता को लॉगिन करने के लिए उपयोग करें, निर्देशिका के अधिकार सेट न करें।

मुझे कैपिस्ट्रानो के लिए कोई समूह सेटिंग नहीं मिली है, शायद आप इसके लिए कुछ एक्सटेंशन का उपयोग कर रहे थे?

आप बदलना कर सकता है क्या यह हो सकता है:

after "deploy:setup", :setup_group 
task :setup_group do 
    run "chown -R :#{group} #{deploy_to} && chmod -R g+s #{deploy_to}" 
end 

लेकिन पहली जगह में आप, तैनाती के लिए जड़ उपयोग नहीं करना चाहिए के रूप में @Julian टिप्पणी में उल्लेख है बेहतर अभ्यास इस के लिए अलग-अलग उपयोगकर्ता का उपयोग करने के लिए है कार्य करें और अपने समूह को उचित समूह में सेट करें, फिर उसे उपर्युक्त कार्य की आवश्यकता नहीं होगी और स्वचालित रूप से कार्य करेगा।

+0

पता नहीं क्यों यह अब काम नहीं कर रहा है, लेकिन यह मदद करता है, THX। गैर-रूट-परिनियोजन में परिवर्तन पर काम करना, लेकिन यह बहुत सी नई समस्याएं प्रदान करता है – PascalTurbo

+0

ईश्वर, मैं विचारहीन रूप से 'सेट: समूह' का उपयोग वर्षों से कर रहा था! कभी नहीं देखा, क्योंकि आमतौर पर मेरा उपयोगकर्ता नाम और समूह समान होते हैं :) –

2

बस चिमिंग: का कोई उल्लेख नहीं है: कैपिस्ट्रानो स्रोत कोड में समूह। मुझे लगता है कि यह एक कार्गो पंथ विकल्प है। और: उपयोगकर्ता विकल्प केवल एसएसएच कनेक्शन के लिए उपयोग किया जाता है।

आपके प्रश्न के अनुसार, Capistrano बनाता है निर्देशिका और फ़ाइलें डिफ़ॉल्ट अनुमतियों के साथ बनाई गई हैं, यह कभी भी chown उन्हें किसी भी तरह से नहीं; यदि आप root के रूप में तैनात हैं तो वे root:root से संबंधित होंगे।

2

एक मुद्दा पहली जगह में यह होने नहीं है फिक्सिंग की तुलना में बेहतर:

  1. सबसे पहले, के साथ (as Julien suggests) तैनात करने के लिए किसी अन्य उपयोगकर्ता पैदा करते हैं।
    कहें कि हम उसे deployer कहते हैं।
  2. तब SSH कनेक्शन
    set :user, 'deployer'
  3. अन्त के लिए उसे उपयोग करें, हम उपयोग sudo होने के लिए नहीं करना चाहते हैं, तो आपके deploy.rb को
    set :use_sudo, false
    जोड़कर इसे बंद कर देते।
+0

जब मैं ऐसा करता हूं, तो अपाचे फ़ाइलों को नहीं पढ़ सकता क्योंकि यह एक अलग उपयोगकर्ता/समूह के तहत नियोक्ता उपयोगकर्ता के लिए चल रहा है। यदि मैं मैन्युअल रूप से दिखाया गया- आर वेबसर्वर उपयोगकर्ता के लिए, साइट काम करता है। कोई सुझाव? –

+1

@ joshua.paling www-data समूह में नियोक्ता जोड़ने के बारे में क्या? यह मेरे लिए काम किया। (उबंटू: '' 'सुडो योजक नियोक्ता www-data''') – marvin

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