sudoers - সহজ ব্যাখ্যা অনুরোধ করা হয়েছে


24

যতবারই আমি এমন কোনও কিছু চালাতে সক্ষম হতে চাই যার জন্য আমাকে sudoerঅনেক বার হতে হবে, /etc/sudoersআমাকে লেখার যথাযথ উপায় কী তা আবার আমাকে স্মরণ করিয়ে দেওয়ার জন্য ফর্ম্যাট করার জন্য আমার গুগল প্রয়োজন ।

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

  1. redsandro ALL=NOPASSWD:/path/to/command
  2. redsandro ALL=(ALL) NOPASSWD:/path/to/command
  3. redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command

এছাড়াও, সব কি ALLজন্য? একটি ব্যবহারকারী, একটি কমান্ড, তবুও ALLকিওয়ার্ডটি তিনবার ব্যবহার করা দরকার ? আমি কি এই ভুল করছি?

অবশ্যই, বাদ NOPASSWD:তোলে আপনি যদি আপনার পাসওয়ার্ড আগে আপনি কমান্ড চালানোর জন্য অনুমতি দেওয়া হয়েছে প্রবেশ, কিন্তু বিভ্রান্তির এক বিন্দু ব্যবহার করা হয় =এবং :চূড়ান্ত কমান্ড লাইন বিষয় হয় এর prepended করা যেতে পারে যে জন্য, =, :, , অথবা ), অনুরূপ শব্দার্থবিজ্ঞানের জন্য বিভ্রান্তিকর ব্যাকরণ।


3
আমি sudoersসিনট্যাক্স নিয়ে সত্যই হতাশও বোধ করি । ম্যান পৃষ্ঠাটি পড়া আরও হতাশাব্যঞ্জক: এটি তথাকথিত সংক্ষিপ্ত এবং সঠিক EBNF ভাষার বর্ণনা দেয়, উদাহরণগুলি সম্পূর্ণ দীর্ঘ। সুতরাং আমি এই ফাইলটি সম্পর্কে এখানে এতগুলি থ্রেড পেয়ে অবাক হই না।
এম-রিচ

1
এর জন্য ধন্যবাদ. আমি এই প্রশ্নটি জিজ্ঞাসা করতে চাইছি যখনই আমি কয়েক বছর আগে একটি sudoers ফাইল জুড়ে এসেছি :-)
vahidg

উত্তর:


35

এটি কেবল একজন ব্যবহারকারী এবং কমান্ডের চেয়ে বেশি:


redsandro host=(user:group) tag:commands
  • hostএই লাইনটি বৈধ হওয়ার জন্য হোস্টের নাম উল্লেখ করে। আপনি যতক্ষণ না অ্যাসুডোয়ার্স ফাইলটি বিভিন্ন হোস্টের মধ্যে ভাগ করে না নিচ্ছেন ALLযার জন্য বিশেষ মানের অর্থ "সমস্ত হোস্ট" অর্থ ব্যবহার করে বিভিন্ন নিয়মের প্রয়োজন একটি ভাল পছন্দ।

  • user-uকমান্ডটি চালনার জন্য আপনি কোন বিকল্পগুলি ব্যবহার করতে পারবেন তা নির্দিষ্ট করে । যদি আপনি এটি বাদ দেন তবে আপনি -uবিকল্পটি ব্যবহার করতে পারবেন না ।

  • group-gবিকল্পগুলির সাথে আপনি কোন গ্রুপগুলি ব্যবহার করতে পারবেন তা সুনির্দিষ্ট করে । যদি আপনি এটি বাদ দেন তবে আপনি -gবিকল্পটি ব্যবহার করতে পারবেন না ।

উভয়ই userএবং "সমস্ত ব্যবহারকারী / গোষ্ঠী" হিসাবে groupবিশেষ মান বোঝেALL

আপনি যদি পুরো (user:group)জিনিসটি বাদ দেন তবে আপনি ব্যবহার করতে পারবেন না -uএবং -gকেবল কমান্ডটি রুট হিসাবে চালান।

  • tag যেমন আপনাকে কিছু বিকল্প নির্দিষ্ট করতে দেয় NOPASSWD

সুতরাং আপনার প্রথম উদাহরণের সাহায্যে আপনি কমান্ডটি রুট হিসাবে চালাতে পারেন তবে ব্যবহার করতে পারবেন না -uএবং -gএটি অন্য কোনও ব্যবহারকারী বা গোষ্ঠী হিসাবে চালাতে পারবেন ।

উদাহরণস্বরূপ ২. আপনি কমান্ডটি রুট হিসাবে চালাতে পারেন বা -uএটি অন্য কোনও ব্যবহারকারীর মতো চালাতে পারেন।

৩. দিয়ে আপনি কমান্ডটি রুট হিসাবে ব্যবহার করতে পারেন -uবা ব্যবহার -gকরতে পারেন বা কমান্ডটি অন্য কোনও ব্যবহারকারী বা গোষ্ঠী হিসাবে চালাতে পারেন ।


আমি ঠিক এটিই খুঁজছিলাম। আমি আপনার উত্তর গ্রহণ করেছি, এবং আপনার প্রশংসার জন্য আপনাকে ধন্যবাদ।
রেডসান্দ্রো

1
ফাইনাল চিন্তা, আমি ব্যবহার করতে পারেন 127.0.0.1বা localhostযেমন hostতুচ্ছ অতিরিক্ত নিরাপত্তার জন্য?
রেডসান্দ্রো

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

1
ধন্যবাদ। আমার জন্য কোনও হোস্টনাম নেই, বিশেষত যেহেতু আমি একাধিক মেশিনে sudoersfile অনুলিপি করতে সক্ষম হতে চাই। ALLএটাই.
রেডসান্দ্রো

9

একে একে আলাদা করে নিই:
redsandro ALL=(ALL:ALL) NOPASSWD:/path/to/command

redsandro আমরা ব্যবহারকারীর নাম যা অনুমতি দিচ্ছি। এটি একটি গোষ্ঠীতে প্রয়োগ করার জন্য সামনে একটি% রাখুন।

এই নিয়মের সমস্ত নাম is সুডোয়াররা কেবল বৈশ্বিক অনুমতি প্রদানের চেয়ে আরও অনেক কিছু করতে পারে। এটি যদিও জটিল হয়ে ওঠে।

= কোন ব্যাখ্যা প্রয়োজন

সমস্ত: সমস্ত পাঠ্য (যারা_তিনি_রুন_সী_ কী: কী_গ্রুপ_ত_রুন_এটি_)) এইভাবে আপনি একটি কমান্ড চালানোর অনুমতি দিতে পারবেন তবে কেবলমাত্র নির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীর প্রসঙ্গে।

নোপাএসডাব্লুডি: এটি পাসওয়ার্ড প্রম্পটটি বন্ধ করতে বলে।

/ পাথ / টু / কমান্ড আপনাকে নির্দিষ্ট কমান্ডগুলি path_to_commmand, অন্য_কম্যান্ড নির্দিষ্ট করতে দেয়

মনে রাখার বিষয়টি হ'ল sudo মূলত বাড়ির ব্যবহারকারীরা মূল সুবিধার দিকে এগিয়ে যাওয়ার জন্য ব্যবহৃত হয়, এটি নির্দিষ্ট কমান্ডের অ্যাক্সেসকে আরও বেশি দানাদারভাবে নিয়ন্ত্রণ করতে ব্যবহৃত হতে পারে এবং ব্যবহৃত হয়।


1
অতিরিক্ত %এবং , another_commandনোট জন্য ধন্যবাদ । %wheelফেডোরা ভিত্তিক ডিস্ট্রোতে এখন লাইনটি আমি বুঝতে পারি ।
রেডসান্দ্রো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.