Ls -la में "s" और "S" के बीच क्या अंतर है?


67

जब मैं ls -la, यह कई विशेषताओं को छापता है। कुछ इस तरह:

-rwSrwSr-- 1 www-data www-data   45 2012-01-04 05:17 README

शर्म की बात है, मुझे स्वीकार करना होगा कि मैं प्रत्येक विशेषताओं का सही अर्थ नहीं जानता। उदाहरण के लिए, Sस्ट्रिंग में बड़े का अर्थ क्या है -rwSrwSr--? निम्नलिखित क्या है 1? मैं दूसरों को मोटे तौर पर जानता हूं।


19
Eonil: एक सवाल पूछने की जरूरत के बारे में कुछ भी शर्मनाक नहीं है, आखिरकार यह साइट किस बारे में है। और उन लोगों के लिए जो आरटीएफएम कहते हैं, हम में से बहुत से लोग करते हैं और फिर भी हार्ड-टू-रीड प्रोग्रामर-लिखित प्रलेखन (और मैं एक प्रोग्रामर हूं) के पृष्ठों के माध्यम से लुप्त होने के बाद सबसे सरल उत्तर नहीं पा सकता हूं। कुछ मामलों में, हम उन प्रणालियों पर हैं जहाँ मैन पेज इंस्टॉल नहीं किए गए थे। उन सभी कारणों के लिए, और कई और अधिक, इस तरह की साइटें एक गॉडसेंड हैं। मेरे पास वही प्रश्न पूछने के लिए धन्यवाद।
एलन

1
महान प्रश्न - एक ठोस उदाहरण के साथ बहुत विशिष्ट।
ओले

जवाबों:


49

lsकमांड का प्रलेखन इन सवालों के जवाब देता है। अधिकांश यूनिक्स वेरिएंट पर, lsमैन पेज ( man lsया ऑनलाइन) देखें। लिनक्स पर, जानकारी प्रलेखन ( info ls) या ऑनलाइन देखें

पत्र sअर्थ है कि setuid (या setgid स्तंभ के आधार पर) बिट सेट है। जब एक निष्पादन योग्य सेट होता है, तो यह उस उपयोगकर्ता के रूप में चलता है जो प्रोग्राम को लागू करने वाले उपयोगकर्ता के बजाय निष्पादन योग्य फ़ाइल का मालिक होता है। चिट्ठी पत्री की sजगह ले लेती है x। फ़ाइल को सेट्युइड किया जाना संभव है, लेकिन निष्पादन योग्य नहीं है; यह माना जाता है S, जहां पूंजी Sआपको सचेत करती है कि यह सेटिंग शायद गलत है क्योंकि फ़ाइल के निष्पादन योग्य नहीं होने पर सेट बिट थोड़ा बेकार है।

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

अनुमतियों के बाद का नंबर हार्ड लिंक काउंट है। एक हार्ड लिंक एक फ़ाइल (एक नाम, दूसरे शब्दों में) का मार्ग है। अधिकांश फाइलों में एक ही रास्ता होता है, लेकिन आप lnकमांड के साथ अधिक बना सकते हैं । (यह सांकेतिक लिंक से अलग है: एक प्रतीकात्मक लिंक कहता है "ओह, वास्तव में, यह फ़ाइल कहीं और है, <स्थान> पर जाएं"।) निर्देशिकाएँ में N + 2 हार्ड लिंक हैं जहां N उपनिर्देशिकाओं की संख्या है, क्योंकि उन्हें एक्सेस किया जा सकता है। उनके माता-पिता से, खुद से ( .प्रविष्टि के माध्यम से ), और प्रत्येक उप -निर्देशिका ( ..प्रविष्टि के माध्यम से ) से।


5
ओएस एक्स पर इसका क्या मतलब है जब इसकी निर्देशिका पर लागू किया जाता है? उदाहरण के लिए, $ ls /Usersरिटर्नdrws--S---+ 12 jdoe staff 408 Jul 9 2013 jdoe

4
@jww इसका मतलब है कि उस निर्देशिका में बनाई गई फ़ाइलें उस समूह की होंगी जो निर्देशिका का मालिक है, लेकिन यह वैसे भी OSX पर डिफ़ॉल्ट है। देखें en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories और unix.stackexchange.com/questions/12842/...
गाइल्स

@Gilles, जब आपने कहा कि एक फ़ाइल "निष्पादन योग्य" नहीं है? क्या इसका मतलब यह है कि इसमें निष्पादन योग्य विशेषाधिकार नहीं है या यह एक फ़ाइल प्रकार नहीं है जिसे निष्पादित किया जा सकता है?
रैनश

@ransh का अर्थ है निष्पादन ( x) अनुमति।
गिल्स

मैंने @ जग के जवाब में नीचे दिए गए बिंदु के समान एक संपादन प्रस्तुत किया है
qneill

16

के अनुसार info coreutils ls(जो शायद आपके पास नहीं हो सकता है):

`s '
यदि सेट्युड या सेटगिड बिट और संबंधित निष्पादन योग्य बिट दोनों सेट हैं।

`एस '
अगर सेटिउड या सेटगिड बिट सेट है लेकिन संबंधित निष्पादन योग्य बिट सेट नहीं है।

अनुमति भाग के बाद का नंबर हार्ड लिंक की संख्या है।


2
मूल रूप से यह वही है जो आपको मिलता हैchmod g-x,g+s dir
sanmai

6

(उम्मीद से सरल) शब्दों में, इसका मतलब है। निर्देशिका सेटगिड है। वहाँ बनाई गई कोई भी फ़ाइल उस फ़ोल्डर के स्वामी के समूह के स्वामित्व में होगी।

हालाँकि, फ़ोल्डर समूह द्वारा निष्पादन योग्य नहीं है, इसलिए इसे राजधानी एस में दिखाया गया है। यह आमतौर पर तब होता है जब एक निर्देशिका बनाई जा रही होती है और निर्देशिका सेटगिड के रूप में समाप्त हो जाएगी।

हम्म .. यकीन नहीं होता है कि अगर वास्तव में ऊपर सादे अंग्रेजी की तरह लग रहा था ..


1
यह उत्तर मौजूदा उत्तरों की तुलना में कोई अधिक या भिन्न जानकारी नहीं देता है।
jayhendren

1
@ संजयेंद्रन हाँ करता है। यह निर्देशिकाओं के बारे में बात करता है। कोई अन्य उत्तर ऐसा नहीं करता है। (गिल्स को संभवतः अपने उत्तर में अपनी टिप्पणी शामिल करनी चाहिए।)
स्पार्कहॉक

0

इसका कारण यह है कि निष्पादन योग्य गायब है

s -> 'x' सक्षम है S -> 'x' अक्षम है।

उदाहरण के नीचे देखें

$ ls -l

total 0

-rwsrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$ chmod u-x ca

$ ls -l

total 0

-rwSrw-r--. 1 bpkmails bpkmails 0 Jun 25 20:18 ca

$

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