"Ls -al" के परिणाम में "+ 3" का क्या अर्थ है?


9

संयोग से, जब एक घुड़सवार वॉल्यूम पर जा रहा है, और टाइपिंग ll(के लिए उपनाम ls -laF)

:/media/username/DATA$ ll
total 153
drwxrwxrwx  1 username username  8192 Sep  1 20:32 ./
drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../
drwxrwxrwx  1 username username 12288 Jul 26 22:29 documents/
drwxrwxrwx  1 username username 16384 Sep  2 02:01 downloads/

मेरे पास यह दिलचस्प हिस्सा है: drwxr-x---+ 3

मैं हिस्सा समझता हूं drwxr-x---, लेकिन दूसरे हिस्से + 3का क्या मतलब है?

Ps: मैं Ubuntu 16.04 x86 का उपयोग कर रहा हूं


1
आपका मतलब है कि आप अनुमति स्ट्रिंग और स्वामी के नाम के बीच की संख्या के बारे में उत्सुक हैं?
बाइट कमांडर

4
ls -lसमझाए गए आउटपुट के हिस्सों के लिए , askubuntu.com/q/710905 , askubuntu.com/q/517229 या unix.stackexchange.com/q/103114 कृपया देखें।
बाइट कमांडर

जवाबों:


14

+सामान्य अनुमति बिट्स के बाद से संकेत मिलता है एक विशेष अनुमति फ़ाइल / निर्देशिका के लिए प्रभाव में है। विशेष अनुमति POSIX ACL (एक्सेस कंट्रोल लिस्ट) है।

आप एक ACL नियम का उपयोग करके सेट कर सकते हैं setfaclऔर पहले से निर्धारित नियम को देख सकते हैं getfacl

उदाहरण:

% ls -l foo.sh
-rwxrwxr-x 1 foobar foobar 206 Aug 28 02:08 foo.sh

% setfacl -m u:spamegg:x foo.sh

% ls -l foo.sh                
-rwxrwxr-x+ 1 foobar foobar 206 Aug 28 02:08 foo.sh

% getfacl foo.sh
# file: foo.sh
# owner: foobar
# group: foobar
user::rwx
user:spamegg:--x
group::rwx
mask::rwx
other::r-x

जाँच करें man getfaclऔर man setfaclअधिक विचार प्राप्त करने के लिए।

एक तरफ ध्यान दें के रूप में, यदि आप एक देखते हैं .की inplace +, तो SELinux संदर्भ के लिए है कि।


और 3बाद में +इंगित करता है कि हार्ड लिंक की संख्या फ़ाइल है। एक हार्डलिंक फ़ाइल का नाम है (फ़ाइल का इनकोड ठीक है) इसलिए हार्ड लिंक की संख्या से पता चलता है कि फ़ाइल में कितने नाम हैं।

आपके मामले में प्रविष्टि है:

drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../

यह वर्तमान निर्देशिका ( /media/username/DATA) की मूल निर्देशिका के लिए है , इसलिए निर्देशिका ..को इंगित करता है /media/username

अब, लिनक्स में, प्रत्येक निर्देशिका में कम से कम दो हार्ड लिंक होते हैं, एक .(वर्तमान निर्देशिका, स्वयं के लिए लिंक) के लिए है और दूसरा यह मूल निर्देशिका (नाम-इनोड मैपिंग) में प्रविष्टि है, यह यूनिक्स से विरासत में मिला था।

आपके पास 3 के रूप में हार्ड लिंक की गिनती है /media/username, जिसका अर्थ /media/usernameहै एक उपनिर्देशिका (डिफ़ॉल्ट 2 प्लस एक ..उपनिर्देशिका के प्रवेश के लिए)। यदि 2 उपनिर्देशिकाएँ होती हैं, ..तो माता-पिता को वापस मैप करने के लिए दोनों उपनिर्देशिकाओं के कारण कड़ी कड़ी गणना 4 होगी ।


जांच man lsभी कराएं।


1
यह एक निर्देशिका है, इसलिए लिंक संख्या उपनिर्देशिका प्लस दो की संख्या है।
केविन

@ केविन ने विस्तृत विवरण जोड़ा।
heemayl

7

+अनुमतियाँ के अंत में स्ट्रिंग ACL ( एक्सेस कंट्रोल लिस्ट ) की अनुमति देती है। आप वास्तव में देख सकते हैं कि यह किन अनुमतियों और किस उपयोगकर्ताओं को अनुमति देता है

getfacl ../

या यों कहें

getfacl /media/$USER

मेरे मामले में:

$ getfacl /media/zanna
getfacl: Removing leading '/' from absolute path names
# file: media/zanna
# owner: root
# group: root
user::rwx
user:zanna:r-x
group::---
mask::r-x
other::---

यह स्वामी और समूह को दिखाता है और फिर अनाम "उपयोगकर्ता" (स्वामी) समूह और दुनिया (अन्य) उपयोगकर्ता मन्ना के लिए एक अतिरिक्त प्रविष्टि के साथ अनुमति देता है। "मुखौटा" समूह और नामित उपयोगकर्ताओं के लिए प्रभावी अधिकारों को सीमित करता है।

ACL पारंपरिक लिनक्स परमिशन सिस्टम का एक विस्तार है जो एकल उपयोगकर्ता या समूह के लिए अनुमति देता है, बेहतर नियंत्रण की अनुमति देता है। आप इस पोस्ट को रूट करने के लिए सुरक्षा कारणों और इस पोस्ट/media में ACL अनुमतियों के उपयोग के बारे में अधिक पढ़ सकते हैं

3से संबंधित नहीं है +। यह फ़ाइल की हार्ड लिंक की संख्या को इंगित करता है ।


2
+हालांकि यह केवल इस बात की व्याख्या करता है कि कौन से संकेत देते हैं कि पारंपरिक अनुमति सेटिंग्स के अलावा एसीएल इस प्रविष्टि के लिए सक्रिय हैं। हालाँकि, यह स्पष्ट नहीं करता है 3
बाइट कमांडर

2
@ByteCommander hah यह मेरे लिए नहीं हुआ, वे 3 के बारे में पूछ रहे थे, धन्यवाद!
झन्ना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.