मैं अपने घर के फ़ोल्डर में www-data उपयोगकर्ता को फ़ोल्डर में कैसे दे सकता हूं?


31

मेरे पास एक फ़ोल्डर है: /home/myuser/folderA

मैं www-data उपयोगकर्ता को उपरोक्त तक पहुंच लिखना चाहता हूं, जबकि 'myuser' की सामान्य पहुंच बनी हुई है (क्योंकि वैसे भी यह myuser का होम फ़ोल्डर है)।

मुझे किन आदेशों का उपयोग करने की आवश्यकता है?

नोट: मैं www-dataकिसी भी अन्य फ़ोल्डर में प्रवेश नहीं करना चाहता /home/myuser/

अग्रिम में धन्यवाद।

जवाबों:


46

सबसे पहले, अपने आप को समूह में जोड़ें www-data

usermod -a -G www-data (your username)

फिर:

chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA

चाल चलनी चाहिए जब तक कि आपके पर अनुमतियाँ /home/myuserअन्य उपयोगकर्ताओं तक पहुँचने की अनुमति न दें।

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

नायब। यह umaskआपके उपयोगकर्ता खाते और वेबसर्वर दोनों की सेटिंग्स पर भी निर्भर करता है : आपको यह सुनिश्चित करने की ज़रूरत है कि फ़ोल्डर में बनाई गई फ़ाइलों में समूह rwएक्सेस (और निर्देशिका समूह की आवश्यकता समूह में rwx) है

यदि आपके वेबसर्वर के पास आपके /home/myuserdir (काफी समझदार) अधिकार नहीं हैं, तो यह तब तक नहीं होगा जब तक आप कुछ और नहीं करते। दो सॉलन:

  1. sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA (यह एक बदसूरत हैक है और रिबूट के बाद दोहराया जाना होगा। लेकिन एक शक्तिशाली ट्रिक का उपयोग एसएसएच जेलों के अंदर फ़ोल्डर्स को सुलभ बनाने के लिए भी किया जा सकता है।)

  2. बस साझा फ़ोल्डर को कहीं और स्थानांतरित करें, जैसे /home/shared-stuff/folderA

दूसरा विकल्प सबसे अच्छा है। मान लीजिए कि फ़ोल्डर में सामान वास्तव में सार्वजनिक है और आपको परवाह नहीं है कि इसे कौन देखता है, आप इसे सेट कर सकते हैं

sudo mkdir -m777 /home/shared-stuff

तब आप अंदर कह सकते हैं कि, फ़ोल्डर को ऊपर की अनुमति के साथ, और फ़ोल्डरबी कि www-data को अन्य अनुमतियों के साथ उपयोग नहीं करना चाहिए, जैसे।

$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data   4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser     4096 Jan 17 21:46 folderB

क्या है sमें g+rwxs?
टोडुआ

"समूह चिपचिपा" बिट। यह पैरा में बताया गया है कि "द फर्स्ट ..." :-)
आर्टफ्लोरोबोट

6

दूसरा तरीका यह है कि उपयोगकर्ता नाम को सीधे अपाचे कॉन्फिगर में बदल दिया जाए, ऐसा इसलिए है क्योंकि यह आपकी लोकल मशीन है और आप इमेज को कहीं और से सेव करते हैं जो फोल्डर पर की गई किसी भी परमिशन को क्रश कर देगा। इसके अलावा अगर आपके पास केवल 1 उपयोगकर्ता है और www-data की परवाह नहीं करता है!

$ sudo vi /etc/apache2/apache2.conf

उपयोगकर्ता और समूह खोजें और तुम्हारा डाल दिया
User <Your User>
Group <Your Group>

$ sudo service apache2 restart

यह समाधान इतना सुरक्षित नहीं लगता है, किसी को भी पता है कि इस सेटिंग के कारण किस तरह की सुरक्षा खतरे होंगे?
फ्लेव्यू

मुझे पूरा यकीन है कि यह सुरक्षित नहीं है, यही कारण है कि मैंने केवल स्थानीय मशीन की सटीकता दी है।
शैडोबोब

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