निर्देशिका की अनुमति बदलते समय प्रश्न चिह्न वर्ण क्यों दिखाई देते हैं?


33

मैं अस्थायी रूप से जिसकी प्रारंभिक अनुमतियाँ हैं, एक फ़ोल्डर की अनुमतियाँ बदलने का प्रयास कर रहा हूँ

user@ubuntu:/var/log$ ls -l squid*
squid3:
total 4
-rw-r----- 1 proxy proxy    0 Jan 16 14:43 access.log
-rw-r----- 1 proxy proxy 1359 Jan 16 14:43 cache.log
ls: cannot open directory squid-deb-proxy: Permission denied

किसी बात का अनुसरण करना

user@ubuntu:/var/log$ sudo chmod -R 644 squid*
user@ubuntu:/var/log$ ls -l squid*
squid3:
ls: cannot access squid3/cache.log: Permission denied
ls: cannot access squid3/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? cache.log

squid-deb-proxy:
ls: cannot access squid-deb-proxy/store.log: Permission denied
ls: cannot access squid-deb-proxy/cache.log: Permission denied
ls: cannot access squid-deb-proxy/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? cache.log
-????????? ? ? ? ?            ? store.log

आप देखेंगे कि अनुमतियों के परिवर्तन के बाद हर जगह सवालिया निशान हैं। ये क्यों हो रहा है? मैं मूल रूप से एक्सेस लॉग को यह देखना चाहता हूं कि स्क्वीड-डिब-प्रॉक्सी सर्वर क्लाइंट से अनुरोध प्राप्त कर रहा है या नहीं।

जवाबों:


38

किसी निर्देशिका की अनुमतियों को देखने के लिए, आपको -dध्वज को lsइस तरह पास करना होगा:

ls -ld squid3

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

फ़ाइलों पर पढ़ने की अनुमति और पढ़ने के लिए और निर्देशिकाओं पर अनुमति को पुनरावर्ती रूप से निष्पादित करने के लिए, इस कमांड का उपयोग करें:

chmod -R a+rX directoryname

यहाँ उस कमांड का स्पष्टीकरण दिया गया है:

  • chmod कमांड का नाम है, फ़ाइलों की अनुमतियों को बदलने के लिए उपयोग करें।
  • -Rपुनरावर्ती ध्वज है। इसका मतलब है कि इस कमांड को डायरेक्टरी, और उसके सभी बच्चों और उसके बच्चों के बच्चों पर लागू करें, और इसी तरह।
  • a सभी के लिए खड़ा है: इन अनुमतियों को फ़ाइल के मालिक, फ़ाइल के समूह के मालिक और अन्य सभी उपयोगकर्ताओं पर लागू करें।
  • + यदि वे पहले से ही सेट नहीं हैं, तो निम्न अनुमतियाँ जोड़ें।
  • r पढ़ने की अनुमति का मतलब है।
  • Xनिष्पादन की अनुमति का मतलब है, लेकिन केवल निर्देशिकाओं पर। लोअर-केस xका अर्थ होता है फाइल और निर्देशिका दोनों पर निष्पादन की अनुमति।

अधिक जानकारी कमांड के लिए मैनपेजchmodमैनपेज आइकन में मिलती है ।


1
वहाँ किसी भी चीज का उपयोग करने में गलत हैchmod -R 644 squid*
पंजीकृत उपयोगकर्ता

4
@RegisteredUser: हाँ। 644 है rw-r--r--, जो फाइलों के लिए उपयुक्त है, लेकिन निर्देशिकाओं के लिए नहीं। निर्देशिकाएँ को निष्पादित अनुमति सेट करने की आवश्यकता होती है, जैसे: rwxr-xr-xया 755। जिस कमांड का आपने उल्लेख किया है, वह सभी फ़ाइलों और निर्देशिकाओं पर निष्पादित अनुमति को अनसुना करता है, जो इन त्रुटियों का कारण बनता है।
फ़्लिम

3

मुझे यह समस्या भी हुई। मैं फ़ाइल पर chmod या chown नहीं कर सका। मैंने इसे हटाने की कोशिश की थी। यह पता चला है कि इसे हटाने की कोशिश (rm कमांड) ने समस्या का कारण बना। किकर दो अलग-अलग प्रणालियों के बीच फ़ाइल साझा की जाती हैएक बार जब मैंने फाइल को दूसरे सिस्टम में बंद किया, तो फाइल गायब हो गई। यहाँ मेरे विन्यास का अधिक विवरण है। प्रणाली 1: उबंटू अतिथि वी.एम. यहीं पर मैंने rm कमांड किया। सिस्टम 2: विंडोज 7 होस्ट। यह वह जगह है जहां मैंने कम कमांड का उपयोग करके फ़ाइल खोली थी (साइबरविन में, ऐसा नहीं है कि यह आवश्यक रूप से प्रासंगिक है)।


2

जैसा कि आपने कहा था कि आपका लक्ष्य पढ़ना है /var/log/squid/access.log, आपका सबसे अच्छा समाधान टाइप करना है sudo less /var/log/squid/access.log, जो बार-बार चकमा देने की परेशानी को बढ़ाता है।

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