पूर्ण निर्देशिका ट्री की अनुमति / स्वामी देखें


27

मुझे याद है कि "XXX / होम / उपयोगकर्ता / dir / बच्चे / फ़ाइल" जैसे कुछ करना और इसने स्वामी और / या की अनुमति लौटा दी:

/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file

लेकिन मुझे याद नहीं है कि यह कमान क्या थी। किसी को कोई विचार?


ओएस एक्स और डेबियन से apropos modeया apropos permissionsपर कुछ भी ज्ञानवर्धक नहीं दिख रहा है । क्या आप जानते हैं कि आप किस प्लेटफॉर्म / वितरण का उपयोग कर रहे थे? क्या यह एक साइट-स्थानीय कमांड हो सकता था? आप इस तरह के उपकरण का उपयोग करके स्क्रिप्ट कर सकते हैं dirnameऔर stat
mrb

आर्क लिनक्स और एक सुंदर वेनिला इंस्टॉलेशन का उपयोग करके बहुत सारे अतिरिक्त टूल इंस्टॉल नहीं किए गए हैं। ध्यान दें कि यह मालिकों और / या अनुमतियों का था, मुझे इस बिंदु पर यकीन नहीं है। या तो उपयोगी होगा।
कृपया मुझे

जवाबों:


31

आदेश हो सकता था:

namei -m /home/user/dir/child/file

6
namei -moमहान है, कि यह आपको मालिक भी देता है।
अर्थमुन

2
BEWARE: namei linux ACL या SELinux MAC's नहीं दिखाएगा। मुझे पता चला कि ACL मैन्युअल रूप से जाँच कर रहा हैsudo su nginx -s/bin/bash
रे फॉस

28

मुझे लगता है कि आप treeकमांड के बारे में सोच रहे होंगे । उदाहरण के लिए:

$ tree -pufid apps/glassfish3/ | less
apps/glassfish3
[drwxr-xr-x saml    ]  apps/glassfish3/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/config
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/doc-files
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/security
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/sql
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/decorator
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb/embeddable
...
...

उपरोक्त स्विच निम्नलिखित करते हैं:

  • -p - अनुमति
  • -u - उपयोगकर्ता नाम / उपयोगकर्ता नाम
  • -f - पूरा रास्ता
  • -i - इंडेंटेशन लाइनों को प्रिंट न करें
  • -d - केवल निर्देशिका प्रिंट करें

संदर्भ


3
मुझे लगता है कि इसे /home/user/dir/child/fileबच्चों के पूर्वजों को प्रदर्शित करने के लिए कहा गया था ।
राफेल एहरेंस

@ राफेलअहारेन्स - हाँ मुझे एहसास है कि लेकिन ऐसा कोई आदेश नहीं है जिसके बारे में मुझे पता है कि वास्तव में ऐसा होता है, फिर भी ट्री कमांड है जो मैंने दिखाया था और यह संदेहास्पद है कि ओपी क्या सोच रहा था।
स्लम

क्या -uवास्तव में आवश्यक है? ऐसा लगता है कि यह यहां डिफ़ॉल्ट है (ट्री वर्जन 1.6.0 GNU बैश 4.2.45 के तहत)। क्या "उपयोगकर्ता नाम / उपयोगकर्ता नाम" को चुप करने का कोई विकल्प है?
निकोस एलेक्जेंड्रिस

1
@NikosAlexandris - यदि मैं वह स्विच छोड़ता हूं तो मुझे उपयोगकर्ता नाम नहीं मिलता है। मेरी क्रिया: पेड़ v1.6.0। मैं Fedora 19, GNU बैश, संस्करण 4.2.45 (1) -release (x86_64-redhat-linux-gnu) पर हूँ।
slm

बैश संस्करणों के बीच अलग "चूक"? सूचित करने के लिए धन्यवाद।
निकोस एलेक्जेंड्रिस

3

कुछ दे खने के बाद मैं यह लेकर आया

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done

आउटपुट इस तरह दिखता है

-rw------- 1 tant tant 181016423 Jun 25 23:49:17 2013 /home/tant/test_file
drwxr-xr-x 85 tant tant 5632 Jul  9 19:40:11 2013 /home/tant
lrwxr-xr-x 1 root wheel 8 Sep  4 23:53:27 2012 /home -> usr/home

मुझे उम्मीद है कि यह ठीक है कि यह रिवर्स ऑर्डर में है।

टिप्पणियों के आधार पर, यहां नीचे की ओर जड़ से सूचीबद्ध करने का तरीका दिया गया है:

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done | sed '1!G;h;$!d'

1
| tacयदि आपके पास है, या | sed '1!G;h;$!d'नहीं तो आप इसके साथ उल्टा कर सकते हैं।
mrb

2
यह सापेक्ष रास्तों के लिए टूट जाएगा। [ "$l_path" != / -a "$l_path" != . ]इसके बजाय करो ।

@Evan Teitelman dirname को पूरा रास्ता देना चाहिए
राफेल एहरेंस

1
@RaphaelAhrens नहीं, यह अंत में सापेक्ष पथ के लिए एक डॉट लौटाएगा।
भीड़

1
इसके अलावा, stat -lशायद होना चाहिए statया ls -ld

0

वह निर्देशिका जिसमें आप एसेस्टर की अनुमति और मालिकों को जानना चाहते हैं:

for i in $(seq 0 $(pwd | tr -cd / | wc -c)) ; do pwd ; ls -lad ; cd .. ; done

ध्यान दें कि उसके बाद, आप /:) में रहेंगे यदि आप वापस उसी स्थान पर जाना चाहते हैं जहां आप थे, तो कमांड को अंदर लपेटें

HERE=$(pwd)
...
cd ${HERE}

-1

आप अनुमतियों और मालिकों / समूहों को सूचीबद्ध करने के लिए जो कमांड देख रहे हैं वह है ls -l

-l विकल्प का उपयोग लंबी सूची प्रारूप के लिए किया जाता है।

ls -l / path / to / list

इसके अलावा, यदि आप सूची और छिपी हुई फ़ाइलों को सूचीबद्ध करना चाहते हैं तो -a (सभी) विकल्प जोड़ें।

ls -al / path / to / list

इसके अलावा, यदि आप अपने उपनिर्देशिका उपयोग -R (पुनरावर्ती) विकल्प में अनुमतियों को सूचीबद्ध करना चाहते हैं ।

ls -Rl / पाथ / टू / लिस्ट

पहला कॉलम अनुमतियाँ (रीड (r), राइट (w), निष्पादित (x)) और कुछ विशेष अनुमतियाँ (डाइरेक्टरी (d), - (रेगुलर फ़ाइल)) और 3rd और 4th कॉलम आपको डिस्प्ले / डायरेक्टरी दिखाता है क्रमशः मालिक और समूह।


2
मुझे नहीं लगता कि जो मांगा गया है। ऐसा लगता है कि पूछनेवाला निर्देशिकाओं की अनुमतियों की एक सूची की तलाश कर रहा है जो फ़ाइल में ले जाती है।
Mat
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.