একটি ডিফল্ট মালিক "স্বয়ংক্রিয়ভাবে" সেট করার জন্য এমন একটি ডিরেক্টরি প্রয়োজন যা setuid
আচরণ করা হয় setgid
। যাইহোক, এটি ফ্রিবিএসডি-তে কনফিগার করা যেতে পারে, অন্যান্য ইউএনআইএক্স এবং লিনাক্স সিস্টেমগুলি এড়িয়ে চলে u+s
। আপনার ক্ষেত্রে তবে, আরও একটি সমাধান হতে পারে।
আমি যা চাই তা হ'ল একটি ডিরেক্টরি থাকা যা ব্যবহারকারীর সাথে একটি গ্রুপ যুক্ত করে ভাগ করা যায়। এই ডিরেক্টরিতে তৈরি করা যেকোনো কিছুই এর পিতামাতার কাছ থেকে অনুমতি স্কিম উত্তরাধিকার সূত্রে প্রাপ্ত। আমি যে চেষ্টা করছি তার চেয়ে ভাল উপায় যদি থাকে তবে আমি সকলেই কান।
সুতরাং, মূলত, আমি যা দেখছি সেগুলি থেকে আপনি গ্রুপ মেকানিজম ব্যবহার করে কোনও ডিরেক্টরিতে অ্যাক্সেস নিয়ন্ত্রণ করতে চান। তবে এটির জন্য আপনাকে পুরো ডিরেক্টরি কাঠামোতে অনুমতিগুলি সীমাবদ্ধ করতে হবে না। প্রকৃতপক্ষে, ডিরেক্টরি --x
এক্সিকিউশন বিট আপনার প্রয়োজন অনুযায়ী হতে পারে। আমাকে যদি আপনি একটি উদাহরণ দিতে। ধরে নিচ্ছি যে ...
group_dir
ডিরেক্টরিটিতে অ্যাক্সেস নিয়ন্ত্রণকারী গ্রুপটি হ'ল ourgroup
।
- কেবলমাত্র
ourgroup
গ্রুপের লোকেরা অ্যাক্সেস করতে পারে group_dir
।
user1
এবং user2
সম্পর্কিত ourgroup
।
- ডিফল্ট উমাস্কটি 0022।
... নিম্নলিখিত সেটআপ বিবেচনা করুন:
drwxrws--- root:ourgroup |- group_dir/
drwxr-sr-x user1:ourgroup |---- group_dir/user1_submission/
drwxr-sr-x user2:ourgroup |---- group_dir/user2_submission/
-rw-r--r-- user2:ourgroup |-------- group_dir/user2_submission/README
এখানে, ধরে নেওয়া যাক প্রতিটি আইটেম তার মালিক দ্বারা তৈরি করা হয়েছিল।
এখন, এই সেটআপে:
- সমস্ত ডিরেক্টরি এতে প্রত্যেককে অবাধে ব্রাউজ করা যায়
ourgroup
। গ্রুপের যে কোনও ব্যক্তি ভিতরেই যে কোনও জায়গায় ফাইল তৈরি করতে, সরিয়ে নিতে, মুছতে পারে group_dir
(তবে আরও গভীর নয়)।
- যে যার মধ্যে নেই
ourgroup
সেটিকে অবরুদ্ধ করা group_dir
হবে এবং অতএব এর অধীনে যে কোনও কিছুই চালনা করতে অক্ষম হবে। উদাহরণস্বরূপ, user3
(যিনি এর সদস্য নন ourgroup
), পড়তে পারবেন না group_dir/user2_submission/README
(যদিও r--
ফাইলটিতে তাঁর অনুমতি রয়েছে )।
তবে, এই ক্ষেত্রে কিছুটা সমস্যা আছে: সাধারণ উমাস্কের কারণে, ব্যবহারকারীদের দ্বারা তৈরি আইটেমগুলি গোষ্ঠীর অন্যান্য সদস্যদের দ্বারা চালিত করা যায় না। এসিএলগুলি এখানেই আসে default ডিফল্ট অনুমতি নির্ধারণের মাধ্যমে, আপনি উমাস্কের মান সত্ত্বেও সবকিছু ঠিকঠাক নিশ্চিত করবেন:
$ setfacl -dRm u::rwX,g::rwX,o::0 group_dir/
এই কল সেট:
rw(x)
মালিকের জন্য ডিফল্ট অনুমতি।
rw(x)
গোষ্ঠীর জন্য ডিফল্ট অনুমতি।
- অন্যদের জন্য ডিফল্টরূপে কোনও অনুমতি নেই। মনে রাখবেন যেহেতু অন্যরা
group_dir
যেভাবেই অ্যাক্সেস করতে পারে না , তাই এর অনুমতিগুলির নীচে এটি কী তা বিবেচ্য নয়।
এখন, আমি যদি এই আইটেমটি তৈরি করি তবে user2
:
$ touch group_dir/user2_submission/AUTHORS
$ ls -l group_dir/user2_submission/AUTHORS
rw-rw---- user2:ourgroup group_dir/user2_submission/AUTHORS
এই এসিএলটির জায়গায়, আমরা আমাদের পূর্ববর্তী কাঠামোটি পুনর্নির্মাণের চেষ্টা করতে পারি:
drwxrws---+ root:ourgroup |- group_dir/
drwxrws---+ user1:ourgroup |---- group_dir/user1_submission/
drwxrws---+ user2:ourgroup |---- group_dir/user2_submission/
-rw-rw----+ user2:ourgroup |-------- group_dir/user2_submission/README
এখানে আবার, প্রতিটি আইটেম তার মালিক দ্বারা তৈরি করা হয়।
অতিরিক্ত হিসাবে আপনি যদি ডিরেক্টরিটি ব্যবহার করছেন তাদের যদি আপনি কিছুটা আরও শক্তি / সুরক্ষা দিতে চান তবে আপনি একটি স্টিকি বিট বিবেচনা করতে পারেন। উদাহরণস্বরূপ, এটি user1
মুছে ফেলা থেকে বিরত করবে user2_submission
(যেহেতু তার -w-
অনুমতি রয়েছে group_dir
):
$ chmod +t group_dir/
এখন, যদি ডিরেক্টরিটি user1
সরানোর চেষ্টা করে তবে user2
সে একটি সুন্দর পাবে Operation not permitted
। নোট করুন যেহেতু এটি ডিরেক্টরি কাঠামোগত পরিবর্তনগুলিকে এতে বাধা দেয় তবে এর group_dir
নীচে থাকা ফাইল এবং ডিরেক্টরিগুলি এখনও অ্যাক্সেসযোগ্য:
user1@host $ rm -r user2_submission
Operation not permitted
user1@host $ cat /dev/null > user2_submission/README
user1@host $ file user2_submission/README
user2_submission/README: empty (uh-oh)
আমলে নেওয়ার আরেকটি বিষয় হ'ল আমরা যে এসিএলগুলি ব্যবহার করেছি সেটি হ'ল ডিফল্ট অনুমতিগুলি সেট আপ । সুতরাং কোনও আইটেমের মালিকের সাথে সম্পর্কিত অনুমতিগুলি পরিবর্তন করা সম্ভব। উদাহরণস্বরূপ, user2
পুরোপুরি চালানো যেতে পারে ...
$ chown g= user2_submission/ -R
or
$ chgrp nobody user2_submission -R
... সুতরাং তার পুরো জমা দেওয়ার ডিরেক্টরিটি গ্রুপের কারও কাছে অনুপলব্ধ।
তবে, যেহেতু আপনি rws
গোষ্ঠীটির যে কোনও ব্যক্তিকে পুরোপুরি অ্যাক্সেস দিতে ইচ্ছুক , আমি ধরে নিচ্ছি আপনি এই ব্যবহারকারীদের উপর ভরসা করছেন এবং আপনি তাদের কাছ থেকে খুব বেশি দূষিত অপারেশন আশা করবেন না।