फ़ोल्डर में फ़ाइल बनाएँ: अनुमति अस्वीकृत


37

मेरे पास Ubuntu 12.04 पर एक निर्देशिका में फ़ाइलों को कॉपी करने की समस्या है। मैं होम डाइरेक्टरी में एक निर्देशिका बनाता हूं ताकि वह पथ जहां मैं कॉपी करना चाहता हूं:

/home/sixven/camp_sms/inputs

लेकिन जब आईएनआई टर्मिनल में निम्न कमांड रन करता है ताकि एक नमूना फाइल बनाई जा सके:

francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied

मैं सीधे उस निर्देशिका में फ़ाइलों की प्रतिलिपि नहीं बना सकता। मैं फ़ाइलों की प्रतिलिपि बनाने के लिए chown& chmodआदेशों के साथ अनुमतियां कैसे प्रदान कर सकता हूं ?

मैं नहीं जानता कि किस उपयोगकर्ता और समूह का उपयोग करना है।


आपने डायरेक्टरी कैसे बनाई? में क्यों है /home/sixven? यह आपके घर निर्देशिका में क्यों नहीं है?
terdon

2
आपने जो कॉपी-पेस्ट किया है, उससे आप उपयोगकर्ता के रूप में स्पर्श कर रहे हैं francisco-vergara, लेकिन आपकी निर्देशिका यह /home/sixvenहै कि क्या वास्तव में उपयोगकर्ता का घर है francisco-vergeraया यह sixvenउपयोगकर्ता का है? आपको स्पष्ट करना चाहिए कि आप वास्तव में क्या करना चाहते हैं। किसी अन्य उपयोगकर्ता के घर में लिखें? उस निर्देशिका को एक समूह में साझा करें?
लियाज

जवाबों:


54

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

आप user:francisco-vergaraएक निर्देशिका में एक फ़ाइल बनाने के लिए कोशिश कर रहे हैं /home/sixven/camp_sms/inputsजिसके स्वामित्व में है user:sixven

तो इसे कैसे हल करें:

  1. आप या तो निर्देशिका की अनुमति को बदल सकते हैं और दूसरों को अंदर फाइल बनाने में सक्षम कर सकते हैं।

    sudo chmod -R 777 /home/sixven/camp_sms/inputs
    

    यह कमांड निर्देशिका की अनुमति को पुनरावर्ती रूप से बदल देगा और अन्य सभी उपयोगकर्ताओं को फ़ाइलों और निर्देशिकाओं को बनाने / संशोधित करने और हटाने में सक्षम करेगा।

  2. आप इस निर्देशिका के मालिक जहाज बदल सकते हैं और कर सकते हैं user:francisco-vergaraमालिक के रूप में

    sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
    

    लेकिन इस तरह इस user:sixvenफ़ोल्डर में फिर से नहीं लिख सकते हैं और इस तरह आप एक परिपत्र अनंत लूप में जा सकते हैं।

इसलिए मैं आपको विकल्प 1 का उपयोग करने की सलाह देता हूं।

या यदि यह निर्देशिका दोनों उपयोगकर्ताओं द्वारा एक्सेस की जाएगी तो आप निम्नलिखित ट्रिक कर सकते हैं:

user:francisco-vergaraसमूह के स्वामी को निर्देशिका का स्वामित्व बदलें और रखें group:sixven

sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs

उस तरह दोनों उपयोगकर्ता अभी भी निर्देशिका का उपयोग कर सकते हैं।

लेकिन जैसा कि मैंने आपको पहले कहा था कि विकल्प 1 का उपयोग करना सबसे आसान और अधिक कुशल है


10
यह कहने के लिए पुनर्जीवित: आपको लगभग कभी भी 'चामोद-आर 777' नहीं चाहिए। स्वामित्व को सही ढंग से सेट करना एक अधिक सुरक्षित अभ्यास है। digitalocean.com/community/tutorials/… askubuntu.com/questions/20105/…
डगलस एडम्स

12

फ़ाइल स्वामित्व बदलने के लिए, इसे रूट के रूप में करें:

chown -R user:user /home/sixven

यदि आप तय करने के लिए chmod रास्ता:

यदि आप जानते हैं कि उपयोगकर्ता फ़ाइल के समूह का हिस्सा है

chmod -R g+rw /home/sixven

अन्यथा:

chmod -R o+rw /home/sixven

लेकिन यह तरीका बहुत सुरक्षित नहीं है।


एक आकर्षण की तरह काम करता है
Faris Rayhan 7

1

डिफ़ॉल्ट UMASK 022 (उबंटू में), इसलिए / होम / यूज़रनेम की अनुमति 755 हो जाती है। और आप उपयोगकर्ता के रूप में लॉग इन करते हैं francisco-vergaraऔर उपयोगकर्ता सिक्सिन होम में फाइल बनाने की कोशिश कर रहे हैं: यानी /home/sixven। इसके पास अन्य उपयोगकर्ताओं के लिए केवल लिखने की अनुमति नहीं है sixven

यदि आप उस निर्देशिका में लिखना चाहते हैं, तो आपको OR sixvenका उपयोग करके समूह का हिस्सा बनने की आवश्यकता है (इसका उपयोग बुरा व्यवहार न करें)।usermod -G sixyen francisco-vergarachmod -R 777 /home/sixven


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