গ্রুপে থাকা chmod (1) এসিএল মাস্ককে কেন প্রভাবিত করে?


17

আমি এই ইউনিক্স আচরণটি বোঝার চেষ্টা করছি (যা আমি উবুন্টু ১১.১০-তে পরীক্ষা করে দেখছি):

$ touch foo
$ setfacl -m u:nobody:rwx foo
$ getfacl foo
# file: foo
# owner: michael
# group: michael
user::rw-
user:nobody:rwx
group::rw-
mask::rwx
other::r--

$ chmod g-rw foo
$ getfacl foo
# file: foo
# owner: michael
# group: michael
user::rw-
user:nobody:rwx         #effective:--x
group::rw-          #effective:---
mask::--x
other::r--

লক্ষ্য করুন যে chmod (1) কমান্ডটি ACL মাস্ক আপডেট করেছে। কেন এমন হয়?

SunOS র manpage নিম্নলিখিত বলার আছে:

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

আমি জিজ্ঞাসা করি কারণ chmod (1) এর আচরণ না থাকলে এটি আমার পক্ষে সুবিধাজনক হবে। আমি আশা করি এটি কেন এটি করে তা কেন বুঝতে পেরে আমি ফাইল সিস্টেমের অনুমতিগুলি কীভাবে সেট আপ করব তা আরও ভালভাবে ডিজাইন করতে পারি।


2
এখন আমি ভাবছি যদি আমার ইউনিক্স.স্ট্যাকেক্সেঞ্জোয়েন্ট ডটকম এ জিজ্ঞাসা করা উচিত ছিল। সঠিক সাইট বাছাই করার চেষ্টা করা সর্বদা চ্যালেঞ্জিং।
মাইকেল ক্রপ্যাট 23'12

উত্তর:


24

এই আচরণ না থাকলে আপনার পক্ষে সুবিধাজনক হবে নাchmod()

এটি অত্যন্ত অসুবিধে হবে, কারণ লোকেরা ইউনিক্সে traditionতিহ্যগতভাবে কাজ করার প্রত্যাশা করে break এই আচরণটি আপনাকে ভালভাবে কাজ করে, আপনি কি জানেন তবে তা জানেন।

এটি লজ্জার বিষয় যে আইইইই 1003.1e কখনই কোনও স্ট্যান্ডার্ড হয় নি এবং 1998 সালে প্রত্যাহার করা হয়েছিল practice বাস্তবে, চৌদ্দ বছর পরে, এটি এমন একটি মান যা লিনাক্স থেকে ফ্রিবিএসডি থেকে সোলারিস পর্যন্ত - বাস্তবায়ন করে a

আইইইই 1003.1e কাজের খসড়া # 17 আকর্ষণীয় পড়ার জন্য তৈরি করে এবং আমি এটির প্রস্তাব দিই। পরিশিষ্ট বি § ২৩.৩ এ কার্যকারী গোষ্ঠী একটি বিস্তারিত, আট পৃষ্ঠার সরবরাহ করে, পসিক্স এসিএলগুলি পুরানো S_IRWXGগোষ্ঠী অনুমোদনের পতাকাগুলির সাথে সামান্য কাজ করার জন্য কিছুটা জটিল উপায়ের যুক্তি সরবরাহ করে । (এটি লক্ষ্য করার মতো বিষয় যে ট্রুসিক্স লোকেরা দশ বছর আগে অনেক একই বিশ্লেষণ সরবরাহ করেছিল।) আমি এগুলি এখানে এখানে অনুলিপি করতে যাচ্ছি না। বিশদ জন্য খসড়া মানক মধ্যে যুক্তি পড়ুন। এখানে একটি খুব সংক্ষিপ্ত মূল্য দেওয়া হয়েছে :

  • সুনোস ম্যানুয়ালটি ভুল। এটা পড়া উচিত

    আপনি ব্যবহার করেন তাহলে chmod(1)কমান্ড ACL এর এন্ট্রি সহ একটি ফাইল ফাইল গ্রুপ মালিকের অনুমতি পরিবর্তন করতে পারেন ফাইল গ্রুপ মালিকের অনুমতি বা ACL এর মাস্ক নতুন অনুমতির পরিবর্তিত হয়।

    আপনার আচরণে বর্তমান ম্যানুয়াল পৃষ্ঠাটি যা বলেছে তা সত্ত্বেও এটি এমন আচরণ যা আপনি দেখতে পাচ্ছেন । এটি পসিক্স স্ট্যান্ডার্ডের খসড়া দ্বারা নির্দিষ্ট আচরণও। যদি কোনও CLASS_OBJ(সান এবং ট্রাসিক্সের পরিভাষা ACL_MASK) এর অ্যাক্সেস-কন্ট্রোল এন্ট্রির উপস্থিতি থাকে তবে chmod()সেটটির গ্রুপ বিট সেট করে, অন্যথায় তারা GROUP_OBJঅ্যাক্সেস-নিয়ন্ত্রণ এন্ট্রি সেট করে ।

  • যদি এটি না হয়, applications chmod () with সহ বিভিন্ন স্ট্যান্ডার্ড জিনিসগুলি যে applications chmod () `হিসাবে এটি পুরানো নন-এসিএল ইউনিক্সে traditionতিহ্যগতভাবে কাজ করেছে আশা করে, যে অ্যাপ্লিকেশনগুলি securityতিহ্যবাহী সুরক্ষা গর্ত ছেড়ে দেয় বা কী দেখত তারা মনে করে যে সুরক্ষা গর্ত ব্যবধানে রয়েছে:

    • Ditionতিহ্যবাহী ইউনিক্স অ্যাপ্লিকেশনগুলি ফাইল, নামযুক্ত পাইপ, ডিভাইস, বা ডিরেক্টরি সহ ডিরেক্টরিতে সমস্ত অ্যাক্সেস অস্বীকার করতে সক্ষম হতে পারে বলে আশা করে chmod(…,000)। এসিএলগুলির উপস্থিতিতে, পুরানো মানচিত্রগুলি যদি তা করে তবে এটি সমস্ত ব্যবহারকারী এবং গোষ্ঠী অনুমতিগুলি S_IRWXGবন্ধ করে দেয় CLASS_OBJ। এটি ছাড়াই, পুরানো ফাইল অনুমতিগুলি সেট করার 000ফলে কোনও USERবা GROUPএন্ট্রি প্রভাবিত হবে না এবং অন্যান্য ব্যবহারকারীরা আশ্চর্যজনকভাবে এখনও অবজেক্টটিতে অ্যাক্সেস পাবে।

      অস্থায়ীভাবে কোনও ফাইলের অনুমতি বিটগুলি অ্যাক্সেসের সাথে অ্যাক্সেসে chmod 000পরিবর্তন করা এবং তারপরে আবার পরিবর্তন করা ছিল পুরানো ফাইল লকিং ব্যবস্থা, যা ইউনিক্স উপদেষ্টা লক করার পদ্ধতি অর্জন করার আগে ব্যবহৃত হয়েছিল - এটি আপনি দেখতে পাচ্ছেন - লোকেরা আজও ব্যবহার করে

    • Ditionতিহ্যবাহী ইউনিক্স স্ক্রিপ্টগুলি chmod go-rwxকেবলমাত্র বস্তুর মালিকের সাথে অবজেক্ট অ্যাক্সেস করতে সক্ষম হয়ে চালানো এবং শেষ হতে পারে বলে আশা করে । আবার - যেমন আপনি দেখতে পাচ্ছেন - বারো বছর পরে এটি এখনও প্রাপ্ত বুদ্ধি । এবং আবার, এই যদি না পুরাতন কাজ করে না S_IRWXGমানচিত্র CLASS_OBJযদি উপস্থিত থাকে, কারণ অন্যথায় যে chmodকমান্ড কোনো বন্ধ করবে না করবে USERবা GROUPপ্রবেশাধিকার নিয়ন্ত্রণ এন্ট্রি, মালিক এবং অ মালিক এমন কিছু বিষয় যা এক্সেস ধারনকারী গ্রুপ ছাড়া অন্য ব্যবহারকারীদের নেতৃস্থানীয় হয় কেবলমাত্র মালিকের কাছে অ্যাক্সেসযোগ্য হবে বলে আশাবাদী।

    • এমন একটি সিস্টেম যেখানে অনুমতি বিটগুলি andএসিএলগুলি থেকে অন্যথায় পৃথক ছিল rwxrwxrwxএবং বেশিরভাগ ক্ষেত্রেই ফাইলের অনুমতি পতাকার পতাকা লাগবে , যা ইউনিক্স অ্যাপ্লিকেশনগুলির মধ্যে হ্যাককে বিভ্রান্ত করবে যেগুলি অভিযোগ করে যে তারা বিশ্ব-লিখনযোগ্য বলে মনে করে জিনিসপত্র.

      এমন সিস্টেম যেখানে অনুমতি বিটগুলি অন্যথায় এসিএলগুলি থেকে পৃথক এবং orএডি করা ছিল তার chmod(…,000)আগে উল্লিখিত সমস্যা হবে ।

আরও পড়া


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

@ হোপিসেকার আপনি সর্বদা লিনাক্স, 100 টি জিএনইউ ইউটিলিটিস এবং তৃতীয় পক্ষের সফটওয়্যারগুলির কয়েক ভাগ কাঁটাচামচ করতে পারেন যাতে তারা S_IRWXGআর অনুমতি ব্যবহার না করে। কাজ শেষ হয়ে গেলে আমাকে ফোন করুন।
টোবিয়া

0

এই আচরণটি কেবল পসিক্স এসিএল এন্ট্রিগুলিতে প্রযোজ্য। এটি এখানে থাকার কারণটি হ'ল যদি আপনার কোনও ফোল্ডার থাকে এবং সেই ফোল্ডারের ভিতরে কোনও ফাইল উপস্থিত থাকে তবে আপনি rwx (উদাহরণস্বরূপ) ফোল্ডার এবং ফাইল হিসাবে acl করতে পারেন। যদি ফাইলটির গোষ্ঠীগুলির অনুমতিগুলি rw- হয় (যা তারা সাধারণত একটি সাধারণ দৃশ্যের মতো হতে পারে) তবে মুখোশটি এসিএলকে rw- এর কার্যকর অনুমতি দেয় যদিও এসিএল স্পষ্টতই rwx চিহ্নিত করে।

অন্যদিকে, যে ডিরেক্টরিটি প্রায় সর্বদা + x থাকে তার কার্যকর এসিএল মুখোশ অনুমতিগুলিও + এক্সকে অনুমতি দেয়।

সংক্ষেপে, এই মাস্কটি POSIX ACL সেটটির জন্য ফাইল এবং ফোল্ডারগুলির মধ্যে পার্থক্যের পার্থক্য করার জন্য ব্যবহৃত হয় যাতে কোনও ফাইল যখন সাধারণত হয় না তখন এটি কার্যকর হয় না become


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