मैं लिनक्स में सभी उपयोगकर्ताओं के लिए एक फ़ोल्डर का लिखित उपयोग कैसे दे सकता हूं?


191

मैंने अभी Ubuntu पर Apache2 स्थापित किया, और देखा कि / var / www फ़ोल्डर सुरक्षित है। मैं बस sudoसब कुछ कर सकता हूं, लेकिन मैं सिर्फ इसे लिखने की पहुंच दूंगा।

मैं यह कैसे कर सकता हूँ?

मैंने कोशिश की sudo chmod 7777 /var/wwwलेकिन यह काम नहीं किया।


क्या यह सार्वजनिक रूप से सुलभ सर्वर है, या इसका इंटरनेट से कोई सीधा संबंध नहीं है? यदि पूर्व में यह महत्वपूर्ण है कि आप सुरक्षा निर्णयों पर विचार करें - इंटरनेट पर सर्वर लगातार हमले के अधीन हैं (आपके / var / log / संदेश या समकक्ष में एक नज़र है)।
kwutchak

यह सिर्फ मेरा लैपटॉप है, यह इंटरनेट से सुलभ नहीं है।
कार्सन मायर्स

जवाबों:


321

कई उपयोगकर्ताओं के साथ सर्वोत्तम साझा करने के लिए, जिन्हें लिखने में सक्षम /var/wwwहोना चाहिए, उन्हें एक सामान्य समूह सौंपा जाना चाहिए। उदाहरण के लिए उबंटू और डेबियन पर वेब सामग्री के लिए डिफ़ॉल्ट समूह है www-data। सुनिश्चित करें कि /var/wwwइस समूह में उन सभी उपयोगकर्ताओं को लिखा जाए, जिन्हें लिखने की आवश्यकता है ।

sudo usermod -a -G www-data <some_user>

फिर / var / www पर सही अनुमतियाँ सेट करें।

sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www

इसके अतिरिक्त, आपको निर्देशिका और इसके नीचे की सभी निर्देशिकाओं को "सेट GID" बनाना चाहिए, जिससे कि बनाई गई सभी नई फाइलें और निर्देशिकाएं समूह के /var/wwwस्वामित्व में हों www-data

sudo find /var/www -type d -exec chmod 2775 {} \;    

सभी फ़ाइलों को ढूंढें /var/wwwऔर स्वामी और समूह के लिए पढ़ने और लिखने की अनुमति जोड़ें:

sudo find /var/www -type f -exec chmod ug+rw {} \;

यदि आप अपने स्वयं के खाते के लिए अनुमति संपादित कर रहे हैं, तो आपको लॉग आउट और लॉग इन करना पड़ सकता है।


2
यह बहुत थकाऊ है ... मैं सिर्फ उपयोगकर्ताओं को इसके लिए उपयोग नहीं दे सकता, जैसे कि यह कोई अन्य फ़ोल्डर था?
कार्सन मायर्स

9
यही कारण है कि है आप कैसे यह करने के लिए पहुँच दे। यह एक ही काम करने के लिए एक GUI फ़ाइल प्रबंधक के संवाद के माध्यम से नेविगेट करने की कोशिश की तुलना में आदेशों को कॉपी और पेस्ट करना तेज है। लंबे समय तक यह आपकी मदद करता है यदि आप chmod और chgrp के लिए मैनुअल पेज पढ़ते हैं, तो कम से कम ("man chmod")।
jtimberman

शायद मैंने पहली बार इसे पढ़ते हुए आदेशों को नहीं समझा, और आपका संपादन इसे और अधिक स्पष्ट करता है।
कार्सन मायर्स

1
Apache परमिशन के लिए गाइड के लिए +1। 027 के umask के साथ अच्छी तरह से काम करता है। अगर किसी चीज़ की ज़रूरत लिखती है, तो यह chodod g + w dir /
LiraNuna

1
आपका समूह अनुमति आदेश क्यों है या sudo chmod -R g+wनहीं ? g+rwg+rwX
detly

31

ऐसा करने का एक सरल तरीका है, इस कमांड को करने का प्रयास करें।

sudo chmod -R 757 /var/www

अनिवार्य रूप से, chmodकमांड अनुमतियों को बदल देता है और -Rस्विच सभी उपयोगकर्ताओं को प्रभावित करता है। फिर यह बस उपयोग करने के लिए सही अनुमति दे रहा है।


3
क्या आप इस बारे में कुछ जानकारी दे सकते हैं कि ओपी के लिए कमांड क्या करता है?
n0pe

11
-1 स्पष्टीकरण की कमी के लिए। इसके अलावा, chmod $permissions -R $fileयह मान्य नहीं है ...
ब्लैकलाइट शाइनिंग

1
यह विकल्प है तो अनुमति नहीं अन्य तरीके के आसपास
Moataz Elmasry

2
sudo chmod -R 757 /var/www
21:39 पर Bwyss

कृपया किसी ने अनुभव किया कि इस बारे में संक्षिप्त विवरण के साथ एक संपादन का सुझाव दें।
आदि प्रसादियो

29

पढ़ें + लिखें:

sudo chmod -R a+rw /var/www

पढ़ें + लिखें + निष्पादित करें:

sudo chmod -R a+rwx /var/www

7

आप यह भी दोहरा सकते हैं कि एक्सेस कंट्रोल लिस्ट का उपयोग करके jtimberman ने क्या सुझाव दिया है । Setfacl आदेश एक मौजूदा एसीएल बदलने या इसे संशोधित करने के लिए -M को -s स्वीकार करता है; -R निर्देशिका ACLs पुनरावर्ती बनाने के लिए; -d निर्दिष्ट सेटिंग्स को डिफ़ॉल्ट बनाने के लिए, जो कि उपयोगी है यदि आप आगामी उपयोगकर्ता खातों का अनुमान लगा रहे हैं।

ये केवल अनुमतियाँ सेट करते हैं, जैसा कि आप उपयोगकर्ता, समूह, अन्य, और मास्क के लिए chmod का उपयोग करेंगे:

setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY

और यह हो सकता है कि आप इसे एक निर्दिष्ट उपयोगकर्ता या उसके समूह के लिए कैसे करेंगे:

setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY

और निश्चित रूप से, ताकत यह है कि आप किसी भी विशिष्ट उपयोगकर्ता, कई उपयोगकर्ताओं, आदि को नामित कर सकते हैं, सभी बिना अपनी समूह सेटिंग्स को संशोधित किए। और चामोद के विपरीत, यदि आप चाहते हैं कि कुछ समूह एक निर्देशिका और दूसरे समूह की पहुंच केवल दूसरे तक पहुंच सकें, तो यह वास्तव में सेटफैक्ल के साथ संभव है। अंत में, निर्देशिका की ACL देखने के लिए, getfacl चलाएं :

getfacl DIRECTORY

और आप डिफ़ॉल्ट को देखने के लिए उपनिर्देशिका या -d के लिए ACL देखने के लिए -R निर्दिष्ट कर सकते हैं।


2

त्वरित और आसान उत्तर -

ए। (जोड़े -एक ) अपने उपयोगकर्ता ( user_name ) समूह (करने के लिए जी ) www-डेटा

sudo usermod -a -G www-data user_name

ख। समूह (दें ) एक ही ( = ) के मालिक उपयोगकर्ता (के रूप में अनुमतियाँ यू के) / var / www रिकर्सिवली ( आर )।

sudo chmod -R g=u /var/www

स्पष्टीकरण: डेबियन / उबंटू पर अपाचे 2 उपयोगकर्ता और समूह www-data को / var / www के स्वामी के रूप में सेट करता है । उपयोगकर्ता के लिए डिफ़ॉल्ट अनुमतियां "सामग्री देखें और संशोधित करें" हैं, हालांकि समूह केवल "सामग्री देखें" कर सकते हैं। तो अपने आप को www-data Group में शामिल करना और इसे wwww-data उपयोगकर्ता के समान अनुमतियाँ देना, विकास प्राप्त करने का एक त्वरित और आसान तरीका है। मैं अपने सभी लोकलहोस्ट (पीसी / लैपटॉप) वेब डेवलपमेंट वातावरण के लिए ऐसा करता हूं।


1

मैं टाइपकास्ट का उपयोग करता हूं

chmod g+w /folder/ -R

यह लगभग स्व-व्याख्या है।

इसमें सभी को जोड़ने gके /folder/लिए wअनुष्ठान की पहुँच है ( +w), -Rउप-फ़ोल्डरों के लिए पुनरावृत्ति के लिए है।


-3

क्या आप सिर्फ कोशिश कर सकते हैं chmod 0777 /var/www?

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


तो क्यों यह एक समाधान के रूप में की पेशकश, और फिर तुरंत यह बदनाम? -1 वोट
Tisch

-3

पहले आप विशेष फ़ोल्डर पथ में प्रवेश करते हैं, फिर इस कमांड का उपयोग करते हुए ...

chmod -R 777 foldername
chown username:username foldername 

7
वाह, यह बुरा है! आप एक 7-आर के साथ -R नहीं देते हैं - खासकर अगर सवाल पूछने वाला व्यक्ति नौसिखिया है और जोखिमों को नहीं समझता है।
recluze

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