ডিরেক্টরিতে সরানো বা অনুলিপি করা ফাইলগুলির জন্য ডিফল্ট অনুমতিগুলি কীভাবে সেট করবেন?


9

আমার প্রশ্নটি লিনাক্সে নতুনভাবে তৈরি করা সমস্ত ফাইলের মধ্যে কীভাবে ডিফল্ট ফাইল অনুমতি সেট করতে হয় তার সমান but তবে গুরুত্বপূর্ণ উপায়ে পৃথক:

সিস্টেমের ডিফল্ট থেকে পৃথক পৃথক ডিফল্ট অনুমতিগুলির একটি সেট উত্তরাধিকারী করার জন্য একটি নির্দিষ্ট ডিরেক্টরিতে তৈরি করা (বা অনুলিপি করা বা এতে সরানো) সমস্ত ফাইল চাই।

যুক্তি: প্রশ্নে থাকা ডিরেক্টরিটি হ'ল একটি অ্যাপ্লিকেশনের জন্য "ইনটেক হপার"। একটি গ্রুপের ব্যবহারকারীরা ডিরেক্টরিতে ফাইল রাখেন এবং অ্যাপ্লিকেশন (একই গ্রুপে অন্য ব্যবহারকারী আইডির অধীনে চলছে) সেগুলি নিয়ে তাদের প্রক্রিয়া করে। সমস্যাটি হ'ল ডিরেক্টরিতে রাখা প্রতিটি ফাইলের মালিক হলেন ব্যবহারকারী যে এটি সেখানে রেখেছিলেন এবং অনুমতিগুলি "rw-r - r--" এ ডিফল্ট হয়; আমি এটি "rw-rw ----" এ পরিবর্তন করতে চাই। গ্রাহকরা যে অ্যাপ্লিকেশনটি গ্রহণ করছেন তা স্পষ্টভাবে তা করতে পারে না, কারণ অ্যাপ্লিকেশনটির অধীনে চলমান ব্যবহারকারী আইডিটি প্রশ্নযুক্ত ফাইলটির মালিক নয়, এবং ডিফল্ট অনুমতিগুলি অ্যাপ্লিকেশনটিকে ফাইলটিতে chmod করতে দেয় না! স্পষ্টতই, ফাইলটি সেখানে রাখার পরে ব্যবহারকারী একটি chmod করতে পারে - তবে আমি ব্যবহারকারী দ্বারা "ড্রপ "টিকে যতটা সম্ভব সহজ করে রাখতে চাই। (এই লোকেরা লিনাক্স-সাক্ষর নয়,

উমাস্কটি খুব শক্তিশালী বলে মনে হচ্ছে: আমি এই ব্যবহারকারীদের দ্বারা তৈরি হওয়া প্রতিটি ফাইলের জন্য পূর্বনির্ধারিত অনুমতিগুলি সেট করতে চাই না - কেবল এই ডিরেক্টরিতে তৈরি (বা স্থাপন করা হয়েছে)।

দয়া করে পরামর্শ দিন ... ধন্যবাদ!

উত্তর:


5

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

থেকে man 5 acl:

যদি কোনও ডিফল্ট এসিএল কোনও ডিরেক্টরিের সাথে যুক্ত থাকে তবে ফাইল অবজেক্ট তৈরি করার ফাংশনের মোড প্যারামিটার এবং ডিরেক্টরিটির ডিফল্ট এসিএল নতুন অবজেক্টের এসিএল নির্ধারণ করতে ব্যবহৃত হয়:

  1. নতুন অবজেক্টটি এতে থাকা ডিরেক্টরিটির ডিফল্ট এসিএলকে তার অ্যাক্সেস এসিএল হিসাবে উত্তরাধিকার সূত্রে প্রাপ্ত করে।

  2. ফাইল অনুমতি বিটগুলির সাথে সম্পর্কিত অ্যাক্সেস এসিএল এন্ট্রিগুলি সংশোধিত করা হয় যাতে মোড প্যারামিটারের দ্বারা বর্ণিত অনুমতিগুলির মধ্যে নেই এমন কোনও অনুমতি না থাকে।

এটি সেট আপ করতে (সেই অনুযায়ী ডিভাইস, ডিরেক্টরি ইত্যাদি পরিবর্তন করুন):

আপনার /etc/fstabফাইল সম্পাদনা করুন এবং aclমাউন্ট বিকল্প যুক্ত করুন।

/dev/mapper/star-home /home ext3  defaults,acl 0 2

পুনরারোহণ ( সাম্বা mount.cifsman পৃষ্ঠা ) পুনরায় বুট করার বা ব্যবহারের মাধ্যমে আপনার ফাইল সিস্টেম:

mount -o remount,acl /home

আপনার প্রয়োজনীয়তা setfaclএবং getfaclউপযোগিতা রয়েছে তা নিশ্চিত করুন ।

ডিরেক্টরিতে ডিফল্ট এসিএল সেট করুন (আপনার বিদ্যমান ফাইলগুলিতে এসিএল সেট করার প্রয়োজনও হতে পারে):

$ setfacl -m d:user:george:rwx,d:group:sales-g:rwx,d:group:marketing-g:rwx projections

আরও তথ্যের জন্য লিঙ্কযুক্ত টিউটোরিয়াল দেখুন।

সূত্র: টিউটোরিয়াল পার্ট 1 এবং পার্ট 2

তথ্যসূত্র: লিনাক্সে পসিক্স অ্যাক্সেস নিয়ন্ত্রণ তালিকা


আমি মনে করি না যখন আপনি এটি যুক্ত করবেন তখন আপনার কমান্ডের aclবিকল্প হিসাবে যুক্ত করা উচিত । এটি অপ্রয়োজনীয় হতে চলেছে এবং আপনি যখন নিজের উত্তরে কমান্ডটি চালাবেন , আপনি এর মতো একটি আউটপুট পাবেন: ( শেষ পর্যন্ত দেখুন)। আমি ভুল না হলে দয়া করে এটি সংশোধন করুন। mount/etc/fstabmount/dev/vda1 on / type ext4 (rw,errors=remount-ro,acl,acl)acl,acl
এর_ম

1

আমি একটি কাজের প্রস্তাব দিতে পারি: একটি পৃথক "ড্রপ" ডিরেক্টরি তৈরি করুন, সেখানে একটি পৃথক মিনিজব চালান যা অনুমতিগুলি স্থির করে এবং তারপরে ফাইলগুলি অ্যাপ্লিকেশনটির ডেটা ডিরেক্টরিতে স্থানান্তরিত করে। আপনি এর জন্য ইনক্রন ব্যবহার করতে পারেন যাতে কার্যত কোনও লক্ষণীয় সময় দেরি না হয়।


1

আমি এটি করার চারটি সম্ভাব্য পদ্ধতি সম্পর্কে ভাবতে পারি:

  • umask, যা আপনি ব্যবহার করতে চান না
  • প্রোগ্রামের মোড়ক, যা অ্যাপ্লিকেশনটির উমাস্ক সেট করে, ব্যবহারকারীর নয়
  • ক্রোন, যেমন @ পিটার আইজেন্ট্রাউট বর্ণিত; find $HOME/intake -type f -exec chmod 660 {} \;, বিভিন্ন সিস্টেমে এর উপর কর্মক্ষমতা উন্নতি হয়েছে ( -exec+বিকল্পের মতো )
  • ডিরেক্টরি ভিত্তিক সেটিংস, যার জন্য কিছুটা শেল প্রোগ্রামিং প্রয়োজন, তবে মূলত শেলটি, প্রম্পটটি সেট করতে বা সিডি কল করার পরে উমাস্কটি পরিবর্তন করতে পারে যদি সেই ডিরেক্টরিতে কোনও ডট ফাইল উপস্থিত থাকে (বা সম্ভবত কোনও পূর্বপুরুষের ডিরেক্টরি); বাশ জন্য, PROMPT_COMMAND='test -s $PWD/.umask && umask $(cat $PWD/.umask)'";$PROMPT_COMMAND"সবচেয়ে সহজ হবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.