সুডো ব্যবহারকারীর কাছ থেকে একটি কমান্ড অবরোধ করুন


10

আমার রুট পাসওয়ার্ড পরিবর্তন করতে আমার প্রশাসকের দরকার নেই। আমি চাই না যে কোনও সুডো ব্যবহারকারী এই আদেশটি কার্যকর করবেন:

sudo passwd $root

আমি নিম্নলিখিত কমান্ডটি ব্যবহার করে এটি sudoers ফাইলে চেষ্টা করেছি:

%sudo ALL=(ALL) ALL, !/usr/bin/passwd $root

আমি কীভাবে এটি ব্লক করতে পারি?


আপনি কি আপনার সিস্টেমে একাধিক সুডো-সক্ষম ব্যবহারকারী রয়েছেন? অথবা অন্য কিছু? দয়া করে কোনও নতুন তথ্য সরবরাহ করতে প্রশ্নটি সম্পাদনা করুন।
এডউইন

উত্তর:


15

Sudoers ম্যানুয়াল অনুসারে :

   It is generally not effective to "subtract" commands from ALL using the
   ’!’ operator.  A user can trivially circumvent this by copying the
   desired command to a different name and then executing that.  For
   example:

       bill        ALL = ALL, !SU, !SHELLS

   Doesn’t really prevent bill from running the commands listed in SU or
   SHELLS since he can simply copy those commands to a different name, or
   use a shell escape from an editor or other program.  Therefore, these
   kind of restrictions should be considered advisory at best (and
   reinforced by policy).

এজন্য আপনার sudoers নীতি কাজ করে না।

আপনি যদি ব্যবহারকারীকে মূল অনুমতি পেতে এবং তার পাসওয়ার্ড পরিবর্তন করতে বাধা দিতে চান তবে এই পদ্ধতিটি ব্যবহার করে দেখুন:

  • আপনার sudoers এই নির্দেশাবলী রয়েছে অনুমান করে:

     root    ALL=(ALL:ALL) ALL
     %sudo   ALL=(ALL:ALL) ALL
    
  • আপনার ব্যবহারকারীর নামটি ধরে নেওয়া foo, তার গ্রুপগুলি fooএবং sudogroupsকমান্ড আউটপুট হল:

    foo sudo
    
  • গোষ্ঠী fooথেকে ব্যবহারকারীকে সরান sudo: এর gpasswd -d foo sudoপরে ব্যবহারকারী foosudo দিয়ে কোনও কমান্ড চালাতে পারে না।

  • Sudoers ফাইল সম্পাদনা করুন। এই আদেশটি ব্যবহার করুন:

    sudo visudo -f /etc/sudoers.d/foo
    
  • ব্যবহারকারীর fooঅনুমতি নির্ধারণ করুন , উদাহরণস্বরূপ:

    foo ALL=/usr/bin, !/usr/bin/passwd, !/usr/bin/su
    

    এর অর্থ হল যে ব্যবহারকারীর fooডিরেক্টরিতে এবং কমান্ড /usr/bin/ব্যতীত কোনও কমান্ড চালাতে পারে । দ্রষ্টব্য: যদি ব্যবহারকারী তার পাসওয়ার্ড পরিবর্তন করতে চান তবে কমান্ডটি চালাবেন ।passwdsufoopasswdsudo

  • ব্যবহারকারীর fooঅনুমতিের আরেকটি উদাহরণ :

    foo ALL =/usr/bin, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
    

    এর অর্থ হল যে ব্যবহারকারীর fooডিরেক্টরিতে কোনও কমান্ড চালাতে পারে /usr/bin/এবং সমস্ত মেশিনে রুট ব্যতীত কারও পাসওয়ার্ড পরিবর্তন করার অনুমতি দেওয়া হয়।

আপনি আদেশের গ্রুপগুলি সংজ্ঞায়িত Cmnd_Aliasesকরে "অনুমতিগুলির স্তর" তৈরি করে সংজ্ঞায়িত করতে পারেন। আপনি sudoers ম্যানুয়াল এর উদাহরণ বিভাগে দরকারী উদাহরণ খুঁজে পেতে পারেন , এবং sudoers ব্যবহার সম্পর্কে একটি দরকারী লিঙ্ক এখানে ।


আমার foo ALL=/usr/bin/*, !/usr/bin/passwdকোনও ধারণা করতে হবে কেন এটি কেন?
ক্লিউরেট

-1

এর মাধ্যমে কমান্ড ওরফে যুক্ত করুন visudo:

Cmnd_Alias PASSWD=/usr/bin/passwd
Cmnd_Alias SU=/bin/su

এর মাধ্যমে সীমাবদ্ধতা যুক্ত করুন visudo:

%nopasswdgroup ALL = ALL, !PASSWD, !SU

নোপাসডডগ্রুপ নামে পরিচিত গ্রুপটিতে ব্যবহারকারী যুক্ত করুন:

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