অনুমতি / সম্পূর্ণ ডিরেক্টরি গাছের মালিক দেখুন


27

আমার মনে আছে "এক্সএক্সএক্স / হোম / ব্যবহারকারী / দির / শিশু / ফাইল" এর মতো কিছু করা এবং এটি মালিক এবং / অথবা এর অনুমতি ফিরিয়ে দিয়েছে:

/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দুর্দান্ত, এটি আপনাকে মালিকও দেয়।
EarthmeLon

2
সাবধানতা: নামি লিনাক্স এসিএল বা সেলইনাক্স ম্যাক প্রদর্শন করবে না। আমি বুঝতে পেরেছিলাম যে একটি এসিএল ম্যানুয়ালি পরীক্ষা করে এনগিনেক্সকে ব্লক করছে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বাচ্চাদের নয় পূর্বপুরুষদের প্রদর্শন করতে বলা হয়েছিল ।
রাফেল অ্যারেনস

@ রাফেলআরেন্সস - হ্যাঁ আমি বুঝতে পেরেছি কিন্তু এমন কোনও আদেশ নেই যা সম্পর্কে আমি অবগত রয়েছি, তবে সেখানে ট্রি কমান্ড রয়েছে যা আমি দেখিয়েছি এবং এটি সন্দেহজনকভাবে ওপি যা ভাবছে তার সাথে মিল রয়েছে।
slm

কি -uসত্যিই প্রয়োজনীয়? দেখে মনে হচ্ছে এটি এখানে ডিফল্ট ((জিএনইউ ব্যাশ ৪.২.৪৫ এর আওতায় গাছের ভার। "ইউজার নেম / ইউজারিড" নীরব করার কোন বিকল্প আছে কি?
নিকস আলেকজান্দ্রিস

1
@ নিকোস অ্যালেক্সান্দ্রিস - আমি যদি সেই সুইচটি ফেলে দিই তবে আমি ব্যবহারকারীর নামটি পাই না। আমার ভার: গাছের v1.6.0। আমি ফেডোরা 19, জিএনইউ ব্যাশ, সংস্করণ 4.2.45 (1) -রিলেজ (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" != . ]পরিবর্তে।

@ ইভান টিটেলম্যান ডেরনামের পুরো পথটি দেওয়া উচিত
রাফেল আহরেন্স

1
@ রাফেলআহরেনস না, এটি শেষ দিকে আপেক্ষিক পথের জন্য একটি বিন্দু ফিরে আসবে।
ছুটে

1
এছাড়াও, stat -lসম্ভবত হতে হবে statবা ls -ld

0

যে ডিরেক্টরিতে আপনি অ্যানেসেস্টারের অনুমতি এবং মালিকদের জানতে চান:

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

মনে রাখবেন যে এর পরে, আপনি সেখানে থাকবেন /:) আপনি যদি যেখানে ছিলেন সেখানে ফিরে যেতে চান তবে কমান্ডটি ভিতরে rapেকে রাখুন

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

-1

আপনি যে আদেশটি তালিকার অনুমতি এবং মালিক / গোষ্ঠীগুলির সন্ধান করছেন তা হ'ল ls -l

-l বিকল্পটি দীর্ঘ তালিকা বিন্যাসের জন্য ব্যবহৃত হয়।

ls -l / path / to / list

এছাড়াও, আপনি যদি তালিকাবদ্ধ করতে চান এবং লুকানো ফাইলগুলি চান তবে -a (সমস্ত) বিকল্পটি যুক্ত করুন।

ls -al / path / to / list

এছাড়াও, আপনি যদি আপনার তালিকায় অনুমতির চান সাবডিরেক্টরি ব্যবহার -R (রিকার্সিভ) বিকল্প।

ls -Rl / পাথ / থেকে / তালিকা

প্রথম কলামে অনুমতিগুলি (পড়ুন (র), লিখন (ডাব্লু), এক্সিকিউট (এক্স)) এবং কিছু বিশেষ অনুমতি (ডিরেক্টরি (ডি), - (নিয়মিত ফাইল)) এবং তৃতীয় এবং চতুর্থ কলাম আপনাকে ফাইল / ডিরেক্টরি দেখায় যথাক্রমে মালিক এবং গ্রুপ।


2
আমি মনে করি না যে এটি জন্য জিজ্ঞাসা করা হয়। দেখে মনে হচ্ছে যে প্রশ্নকর্তা কোনও ফাইলের দিকে পরিচালিত ডিরেক্টরিগুলির অনুমতিগুলির তালিকার সন্ধান করছেন।
মাদুর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.