"/ Var / www" फ़ाइलों को संपादित करने और जोड़ने का सबसे सरल तरीका क्या है?


145

वेब सर्वर स्थापित होने के बाद एक उपयोगकर्ता को स्थानीय वेब सर्वर / var / www में फ़ाइलों और निर्देशिकाओं को कॉपी करने के लिए ग्राफिक इंटरफ़ेस का उपयोग करने में सक्षम उपयोगकर्ता को सेट करने का एक सरल तरीका है

मैंने उबंटू में खुद को प्रशासनिक विशेषाधिकार दिया, लेकिन यह अभी भी प्रतियों की अनुमति नहीं देता है।




मैंने वही करने की कोशिश की जो मार्कोस रोरिज़ जूनियर ने कहा था। जब मार्कोस ने मेरे उपयोगकर्ता नाम को लिखा और बदला तो मैंने कॉपी और पेस्ट किया। लेकिन मैं इसे / etc / apache2 / sites-available में नहीं सहेज सकता क्योंकि यह अभ्यस्त मुझे उस फ़ोल्डर में सहेजने की अनुमति नहीं देता है। ???

जवाबों:


222

यदि आप इसके समूह द्वारा / var / www को लिखने योग्य बनाते हैं और उपयोगकर्ता को समूह में जोड़ते हैं, तो उस उपयोगकर्ता को sudo का उपयोग नहीं करना पड़ेगा। इसे इस्तेमाल करे:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www

उपयोगकर्ता को तब परेशानी के बिना / var / www / फ़ाइलों को संपादित करने में सक्षम होना चाहिए।

पहली पंक्ति उपयोगकर्ता को www-data समूह में जोड़ती है, दूसरी पंक्ति किसी भी फाइल को स्वामित्व में गड़बड़ी के साथ साफ करती है, और तीसरी इसे बनाती है ताकि सभी उपयोगकर्ता जो www-data समूह के सदस्य हैं वे सभी फ़ाइलों को पढ़ और लिख सकें / var / www।

यदि आप लॉग इन हैं तो आपको <username>प्रभावी होने के लिए समूह सदस्यता के लिए लॉग आउट और लॉग इन करना होगा।


37
मैं ऐसा करता हूं, साथ ही कुछ ट्विस्ट करता हूं: sudo adduser <username> www-data; sudo chgrp -R www-data /var/www; sudo chmod -R g+rw /var/www; find /var/www -type d -print0 | sudo xargs -0 chmod g+s अपने नए समूह को चुनने के लिए लॉगआउट और लॉगिन करें। मैं chmod g+sसमूह के स्वामी (www-data) को लेने के लिए नई फ़ाइलों और निर्देशिकाओं को बाध्य करने के लिए मजबूर करता हूं, जिससे यह सुनिश्चित हो जाता है कि मेरी अनुमतियां बदल जाती हैं।
डॉन फौल्कनर

15
@DonFaulkner सुरक्षा कारणों से, यह संभवत: बेहतर है कि इसके /var/wwwपास रूट: रूट हो, इसलिए इसके बजाय sudo chgrp -R www-data /var/wwwबेहतर होना चाहिए sudo chgrp -R www-data /var/www/*
डेसमंड ह्यूम

2
अजीब तरह से पर्याप्त है, उन 3 कमांडों को चलाने के बाद, मेरे कुछ उप-फ़ोल्डर्स और फाइलें (जैसे composer.jsonऔर LICENSE) बाइनरी आइकन का उपयोग करके प्रदर्शित की जाती हैं। composer.jsonपाठ संपादक में खोलना एक खाली फ़ाइल दिखाता है और सबसे बुरी बात यह है कि मैं कुछ उप-फ़ोल्डर्स को भी ब्राउज़ नहीं कर सकता, मैंने @ donFaulkner द्वारा सुझाए गए अतिरिक्त आदेश की भी कोशिश की और अभी भी कोई भाग्य नहीं है। अगर मैं टर्मिनल को रूट के रूप में उपयोग करता हूं तो सब कुछ वैसा ही है जैसा होना चाहिए। किसी को भी किसी भी विचार क्यों ऐसा होता है?
एलिक्स एक्सल

5
@itsols को आपको लॉग आउट करना होगा और फिर काम करने के लिए लॉग इन करना होगा।
जिनी

1
@DonFaulkner - क्या आप इस बात पर विस्तार से विचार करेंगे कि रूट के स्वामित्व वाली फाइलें एक अटैक वेक्टर कैसे हो सकती हैं? (मैं यह सब करने के लिए नया हूँ, और मैं उलझन में हूँ क्योंकि कुछ लोग जब सुरक्षा के लिए एक संदेह, वॉक-बाय-रूट दृष्टिकोण की वकालत करते हैं, जबकि अन्य अदम्य रूप से खुद-ब-खुद रूट कहते हैं। )
एंड्रयू Cheong

25

आप कर सकते हैं chown, उस फ़ोल्डर chके ownएर का एनाज है । यह आपको उपयोगकर्ता और फ़ोल्डर के समूह को बदलने की अनुमति देगा, जिससे आपका उपयोगकर्ता उस पर फ़ाइलों को जोड़ / हटा सकता है। इसे करने के लिए, yourusernameअपना नाम बदलें और चलाएं:

sudo chown yourusername.users /var/www

और बस।


हालाँकि, मैं अपने होम फोल्डर में एक वर्चुअलहोस्ट बनाने के लिए प्राथमिकता देता हूं, यह बहुत आसान है।

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

निम्नलिखित फ़ाइल (उदाहरण के लिए mywebprojects) / etc / apache2 / sistes में उपलब्ध है, जो उपयोगकर्ता नाम और फ़ोल्डर पथ की जगह (मूल रूप से कॉपी और पेस्ट करें और # जगह में बदलें) बनाएँ:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    # CHANGE HERE
    DocumentRoot /home/username/www

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    # CHANGE HERE
    <Directory /home/username/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

अब wwwफोल्डर बनाने की सुविधा देता है , एक साधारण हैलो वर्ल्ड जोड़ें, डिफ़ॉल्ट वेबसाइट को अक्षम करें ( /var/www), हमारी वेबसाइट को सक्षम करें mywebprojectsऔर अपाचे को पुनरारंभ करें ।

mkdir ~/www 
echo "<html><h1>Hello World</h1></html>" > ~/www/test.html
sudo a2dissite default #
sudo a2ensite mywebprojects
sudo service apache2 restart

और यह कि, अब आपको जाने की आवश्यकता नहीं है /var/www, आप बस अपने www(या अन्य दिए गए नाम) में फाइलें जोड़ते हैं और यह पहले से ही है :)।


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

9

विधि 1:

  • ALT+ दबाएँ F2और gksudo nautilus डालें और फिर Run पर क्लिक करें।

    वैकल्पिक शब्द

  • यह रूट प्रीलिम्स के साथ नॉटिलस खोलेगा।
  • गोटो फाइलसिस्टम var www और अब आप अपनी फ़ाइलों को जोड़ / कॉपी / पेस्ट कर सकते हैं।

विधि 2:

  • नॉटिलस-गक्सू स्थापित करें नॉटिलस-गक्सू स्थापित करें
  • nautilus -qराइट क्लिक मेनू को रिफ्रेश करने के लिए अपने टर्मिनल में टाइप करने के बाद ।
  • अब आपको अपने nautilus राइट-क्लिक मेनू में 'Open as Administrator' प्रविष्टि मिलेगी।
  • जब आपको किसी फाइल को रूट अनुमति के साथ खोलने की आवश्यकता होती है, तो आपको बस उस फाइल / फोल्डर पर राइट क्लिक करना होगा और 'Open as Administrator' चुनें।
  • यह रूट अनुमति के साथ उस फ़ाइल / फ़ोल्डर को खोल देगा।

    वैकल्पिक शब्द


1
यह निश्चित रूप से जाने का सही तरीका है! मुझे आश्चर्य है कि यह चयनित उत्तर क्यों नहीं था। अन्य विधियों में अनुमतियों के साथ खिलवाड़ शामिल है और मैं ऐसा करके अपने सिस्टम को जोखिम में नहीं डालूंगा। आपके उत्तर के लिए +1।
इसकी जूल्स

5
@itsols: मैं पूरी तरह से असहमत हूं - आप अपने सिस्टम पर Nautilus को पूर्ण रूट एक्सेस देने के बजाय अपने सिस्टम को जोखिम में डालते हैं ताकि एक्सेस की अनुमति देने के लिए अनुमतियों को ठीक से कॉन्फ़िगर करने के बजाय /var/www[delete]कुंजी का एक आकस्मिक धक्का और आप एक अनबूटेबल सिस्टम के साथ समाप्त हो सकते हैं।
नाथन उस्मान

@GeorgeEdison लेकिन यह केवल अनुमति निर्धारित करने के लिए है। और ऐसा होने के बाद, हम नॉटिलस को बंद कर देते हैं और हमेशा की तरह काम करते हैं। क्या यह वाकई इतना बुरा है? मुझे यहाँ मेरी अज्ञानता के लिए क्षमा करें। संस्करण 5.x के बाद से एक उबंटू उपयोगकर्ता होने के बावजूद, मैं अभी भी एक विकास मशीन की स्थापना को बहुत चुनौतीपूर्ण
मानता हूं

@itsols: इस उत्तर का दूसरा हिस्सा पसंदीदा तरीका है और वह है जो मैं उपयोग करता हूं।
नाथन उस्मान

6

यह sudo usermod -a -G developers $usernameACL का उपयोग करने के रूप में सरल हो सकता है ।

हालांकि, इसे शुरू करने के लिए थोड़ा काम करना पड़ता है। यह उबंटू 10.10 के लिए कम से कम है। पहले / etc / fstab में acl विकल्प के साथ फाइल सिस्टम को माउंट करें।

sudo vim /etc/fstab

UUID = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 चूक, acl 0 1

sudo mount -o remount,acl /

फिर एक समूह बनाएं जिसके लिए कोई उपयोगकर्ता इस उद्देश्य के लिए हो सकता है।

sudo groupadd developers
sudo usermod -a -G developers $username

डेवलपर समूह का सदस्य बनने के लिए उपयोगकर्ता को फिर से लॉग आउट करना होगा।

निश्चित रूप से, ऐसा न करें यदि आपके पास / var / www निर्देशिका में सामग्री है जो आप चाहते हैं, लेकिन इसे शुरू करने के लिए इसे सेट करने के लिए उदाहरण के लिए:

sudo rm -rf /var/www
sudo mkdir -p /var/www/public
sudo chown -R root:developers /var/www/public
sudo chmod 0775 /var/www/public
sudo chmod g+s /var/www/public
sudo setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public

फिर "/ var / www" के संदर्भ को "/ var / www / सार्वजनिक" के साथ एक कॉन्फिगर फाइल में पुनः लोड करें।

sudo vim /etc/apache2/sites-enabled/000-default
sudo /etc/init.d/apache2 reload

यदि हम सभी से उपयोगकर्ता को हटाने और नाम बदलने पर रोक लगाना चाहते हैं, जिन्होंने फ़ाइल बनाई है:

sudo chmod +t /var/www/public

इस तरह, यदि हम एपाचे दस्तावेज़ रूट के बाहर मौजूद चौखटे के लिए निर्देशिका बनाना चाहते हैं या शायद सर्वर-लेखन योग्य निर्देशिका बना सकते हैं, तो यह अभी भी आसान है।

अपाचे-लिखने योग्य लॉग निर्देशिका:

sudo mkdir /var/www/logs
sudo chgrp www-data /var/www/logs
sudo chmod 0770 /var/www/logs

अपाचे-पढ़ने योग्य पुस्तकालय निर्देशिका:

sudo mkdir /var/www/lib
sudo chgrp www-data /var/www/logs
sudo chmod 0750 /var/www/logs

क्या आप बता सकते हैं कि क्या है UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-लाइन के साथ ? क्या इसका अर्थ शाब्दिक रूप से जोड़ा जाना है या उपयोगकर्ता लाइन को खोजने और पीछे के विकल्पों को संपादित करना चाहते हैं?
मैडमाइक

तुम क्यों ना छोड़ें sudo rm -rf /var/www-चरण। यह वास्तव में आवश्यक नहीं लगता है।
मैडमाइक

@MadMike यह हेक्साडेसिमल अंकों के साथ दायर करने के लिए है। यह पता लगाने के लिए कि आपके विभिन्न विभाजन लेबल क्या हैं, चलाएंsudo blkid
अज़ेंडेल

1
@Azendale जब मैंने टिप्पणी लिखी थी तो यह सुझाव के रूप में था कि उत्तर को कैसे बेहतर बनाया जाए। आज मुझे पता है कि मुझे इसे और अधिक सीधे सुझाव देना चाहिए। जैसा: कृपया कैसे को भरने के लिए पर जोड़ने के UUID=xxxxएक साथ की तरह भाग sudo blkid
मेडमाइक

0

सबसे आसान तरीका नीचे दिए गए चरणों का पालन करना है: -

  1. प्रेस Alt+ Ctrl+ Tऔर टर्मिनल खोलने के लिए और प्रकार होगा sudo -sऔर अपने पासवर्ड के साथ प्रवेश।
  2. अब आप लॉग इन हो गए हैं root
  3. अब इसमें टाइप करें nautilusऔर यह आपके लिए होम फोल्डर को रूट के रूप में खोलेगा। तो अब आप आसानी से फ़ाइलों को संपादित कर सकते हैं और जो चाहें कर सकते हैं।

उम्मीद है की यह मदद करेगा। :)


1
नॉटिलस की तरह चित्रमय अनुप्रयोगों को चलाने के लिए उपयुक्त एक रूट खोल पाने के लिए, sudo -iबेहतर है sudo -sके लिए एक ही कारण sudo -Hके लिए बेहतर है sudoएक भी चित्रमय एप्लिकेशन को चलाने के लिए। ( sudo -sरीसेट नहीं करता है HOME, इसलिए उपयोगकर्ता को अपने घर निर्देशिका में कॉन्फ़िगरेशन फ़ाइलें मिल सकती हैं जो उन्हें होनी चाहिए लेकिन इसके बजाय रूट से संबंधित हैं ।)
एलियाह कगन

मैं विशेष रूप से सर्वर पर रूट खाते का उपयोग करके दृढ़ता से हतोत्साहित करता हूं । sudo बंद devs सुनिश्चित करने के लिए शिल्प नीति के सिस्टम प्रशासक की इजाजत दी, जबकि पर्याप्त पहुँच नियंत्रण की तुलना में अधिक प्रदान करता है और डिजाइनरों एक हैंडगन सौंप दिया अपने स्वयं के शूट करने के लिए नहीं कर रहे हैं पैर (और उनकी कंपनियों!)
शायन

0

/var/www folderरूट के स्वामित्व में है .. आपको इस फ़ोल्डर में फ़ाइलों को संशोधित करने के लिए स्वामित्व को अपने उपयोगकर्ता नाम में बदलना होगा। इसके लिए आप निम्न आदेशों को आजमा सकते हैं।

sudo -i // रूट कंसोल में बदलने के लिए

sudo chown -R <username> <path> // for eg. sudo chown -R scott /var/www/html (scott is the username, -R indicates recrusive)

अब फ़ोल्डर का स्वामित्व /var/www/html willउपयोगकर्ता को सौंपा जाएगा scott। अब scott इस फोल्डर में फाइल कॉपी / मूव कर सकता है।


-1

यदि आप सर्वर संस्करण का उपयोग कर रहे हैं, तो वेबमिन आज़माएं। इसमें एक बेहतरीन वेब यूआई और फाइल मैनेजर है। या तो वह या फाइलज़िला


4
क्या आप समझा सकते हैं "यदि आप सर्वर संस्करण का उपयोग कर रहे हैं"? उबंटू सर्वर पर स्थापित किया जा सकने वाला कोई भी पैकेज उबंटू के डेस्कटॉप संस्करण पर स्थापित किया जा सकता है।
एलिया कागन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.