লিনাক্সের ডিরেক্টরিতে নতুন নির্মিত ফাইল এবং উপ-ডিরেক্টরিগুলির জন্য ডিফল্ট অনুমতি সেট করা?


100

আমার কাছে বেশ কিছু দীর্ঘ-চলমান স্ক্রিপ্ট এবং অ্যাপ্লিকেশন রয়েছে যা কয়েকটি ব্যবহারকারীর মধ্যে ভাগ করা কোনও ডিরেক্টরিতে আউটপুট ফলাফলগুলি সংরক্ষণ করে। আমি এই উপায়টি নিশ্চিত করতে চাই যে এই ভাগ করা ডিরেক্টরিের অধীনে তৈরি প্রতিটি ফাইল এবং ডিরেক্টরিটির স্বয়ংক্রিয়ভাবে u=rwxg=rwxo=rঅনুমতি রয়েছে।

আমি জানি যে আমি umask 006আমার বিভিন্ন স্ক্রিপ্টগুলি মাথা থেকে ব্যবহার করতে পারি, তবে আমি সেই পদ্ধতির পছন্দ করি না কারণ অনেক ব্যবহারকারী তাদের নিজস্ব স্ক্রিপ্ট লেখেন এবং উমাস্ককে নিজে সেট করতে ভুলে যেতে পারেন।

আমি সত্যই চাই যে ফাইলসিস্টেমটি সুনির্দিষ্টভাবে নতুন তৈরি করা ফাইল এবং ডিরেক্টরিগুলি নির্দিষ্ট ফোল্ডারে থাকলে একটি নির্দিষ্ট অনুমতি নিয়ে সেট করতে পারে। এটা কি আদৌ সম্ভব?

আপডেট : আমি মনে করি ডিফল্ট এসিএল কার্যকারিতাটি ব্যবহার করে এটি পসিক্স এসিএল দিয়ে করা যেতে পারে তবে এই মুহুর্তে আমার মাথার উপরে এটি কিছুটা bit যদি কেউ ডিফল্ট এসিএলগুলি কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করতে পারলে সম্ভবত এই প্রশ্নের উত্তর সুন্দরভাবে দেওয়া হবে।


4
পসিক্স এসিএলগুলি দুর্দান্ত, তবে আপনি যে মেশিনগুলির মুখোমুখি হন তার একটি ভাল 60% মেশিনগুলি নির্দিষ্ট ফাইল সিস্টেমের জন্য বিতরণের উপর নির্ভর করে চালু করে না। এখানে একটি খুব ভাল ভূমিকা এবং উদাহরণ: suse.de/~agruen/acl/linux-acls/online
টিম পোস্ট

4
আপনি যে ডকুমেন্টটি লিঙ্ক করেছেন তার অর্থ আপনি :) এটি পড়ার জন্য আমার এখনও কোনও পরিবর্তন হয়নি তবে প্রাপ্যতা সমস্যাটি মাথা খারাপ করার জন্য ধন্যবাদ।
ডেভিড ডিন

4
টিম পোস্টের মন্তব্যে লিঙ্কটি মারা গেছে বলে মনে হচ্ছে, তবে ইন্টারনেট সংরক্ষণাগারকে ধন্যবাদ, আমি এটি দেখতে পেরে এবং যাচাই করতে পেরেছিলাম যে vanemery.com/Linux/ACL/POSIX_ACL_on_Linux.html ঠিক একই ডকুমেন্টটি ধারণ করে। আমি লিঙ্কটি আপডেট করতে প্রশ্নটি সম্পাদনা করব।
রমুন

উত্তর:


78

সঠিক মালিকানা পেতে, আপনি ডিরেক্টরিতে গ্রুপ সেটউইড বিট সেট করতে পারেন

chmod g+rwxs dirname

এটি নিশ্চিত করবে যে ডিরেক্টরিতে নির্মিত ফাইলগুলি গ্রুপের মালিকানাধীন। তারপরে আপনার অবশ্যই নিশ্চিত করা উচিত যে সবাই উমাস্ক 002 বা 007 বা সেই প্রকৃতির কিছু দিয়ে চলেছে --- এই কারণেই ডিবিয়ান এবং অন্যান্য অনেকগুলি লিনাক্স সিস্টেম ডিফল্টরূপে প্রতিটি ব্যবহারকারী গ্রুপের সাথে কনফিগার করা আছে।

ব্যবহারকারীর উমাস্ক খুব শক্ত হলে আপনি যে অনুমতিগুলি চান তা জোর করার কোনও উপায় আমি জানি না।


24
এটি আসলে কোনও সমাধান দেয় না - তিনি অনুমতিগুলির বিষয়ে মালিকানা নয়, এবং
এসিএলগুলির

4
"... নিশ্চিত হন যে সবাই উমাস্ক 002 বা 007 বা সেই প্রকৃতির কিছু দিয়ে চলছে" - এটি কিছুটা প্রসারিত .... আপনি কীভাবে পোস্টফিক্স, ডোভকোট, ক্ল্যাম এবং স্প্যাম অ্যাসাসিনকে এটি করেন?
jww

4
+sঅংশটি কী করে ? ধন্যবাদ
tommy.carstensen

4
এক্ষেত্রে এর অর্থ সেট গ্রুপ আইডি। এর অর্থ হ'ল আমরা এসজিআইডি বিট সেট করতে জি + এস ব্যবহার করি। আমি "এই ক্ষেত্রে" বলি কারণ + s গ্রুপের জন্য g এর সাথে মিলিত হয়েছিল। SID বিট (সেটুইড) সেট করার জন্য + এস ব্যবহার করা যেতে পারে।
বুরূজ

58

কমপক্ষে লিনাক্সের অধীনে ডিফল্ট এসিএল ব্যবহার করে এটি কীভাবে করা যায় তা এখানে।

প্রথমত, আপনার ফাইল সিস্টেমে আপনার এসিএল সমর্থন সক্ষম করার প্রয়োজন হতে পারে । আপনি যদি ext4 ব্যবহার করছেন তবে এটি ইতিমধ্যে সক্ষম। অন্যান্য ফাইল সিস্টেমগুলি (যেমন, ext3) aclবিকল্পের সাথে মাউন্ট করা দরকার । সেক্ষেত্রে আপনার বিকল্পটি যুক্ত করুন /etc/fstab। উদাহরণস্বরূপ, যদি ডিরেক্টরিটি আপনার মূল ফাইল সিস্টেমে অবস্থিত:

/dev/mapper/qz-root   /    ext3    errors=remount-ro,acl   0  1

তারপরে এটি পুনরায় মাউন্ট করুন:

mount -oremount /

এখন, ডিফল্ট ACL সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

setfacl -dm u::rwx,g::rwx,o::r /shared/directory

সমস্ত নতুন ফাইলের /shared/directoryএখন কাঙ্ক্ষিত অনুমতি নেওয়া উচিত। অবশ্যই এটি ফাইল তৈরির প্রয়োগের উপরও নির্ভর করে। উদাহরণস্বরূপ, বেশিরভাগ ফাইল শুরু থেকে কারও দ্বারা এক্সিকিউটযোগ্য হবে না (মোড আর্গুমেন্টের উপর ওপেন (2) বা ক্রিয়েট (2) কলের উপর নির্ভর করে) ঠিক যেমন উমাস্ক ব্যবহার করার সময়। কিছু ইউটিলিটি পছন্দ cp, tarএবং rsyncসোর্স ফাইল (গুলি) যা আউট আপনার ডিফল্ট ACL এর মাস্ক হবে সোর্স ফাইল গ্রুপ-লিখনযোগ্য ছিল না অনুমতি সংরক্ষণ করতে চেষ্টা করবে।

আশাকরি এটা সাহায্য করবে!


দেখে মনে হচ্ছে এটি এখনও umaskসমস্ত ব্যবহারকারীর জন্য যথাযথ প্রয়োজন । = / ইউনিক্স.স্ট্যাকেক্সেঞ্জাওয়েজ
অ্যানাটোলি টেকটোনিক

4
@ টেকটোনিক যেমনটি লিখেছি, এটি ফাইল তৈরির প্রয়োগের উপর নির্ভর করে। উদাহরণস্বরূপ, আপনি যদি cpএটি ব্যবহার করেন তবে এটি উত্স ফাইলটির অনুমতিগুলি অনুলিপি করার চেষ্টা করবে। এমনকি umaskব্যবহার করার সময় সাহায্য করে না cp। আমি একই সমস্যা দেখেছি tarএই প্রশ্নটি দেখুন ।
পেলে

@ টেকটোনিক আমি এখন আমার উত্তরে এ সম্পর্কে একটি বাক্য যুক্ত করেছি।
পেলে

4
হ্যাঁ দেখে মনে হচ্ছে সমস্যাটি কার্যকরভাবে প্রয়োগ হয় যখন fully৪৪ এর জন্য আমার এসিএল এবং পসিক্সের ডান সেটআপটি ছিল 6464৪ এর জন্য। এমনকি অনেকেরই জানা নেই umask
অ্যানাটোলি টেকটোনিক

আমি বোঝাতে চাইছি যে আমার মাউন্ট ফ্ল্যাগগুলি সঠিকভাবে সেট করা নেই কিনা তা দেখার চেষ্টা করে আমি কিছুটা সময় নষ্ট করেছি (এবং এক্সট 4 এ সেগুলি সেট করা যায় না, কারণ মনে হয় তারা স্বয়ংক্রিয়ভাবে কাজ করে)। কীভাবে চেক করা যায় সে সম্পর্কে কোনও তথ্য নেই setfacl works correctly- আমি ধরে নিই যে এটি ব্যর্থ হওয়া উচিত, তবে আমি নিশ্চিত নই, কারণ উত্তরটি সেই পয়েন্টটি মিস করে।
অ্যানাটোলি টেকটোনিক

4

এটি কুৎসিত, তবে আপনি যা চান তা অর্জন করতে আপনি setfacl কমান্ডটি ব্যবহার করতে পারেন।

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

user::rwx
user:user_a:rwx
user:user_b:rwx
...
group::rwx
mask:rwx
other:r-x
default:user:user_a:rwx
default:user:user_b:rwx
....
default:group::rwx
default:user::rwx
default:mask:rwx
default:other:r-x

Acl.lst ফাইলটির নাম দিন এবং user_X এর পরিবর্তে আপনার প্রকৃত ব্যবহারকারীর নাম পূরণ করুন।

নিম্নলিখিত কমান্ড জারি করে আপনি এখন আপনার ডিরেক্টরিতে এই অ্যাকসেলগুলি সেট করতে পারেন:

setfacl -f acl.lst /your/dir/here

যদি তারা সকলেই একই গ্রুপের সদস্য হন এবং কেবলমাত্র গ্রুপের অনুমতি ব্যবহার করেন তবে আপনি কি ব্যবহারকারী তালিকাটি ছেড়ে দিতে পারেন?
ডেভিড ডিন

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

4

আপনার শেল স্ক্রিপ্টে (বা .bashrc) আপনি সামান্য কিছু ব্যবহার করতে পারেন:

umask 022

umask এমন একটি কমান্ড যা কোনও মাস্কের সেটিংস নির্ধারণ করে যা সদ্য নির্মিত ফাইলগুলির জন্য কীভাবে ফাইলের অনুমতি সেট করা হয় তা নিয়ন্ত্রণ করে।


4
এটি সঠিক নয় কারণ উমাস্ক অনুমতিগুলি সীমাবদ্ধ করতে পারে না এমন অনুমতিগুলিকে সীমাবদ্ধ করে
এসিভি

@ ACV আপনি কি বিস্তারিত বলতে পারবেন? এটি আমার পক্ষে কাজ করে, নতুন তৈরি করা ফাইলগুলি এখন umask 002আমার .bashrc এ করার সময় গোষ্ঠী সদস্যদের আরডাব্লু অনুমতি দেওয়ার অনুমতি দেয় ।
আর্থার ডেন্ট

4
@ আর্থারডেন্ট umask 002গ্রুপ অপরিবর্তিত রেখে অন্যের অ্যাক্সেসকে সীমাবদ্ধ করে। মনে রাখবেন, এটি ugo- এটি ব্যবহারকারীদের গ্রুপ অন্য। এও মনে রাখবেন যে উমাস্কের মূল অর্থ ডিফল্টগুলি থেকে বিয়োগ করা। ফাইলগুলির জন্য: এর 666 - 002অর্থ 664 যার অর্থ গ্রুপ প্রভাবিত হয় না।
এসিভি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.