+ এক্স অনুমতি সহ ডিরেক্টরি, পিতা-মাতা ছাড়া। এটি কখন কার্যকর হবে?


11

বলুন যে আমার কাছে folderনীচের পথে একটি ফোল্ডার কল রয়েছে :

my_path = /a/b/c/d/e/folder

এবং fileসেই ফোল্ডারে কল করা একটি ফাইল ।

তারপরে, বলুন / / এ / এর অধীনে গোষ্ঠী অনুমতিগুলি অপসারণের জন্য আমি এই আদেশটি চালাচ্ছি

> chmod g-rwx -R /a/

এখন, বলুন আমি এটিকে +rxঅনুমতি দিই folder:

> chmod g+rx /a/b/c/d/e/folder

তারপরে, যদি আমার গ্রুপের দ্বিতীয় ব্যবহারকারী চালায়:

> ls /a/b/c/d/e/folder

অথবা

> cat /a/b/c/d/e/folder/file 

সে অনুমতি ত্রুটি পায় এবং যতদূর আমি এটি বুঝতে পারি কারণ এর g+xসমস্ত পিতামাতাকে আমার অ্যাক্সেস সরবরাহ করতে হবে folder। আমার প্রশ্ন, তাহলে তোমরা যখন বা কেন এটা কখনও দরকারী দিতে হবে +xএকটি ডিরেক্টরি যার পিতা বা মাতা নেই করার অনুমতি না এটা আছে?

ধন্যবাদ


1
আপনি কি নিশ্চিত যে আপনি চলছে chmod +grx -R /a/b/c/d/e/folder? এটি ভুল, এটি কার্যকর করার সঠিক উপায়:chmod g+rx -R /a/b/c/d/e/folder
nozimica

3
এই প্রশ্নের সরাসরি উত্তর দেয় না, তবে ব্যাকগ্রাউন্ড
রিডিংয়ের

উত্তর:


6

বেশিরভাগ সময়, আপনি যদি কোনও সম্পূর্ণ ডিরেক্টরি (এর উপ-ডিরেক্টরি সহ) অ্যাক্সেস এবং ব্যবহারকে অবরুদ্ধ করতে চান তবে আপনি এটি মুছে ফেলার মাধ্যমে এটি করতে পারবেন (পুনরাবৃত্তি না করে) -x। অতএব, আপনি +xকোনও ক্ষতি না করেই উপ-ডিরেক্টরিগুলি রেখে যেতে পারেন ।

সাব-ডিরেক্টরিতে অনুমতিগুলি রাখা বিভিন্ন কারণে কার্যকর হতে পারে (বিশেষত যখন -xপ্রত্যেকের জন্য প্রযোজ্য হয় না তবে কমপক্ষে একজন ব্যবহারকারী এখনও কিছু করতে পারেন)।

উদাহরণস্বরূপ, আপনি সেই ডিরেক্টরি কাঠামোর মধ্যে থাকা অনুমতিগুলিতে অন্যান্য পরিবর্তনগুলি করার সময়, ধারক ডিরেক্টরিটির ব্যবহার অস্থায়ীভাবে আটকাতে এবং তারপরে একটি ক্রিয়ায় পুরো গাছটিতে অ্যাক্সেস পুনরায় সক্ষম করতে ( +xশীর্ষ স্তরের ডিরেক্টরিতে ডিরেক্টরি প্রদান)।

আপনার এমন পরিস্থিতিতেও পড়তে পারে যেখানে কোনও স্ক্রিপ্ট (অগত্যা মালিক দ্বারা চালিত না হওয়া) অস্থায়ী স্থানে ডিরেক্টরি গাছটিকে ব্যাক আপ করে দেয় (যা অন্যদের দ্বারা পাঠযোগ্য নয়) এবং সমস্ত কিছু তারের ফাইলের মধ্যে রাখে, অনুমতি সেটিংস সংরক্ষণ করে ডিরেক্টরি বিষয়বস্তু।


7

ডিরেক্টরিতে কোনও ফাইল সিডি করতে বা অ্যাক্সেস করতে আপনার যে কোনও এবং সমস্ত প্যারেন্ট ডিরেক্টরিতে + এক্স অনুমতি প্রয়োজন।

ফাইলগুলি তালিকাভুক্ত করার জন্য আপনাকে ডিরেক্টরিতে + আর অনুমতি প্রয়োজন। সুতরাং এখানে একটি উদাহরণ:

কিছু স্টাফ সেটআপ পেতে আপনি এই আদেশগুলি জারি করতে পারেন:

mkdir -p /a/b

touch /a/b/{file1,file2}

cd /a

echo 1 > b/file1

echo 2 > b/file2

কোন অধিকার নেই:

pwd
/a$ pwd
/a
/a$ chmod -rwx b
/a$ ls -l
d---------  4 mike  admin  136 Jun  1 14:44 b/
/a$ ls -l b/
ls: : Permission denied
/a$ cat b/file1
cat: b/file1: Permission denied

শুধুমাত্র মৃত্যুদন্ড কার্যকর করার সাথে

/a$ chmod +x b
/a$ ls -l
total 0
d--x--x--x  4 mike  admin  136 Jun  1 14:44 b/
/a$ ls -l b
ls: b: Permission denied
/a$ cat b/file1
a
/a$ ls -l b/file1
-rw-r--r--  1 mike  admin  2 Jun  1 14:43 b/file1

এখন পড়ার সাথে:

/a$ chmod +r b/
/a$ ls -l
/a$ ls -l
total 0
dr-xr-xr-x  4 mike  admin  136 Jun  1 14:44 b/
/a$ ls -l b/
total 16
-rw-r--r--  1 mike  admin  2 Jun  1 14:43 file1
-rw-r--r--  1 mike  admin  2 Jun  1 14:43 file2

এই অংশটি কিছুটা বিভ্রান্তিকর হতে পারে তবে কেবল পঠনযোগ্য এবং কার্যকর না হওয়ার সাথে সাথে আপনি প্রকৃতপক্ষে ডিরেক্টরিতে ফাইলগুলি তালিকাভুক্ত করতে পারেন তবে ইনোড মেটাডেটা না পড়তে পারেন, তাই আপনি অনুমতি বঞ্চিত হবেন তবে এখনও ফাইলগুলির তালিকা দেখতে সক্ষম হবেন নীচে হিসাবে একটি ডিরেক্টরি ..

/a$ chmod -x b/
/a$ ls -l
total 0
dr--r--r--  4 mike  admin  136 Jun  1 14:44 b/
/a$ ls -l b
ls: file1: Permission denied
ls: file2: Permission denied

2
ধন্যবাদ @ স্ক্রুলার আপনি বলেছিলেন: " ডিরেক্টরিতে কোনও ফাইল সিডি করতে বা অ্যাক্সেস করার জন্য আপনার যে কোনও এবং সমস্ত মূল ডিরেক্টরিতে + এক্স অনুমতি প্রয়োজন ", যা আমি ভেবেছিলাম। আমার প্রশ্ন তারপর হল: কেন আপনি কি কখনও একটি ডিরেক্টরি যার কাছে + X অনুমতি দেবে বাবা না না + X অনুমতি আছে?
আমিলিও ওয়াজকেজ-রেইনা

কেবলমাত্র আমি ভাবতে পারি তা হল আপনি যদি সেখানে সরাসরি বাঁধাই মাউন্ট করতে চান তবে প্যারেন্ট ডিরেক্টরিগুলি বাইপাস করে অনুমতিগুলি কার্যকর করতে পারেন / o যদি তা বোঝা না যায় তবে আমি একটি উদাহরণ দেখাব।
স্ক্রুলার

উপরেরটি আরও পরিষ্কার হওয়া উচিত ছিল। সমস্ত অভিভাবক ডিরেক্টরিতে অনুমতি সহ একটি রুট ব্যবহারকারী অন্য ব্যবহারকারীদের ডিরেক্টরিতে পৌঁছানোর অনুমতি দেওয়ার জন্য এই বাইন্ড মাউন্টটিকে তৈরি করতে পারে। যেহেতু তারা পৌঁছতে পারে / a / b / c / d / e যেখানে কেবলমাত্র d বা e বিশ্বব্যাপী চালিত হয়েছিল আপনি / mnt / d -> / a / b / c / d / e থেকে একটি বাঁধাই মাউন্ট তৈরি করতে পারেন এবং একজন ব্যবহারকারী পৌঁছতে পারে এটি মাউন্ট পয়েন্টে গিয়ে। ডিরেক্টরি গাছের গভীরে কোথাও একটি শক্ত লিঙ্ক তৈরি করার মত একই ধারণা যা অন্যথায় অ্যাক্সেসযোগ্য হবে। প্রতীকী লিঙ্কগুলি এর মতো কাজ করে না, তবে একটি বাইন্ড মাউন্ট প্রয়োজন।
স্ক্রুলার

2

আপনি +xযে পরিস্থিতিতে দিয়েছেন তা পুনরবিবেচনার অনুমতিগুলি ব্যবহার করতে চান :

chmod g+x /a /a/b /a/b/c /a/b/c/d /a/b/c/d/e

(এটি ধরে নিয়েছে যে ব্যবহারকারী প্রতিটি ডিরেক্টরিকের গোষ্ঠীর সদস্য If যদি না হয় তবে আপনাকে এ chmod o+xজাতীয় কোনও ডিরেক্টরি করতে হবে ))

কোনও ব্যবহারকারীর ls /a/b/c/d/e/folderসাফল্যের সাথে করার জন্য , তার অবশ্যই অবশ্যই সেই পথের প্রতিটি ডিরেক্টরিতে অনুমতি কার্যকর করতে হবে এবং তার উপর অনুমতি পড়তে হবে folder

যদি তুমি কর

chmod g+x -R /a

এটি কাজ করবে, তবে আপনি / এ এর ​​অধীনে প্রতিটি ফাইল এবং ডিরেক্টরিকে গোষ্ঠী নির্বাহের অনুমতি দিচ্ছেন । এটি অপ্রয়োজনীয় এবং ফাইলগুলির ক্ষেত্রে সম্ভবত ভুল।


1

যে বিশেষ পরিস্থিতিতে আপনি মুখোমুখি হচ্ছেন, সমস্যাটি হ'ল যদি folderআপনার নিজের গোষ্ঠী থেকে কিছু ব্যবহারকারীর দ্বারা অ্যাক্সেস করার জন্য যথাযথ অনুমতি পাওয়া যায়, তবে এর পিতামাতার কোনও ফোল্ডার যদি folderসেই ব্যবহারকারীর কাছে অ্যাক্সেসযোগ্য না হয় তবে তিনি সক্ষম হতে পারবেন না ভিতরেরটি অ্যাক্সেস করুন (এটি যা folderআপনার উদাহরণে বলা হয়)।

যদি আপনি কার্যকর করেন:

chmod g-rwx -R /a/

তারপরে aএবং এর সমস্ত শিশুদেরই সেই অনুমতি থাকবে।

আপনি যখন মৃত্যুদণ্ড কার্যকর করবেন:

chmod g+rx -R /a/b/c/d/e/folder

তারপরে folderএবং এর সমস্ত বাচ্চাদেরও সেই অনুমতি থাকবে। কিন্তু, পরে আদেশের সঙ্গে, ফোল্ডার a/, a/bএবং যতক্ষণ না তাই a/b/c/d/eতাদের অনুমতির পরিবর্তন করবে না।


0

ডিরেক্টরিগুলিতে এক্স বিট অপসারণের সাধারণ ক্ষেত্রে হ'ল ব্যবহারকারীদের তাদের বাড়ির ডিরেক্টরিতে লক করা। সীমাবদ্ধ শেলগুলির কাছে cdনিখুঁত পাথর নাম উল্লেখ করার অনুমতি না দেওয়ার এবং পরম পাথগুলি ব্যবহার করে প্রোগ্রামগুলি কার্যকর করার অনুমতি না দেওয়ার বিকল্প রয়েছে । তারা cd ..তাদের হোম ডিরেক্টরিটির মূল ডিরেক্টরিতেও যেতে পারে না এবং ফলস্বরূপ কার্যকরভাবে লক হয়ে থাকে এবং programs PATH তে নেই এমন কোনও প্রোগ্রাম চালাতে অক্ষম হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.