Drush और उपयोगकर्ता की अनुमति


10

मैं देखता हूं कि मेरा उपयोगकर्ता अपाचे समूह का सदस्य है। मैंने निम्नलिखित के माध्यम से जोड़ा और पुष्टि की

$ sudo usermod -a -G apache `whoami`  # add my user to apache group
$ sudo chmod -R g+w .                 # permit group members to write 
$ groups `whoami`                     # confirm I'm in the apache group

हालाँकि, जब मैं ड्रश अपडेट कोर या ड्रोन क्रोन चलाने का प्रयास करता हूं

$ drush cc all

unlink(sites/default/files/css/css_71ba7c25a8d3c47c68a8e05608ae525c.css):[warning]
Permission denied file.inc:482

यहाँ छवि विवरण दर्ज करें

और इस स्थिति में CSS कैश जैसा दिखता है

$ ll
total 1536
drwxrwxr-x.  2 apache apache  12288 Nov 26 10:12 .
drwxrwxr-x. 11 apache apache   4096 Nov 24 20:35 ..
-rw-rw-r--   1 apache apache 162269 Nov 26 10:06 css_00d5f4d7c5c92cd4f.css
-rw-rw-r--   1 apache apache 158090 Nov 26 10:02 css_0605989692a2119d305.css
-rw-rw-r--   1 apache apache 162269 Nov 26 10:02 css_0779dcac71ee9aa8e02d9e.css

यहाँ छवि विवरण दर्ज करें

मुझे लगता है कि मेरे उपयोगकर्ता खाते, जिसमें sudo एक्सेस है, अपाचे (या www-data) का एक समूह सदस्य होना चाहिए और यह कि फाइल ट्री को ग्रुप राइट एक्सेस की अनुमति देनी चाहिए। किसी भी मदद या सही दिशा में अंक बहुत सराहना की जाएगी।


2
newgrp apache
सूदो के

2
क्या आपने लॉग आउट किया और फिर वापस वापस आ गया?
mpdonadio

जवाबों:


13

यकीनन, एक बहुत ही सीधा तरीका यह है कि अपने उपयोगकर्ता के समूह के कामों के साथ बिल्कुल भी मेल न करें और इसके बजाय वेब सर्वर उपयोगकर्ता (यानी: अपाचे, www-डेटा) के रूप में चलाएं।

सुडो का उपयोग करें:

sudo -u apache drush

या डेबियन / ubuntu पर:

sudo -u www-data drush

एक कमांड उपनाम बनाएँ:

फिर, यह सुनिश्चित करने के लिए कि आप हमेशा इस तरह से ड्रश चलाते हैं, एक उपनाम जोड़ें:

echo "alias drush='sudo -u apache drush'" >> ~/.bash_aliases 

या डेबियन / ubuntu पर:

echo "alias drush='sudo -u www-data drush'" >> ~/.bash_aliases 

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


1
जब मैं "sudo -u www-data drush" चलाता हूं, तो यह शिकायत करता है कि drush-backups निर्देशिका लिखने योग्य नहीं है।
मैगमैटिक

1
@ मैगमैटिक सिर्फ उस फ़ोल्डर में अनुमतियों को बदलते हैं, इसे www-data के लिए लिखने योग्य बनाते हैं, यह जांचें कि कौन स्वामी है।
बेतो एविगा

3

हालांकि अन्य उत्तर जानकारीपूर्ण है, मैं अब उचित उपयोगकर्ता अनुमति का उपयोग करता हूं जैसा कि वर्णित है

फ़ाइल अनुमतियां और स्वामित्व सुरक्षित करना

जिसके साथ खुलता है

सर्वर फ़ाइल सिस्टम को कॉन्फ़िगर किया जाना चाहिए ताकि वेब सर्वर (जैसे अपाचे) के पास उन फ़ाइलों को संपादित करने या लिखने की अनुमति न हो जो इसे निष्पादित करते हैं। यही है, अपाचे प्रक्रिया के लिए आपकी सभी फाइलें 'केवल पढ़ने के लिए' होनी चाहिए, और एक अलग उपयोगकर्ता द्वारा लिखित अनुमति के साथ स्वामित्व में होनी चाहिए।


3
आपके द्वारा लिंक किया गया आलेख Drush का उल्लेख नहीं करता है। क्या आप कृपया, यह स्पष्ट कर सकते हैं कि आप ड्रश कमांड चलाने के लिए किस उपयोगकर्ता का उपयोग कर रहे हैं और वह उपयोगकर्ता कैसे सेट अप कर रहा है।
जेडब्ल्यू।

2
दिलचस्प! मुझे लगता है कि आपको उन 2 परगनों का भी उल्लेख करना चाहिए जो आपके द्वारा पहले से ही उद्धृत किए गए हैं ...
पियरे.विरेंस

1
Drupal फ़ाइलों में फ़ोल्डर को वेबसर्वर द्वारा लिखने योग्य होना चाहिए, और विकास में आपको संभवतः उस विशेषता के लिए भी फ़ोल्डर की आवश्यकता होगी।
बेतो एविगा

1

जब मैं नशे में www-dataधुत होकर दौड़ने लगा तो अब उपलब्ध नहीं था क्योंकि मेरे $ पेट बदल गए थे

वर्कअराउंड के रूप में आप ड्रश करने के लिए पूरे रास्ते में प्रवेश कर सकते हैं।

उदाहरण के लिए

sudo -u www-data /home/vagrant/.composer/vendor/bin/drush status

अपने ड्रश का रास्ता पाने के लिए आप दौड़ सकते हैं:

which drush

जिसका मतलब है कि आप भी बस चला सकते हैं:

sudo -u www-data `which drush` status

जो कमांड में पथ को हार्ड कोड करने की आवश्यकता को हटाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.