আমি কীভাবে একটি পাসওয়ার্ড ছাড়াই নির্দিষ্ট sudo কমান্ডগুলি চালাব?


211

একটি নির্দিষ্ট মেশিনে আমাকে প্রায়শই sudoএখন এবং পরে কমান্ড চালানো দরকার । sudoবেশিরভাগ ক্ষেত্রে পাসওয়ার্ড দেওয়ার ক্ষেত্রে আমি ভাল আছি ।

তবে পাসওয়ার্ড না দিয়েই চালাতে চাই এমন তিনটি sudoকমান্ড রয়েছে :

  • sudo reboot
  • sudo shutdown -r now
  • sudo shutdown -P now

আমি কীভাবে পাসওয়ার্ড সুরক্ষা থেকে এই আদেশগুলি বাদ দিতে পারি sudo?


উত্তর:


283

NOPASSWDনির্দেশ ব্যবহার করুন

আপনি NOPASSWDআপনার /etc/sudoersফাইলটিতে নির্দেশিকা ব্যবহার করতে পারেন ।

যদি আপনার ব্যবহারকারীকে ডাকা হয় userএবং আপনার হোস্টকে বলা হয় hostআপনি এই লাইনগুলিতে যুক্ত করতে পারেন /etc/sudoers:

user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot

এটি ব্যবহারকারীর কোনও পাসওয়ার্ড না userদিয়ে কাঙ্ক্ষিত কমান্ডগুলি চালনার অনুমতি দেবে host। অন্যান্য সমস্ত sudoএড কমান্ডগুলির জন্য এখনও একটি পাসওয়ার্ড প্রয়োজন।

কমান্ড উল্লেখিত sudoersফাইল নয় fully qualified হওয়া (অর্থাত কমান্ড সঠিক পথটি ব্যবহার চালানোর জন্য) বর্ণনা অনুযায়ী sudoersman পৃষ্ঠা । আপেক্ষিক পথ সরবরাহ করা একটি সিনট্যাক্স ত্রুটি হিসাবে বিবেচিত হয়।

যদি কমান্ডটি একটি চলমান /চরিত্রের সাথে শেষ হয় এবং কোনও ডিরেক্টরিতে নির্দেশ করে তবে ব্যবহারকারী সেই ডিরেক্টরিতে কোনও কমান্ড চালাতে সক্ষম হবেন (তবে এতে কোনও উপ-ডিরেক্টরিতে নয়)। নিম্নলিখিত উদাহরণে, ব্যবহারকারী userডিরেক্টরিতে যে কোনও কমান্ড চালাতে পারবেন /home/someuser/bin/:

user host = (root) NOPASSWD: /home/someuser/bin/

দ্রষ্টব্য: সর্বদা আপনার নিজেরাই সিস্টেম থেকে লক না হয়ে থাকেন তা নিশ্চিত করতে ফাইলটি visudoসম্পাদনা sudoersকরার জন্য কমান্ডটি ব্যবহার করুন - আপনি যদি ভুলবশত sudoersফাইলটিতে কোনও ভুল লিখে থাকেন তবেই । visudoএকটি অস্থায়ী অবস্থান আপনার পরিবর্তিত ফাইলটির জন্য সংরক্ষণ করতে হবে হবে শুধুমাত্র বাস্তব ওভাররাইট sudoersফাইল যদি পরিবর্তিত ফাইলটির জন্য ত্রুটি ছাড়া পার্স করা যাবে না।

/etc/sudoers.dপরিবর্তনের পরিবর্তে ব্যবহার করা হচ্ছে/etc/sudoers

/etc/sudoersফাইল সম্পাদনা করার বিকল্প হিসাবে আপনি দুটি লাইন /etc/sudoers.dযেমন একটি নতুন ফাইলে যুক্ত করতে পারেন /etc/sudoers.d/shutdown। এটি sudoঅধিকারগুলিতে বিভিন্ন পরিবর্তনগুলি পৃথক করার একটি দুর্দান্ত উপায় এবং sudoersসহজ আপগ্রেডের জন্য মূল ফাইলটিকে অচ্ছুত করে দেয়।

দ্রষ্টব্য: আবারও আপনাকে visudoনিজেরাই সিস্টেম থেকে লক না করে দেওয়ার জন্য ফাইলটি সম্পাদনা করতে কমান্ডটি ব্যবহার করা উচিত :

sudo visudo -f /etc/sudoers.d/shutdown 

এটি স্বয়ংক্রিয়ভাবেও নিশ্চিত করে যে নতুন ফাইলের মালিক এবং অনুমতিগুলি সঠিকভাবে সেট করা আছে।

যদি sudoersগন্ডগোল হয়

আপনি যদি visudoনিজের ফাইলগুলি সম্পাদনা করতে ব্যবহার না করেন এবং দুর্ঘটনাক্রমে /etc/sudoersকোনও ফাইল বিশৃঙ্খলা বা গণ্ডগোল করে ফেলে থাকেন /etc/sudoers.dতবে আপনি লক আউট হয়ে যাবেন sudo

সমাধানটি pkexecহ'ল বিকল্পগুলির সাহায্যে ফাইলগুলি ফিক্স করা যায় sudo

ঠিক করতে /etc/sudoers:

pkexec visudo

ঠিক করতে /etc/sudoers.d/shutdown:

pkexec visudo -f /etc/sudoers.d/shutdown

যদি কোনও sudoersফাইলের জন্য মালিকানা এবং / অথবা অনুমতিগুলি ভুল হয় তবে ফাইলটি এড়ানো হবে sudoযাতে আপনিও নিজেকে এই পরিস্থিতিতে লকড থাকতে পারেন। আবার, আপনি এটি pkexecঠিক করতে ব্যবহার করতে পারেন ।

সঠিক অনুমতিগুলি এর মতো হওয়া উচিত:

$ ls -l /etc/sudoers.d/shutdown 
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown

মালিকানা এবং অনুমতিগুলিpkexec ঠিক করতে এই জাতীয় ব্যবহার করুন :

pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown

2
দুটি লাইন এই দুটি কমান্ডকে বিশেষভাবে উল্লেখ করে। যদি userঅন্যভাবে প্রদত্ত sudoঅধিকারগুলি না হয় তবে এই ব্যবহারকারীর দ্বারা অন্য কোনও কমান্ডও করা যাবে না। দেখুন man sudoএবং man sudoers
এমজিডি

4
@StanKurdziel আমি Mac OS X এর ইয়োসেমাইট এই লাইন দিয়ে চেষ্টা এবং এটি জরিমানা কাজ: mgd ALL=(root) NOPASSWD: /var/root/test। আমি ব্যবহারকারী mgdএবং এর ALLঅর্থ "সমস্ত হোস্ট থেকে"/var/root/testএকটি সহজ "হ্যালো ওয়ার্ল্ড" শেল অনুমতিসহ স্ক্রিপ্ট হল: -rwx------ 1 root wheel 27 12 Jun 09:54 /var/root/test। আমি সিস্টেমে অন্য কোনও পরিবর্তন করিনি ।
এমজিডি

2
hostSudoers ফাইলের মধ্যে কি আছে ?
ব্যবহারকারী 106563

1
এটি কোনও উত্তর নয়, এটি NOPASSWD নির্দেশনা সম্পর্কে প্রায় সম্পূর্ণ গাইড। ধন্যবাদ.
এরে

1
@ মিশেল দয়া করে ম্যান পৃষ্ঠাটি পড়ুন। সব কিছুই সেখানে লেখা আছে। এটি উদ্ধৃত করার জন্য: তবে আপনি কমান্ড লাইন আর্গুমেন্টগুলি (ওয়াইল্ডকার্ড সহ) নির্দিষ্ট করতে পারেন। পর্যায়ক্রমে, আপনি নির্দেশ করতে পারেন যে কমান্ডটি কেবল কমান্ড লাইন আর্গুমেন্ট ছাড়াই চলতে পারে।
এমজিডি

3

দুঃখিত তবে এই সম্পর্কে কিছু বিভ্রান্তি রয়েছে এবং কিছু সত্যই জটিল উত্তর রয়েছে, যে আমার মনে হয় যে কেউ এখানে ভুল বোঝে এবং পাগল করার আগে আমাকে এখানে ভারী করা উচিত।

ভিসুডো ব্যবহার করে !!

কনফিগারেশনে নিম্নলিখিত লাইনগুলি যুক্ত করুন:

ALL ALL=NOPASSWD: /sbin/reboot,/sbin/shutdown

এটি কোনও ব্যবহারকারীর কাছ থেকে নির্ধারিত কোনও পরামিতি সহ কমান্ডগুলি, রিবুট এবং শাটডাউনকে মঞ্জুরি দেয়।

দয়া করে স্ট্যাকেক্সচেঞ্জ করুন, কেবল সহজ সংক্ষিপ্ত উত্তর দিন।

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