एफटीपी द्वारा बनाई गई फाइलों और निर्देशिकाओं को मैं अपाचे को पढ़ने और लिखने के लिए सही अनुमति कैसे दे सकता हूं?


8

मैं अधिक विंडोज वाला व्यक्ति हूं, इसलिए कृपया इस बुनियादी लिनक्स प्रश्न के साथ मेरी अज्ञानता का बहाना करें।

मैं एक लिनक्स (डेबियन) सर्वर की देखरेख कर रहा हूं जिसमें केवल Apache2 और vsftp है जो इस पर स्थापित है।

क्या हो रहा है कि मैं एक निरंतर लड़ाई कर रहा हूं जो फाइलों और फ़ोल्डरों का मालिक है और इसे सही नहीं लग सकता है।

यह मेरी अब तक की समझ है:

  • www-data उपयोगकर्ता को फ़ोल्डर्स और फ़ाइलों के स्वामित्व की आवश्यकता होती है, क्योंकि सभी फाइलें / var / www / html रन स्क्रिप्ट्स के तहत होती हैं, जिनके लिए उन्हें अपने फ़ोल्डर में लिखने की आवश्यकता होती है। और निश्चित रूप से यह http के माध्यम से पृष्ठों की सेवा करने में सक्षम होना चाहिए।
  • मेरे ftp उपयोगकर्ता (इसे ftpuser कहते हैं ) को / var / www / html फ़ोल्डर (पुनरावर्ती) को लिखने की अनुमति की आवश्यकता है क्योंकि मुझे नई फाइलें अपलोड करने में सक्षम होना चाहिए।

इसे ध्यान में रखते हुए मैंने एक समूह बनाया है जिसे ftpandwww कहा जाता है और इस समूह के सभी फ़ोल्डर्स और फ़ाइलों को काट दिया है। यह एक हद तक काम किया है ...

मैं लगभग सही जगह पर हूं, इस तथ्य को छोड़कर कि मेरे एफ़टीपी क्लाइंट का उपयोग करके बनाए गए किसी भी नए फ़ोल्डर में गलत अनुमतियाँ हैं (जो मैं एफ़टीपी क्लाइंट के तहत उन्हें बदलकर सही कर सकता हूं), लेकिन तब www-data उन्हें नहीं लिख सकता है क्योंकि वे ftpuser के स्वामित्व में हैं और मैं अंत में SSH करने और ftpandwww समूह के लिए एक चल रहा है ताकि वे दोनों खुश हैं।

मैं उन सभी नए फ़ोल्डरों को कैसे बनाऊं जो मैं FTP के तहत बनाता हूं, जिनके पास सही अनुमतियाँ (774) हैं और स्वचालित रूप से ftpandwww समूह के स्वामित्व में हैं कि मैं वेब पर (लेखन अनुमति के साथ) अपलोड कर सकता हूं और बिना जाने सभी को चुन सकता हूं। हर बार नए फ़ोल्डर और फाइलें?


जवाबों:


10

वेब रूट निर्देशिका पर SetGID अनुमतियों का उपयोग करें , और उन्हें बच्चों के लिए प्रचारित करें।

जब आप किसी निर्देशिका पर SetGID लागू करते हैं, तो उपयोगकर्ता के डिफ़ॉल्ट समूह की सदस्यता की परवाह किए बिना, उस निर्देशिका में सभी नए आइटम उसी समूह के साथ बनाए जाएंगे।

किसी फ़ाइल सिस्टम ऑब्जेक्ट पर SetGID लागू करने के लिए, chmodअनुमति कोड के सामने 2 के साथ उपयोग करें ।
(उदाहरण: 740 => 2740)।

मैं अपने कई सांबा शेयरों पर सेटगिड का उपयोग करता हूं, ताकि फाइलों में हमेशा मालिक Usersका समूह हो और समूह का कोई भी सदस्य फाइलों को पढ़ सके (मैं आमतौर पर उपयोग करता हूं 2750ताकि केवल मालिक उपयोगकर्ता ही फाइल को लिख सके)।

आपके मामले में, कुछ इस तरह से चलाएं (XXX को अपनी वांछित अनुमतियों के साथ बदलें):

sudo chown -R  root:ftpandwww /var/www
sudo chmod -R 2XXX /var/www 

फिर नई फाइलें और फ़ोल्डर्स जैसे स्वामित्व के साथ सामने आएंगे ftpuser:ftpandwww

संपादित करें:

आपके usecase के आधार पर, SetGID आपके मुद्दे को हल करने के लिए पर्याप्त है, लेकिन यदि आपके पास लगातार समस्याएँ हैं जहाँ एक या दूसरे उपयोगकर्ता को लिखने से वंचित किया जाता है, एक गलत समूह अनुमति के कारण (लेकिन स्वामित्व सही है), तो आपका सबसे अच्छा शर्त सेट करना है। उपयोगकर्ता के लिए एक कस्टम UMASK जो फ़ाइलें बनाता है

यदि आपको उपयोगकर्ता के लिए UMASK सेट करने में कठिनाई है (क्योंकि यह एक डेमॉन है), तो डेमन-यूज़र के UMASK को सेट करने के लिए विकल्पों पर इस थ्रेड की जाँच करें ।

007यदि आप चाहते हैं कि समूह के सदस्य फाइल लिखने और हटाने में सक्षम हों, और गैर-स्वामियों को कोई विशेषाधिकार न दें तो मैं मुखौटा की सिफारिश करूंगा ।


धन्यवाद, मैं यह कोशिश करूँगा, जब आप यह उल्लेख करेंगे कि सभी फ़ाइलों और फ़ोल्डरों में यह स्वामित्व ftpuser होगा: ftpandwww क्या www-data अभी भी उनकी सेवा करेगा और फ़ोल्डर में वापस लिखने के लिए अनुमतियाँ (स्क्रिप्ट के माध्यम से) हैं? एक बार फिर धन्यवाद।
omega1

वास्तविक स्वामी-उपयोगकर्ता प्रक्रिया को चलाने वाले उपयोगकर्ता के लिए उपयुक्त होगा, जब तक कि वह स्थानीय प्रमाणीकरण का उपयोग नहीं करता (लेकिन यह पूरी तरह से अनुप्रयोग पर निर्भर होता है)। किसी भी तरह से, आपके प्रश्न का उत्तर उस XXX पर निर्भर करता है जिसका आप उपयोग करना चाहते हैं। चूंकि wwwdata और ftpdata दोनों एक ही समूह में हैं, यदि आप 770 देते हैं, तो हाँ, दोनों खाते वस्तुओं को लिख सकेंगे। यदि आपने इसे 740 दिया है, तो केवल स्वामी उपयोगकर्ता ही लिख पाएंगे, लेकिन ftpandwww का कोई भी सदस्य पढ़ सकेगा। मुद्दा यह है कि आप इन कार्यों के लिए उपयोगकर्ता परमिट के बजाय समूह परमिट का उपयोग कर रहे हैं।
फ्रैंक थॉमस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.