الفرق بين su و sudo وكيفية تكوين sudo في لينكس

نظام لينكس أكثر أمانًا من أي منافس له. أحد الطرق لـ تنفيذ الأمان في لينكس هو سياسة إدارة المستخدم وصلاحية المستخدم، حيث لا يتم تفويض المستخدمين العاديين للقيام بأي عمليات في النظام.

إذا كان المستخدم العادي بحاجة لتنفيذ أي تغييرات على مستوى النظام، يجب عليه استخدام أمر “su” أو “sudo”.

Linux: su v/s sudo

ملاحظة – هذا المقال ينطبق بشكل أكبر على التوزيعات القائمة على أوبونتو، ولكنه أيضًا قابل للتطبيق على معظم توزيعات لينكس الشهيرة.

فارق “su” مقابل “sudo”

يُجبرك “su” على مشاركة كلمة مرور الجذر مع مستخدمين آخرين بينما يمكن لـ “sudo” تنفيذ أوامر النظام بدون كلمة مرور الجذر. “sudo” يسمح لك باستخدام كلمة المرور الخاصة بك لتنفيذ أوامر النظام، أي تفويض مسؤولية النظام بدون كلمة مرور الجذر.

ما هو “sudo”؟

“sudo” هو برنامج جذري setuid، الذي ينفذ أوامر الجذر نيابة عن المستخدمين المخولين ويجب على المستخدمين إدخال كلمة المرور الخاصة بهم لتنفيذ أمر النظام تليها “sudo”.

من يمكنه تنفيذ “sudo”؟

يمكننا تشغيل “/usr/sbin/visudo” لإضافة/إزالة قائمة المستخدمين الذين يمكنهم تنفيذ “sudo”.

$ sudo /usr/sbin/visudo

A screen shot of ‘/usr/sbin/visudo‘ file, looks something like this:

القائمة sudo تبدو كما في السلسلة أدناه، بشكل افتراضي:

root ALL=(ALL) ALL

ملاحظة: يجب أن تكون متصلاً بكامل الصلاحيات الجذور لتعديل ملف /usr/sbin/visudo.

السماح بوصول sudo

في العديد من الحالات، يجد المسؤول النظام، خاصة إذا كان جديدًا في هذا المجال، السلسلة “root ALL=(ALL) ALL” كنموذج ويمنح وصولًا غير مقيد للآخرين وهذا قد يكون ضارًا للغاية.

تعديل ملف ‘/usr/sbin/visudo’ ليصبح شيئًا مشابه للنمط أدناه قد يكون خطيرًا حقًا، ما لم تكن تثق تمامًا بجميع المستخدمين المدرجين.

root ALL=(ALL) ALL
adam ALL=(ALL) ALL
tom ALL=(ALL) ALL
mark ALL=(ALL) ALL

معلمات sudo

A properly configured ‘sudo‘ is very flexible and number of commands that needs to be run may be precisely configured.

صيغة السطر ‘sudo’ المكونة هي:

User_name Machine_name=(Effective_user) command

يمكن تقسيم الصيغة أعلاه إلى أربع أجزاء:

  1. اسم_المستخدم: هذا هو اسم مستخدم ‘sudo’.
  2. اسم_الجهاز: هذا هو اسم الجهاز المستضيف، الذي يكون به الأمر ‘sudo’ صالحًا. مفيد عندما يكون لديك العديد من أجهزة الجهاز.
  3. (المستخدم_الفعّال): المستخدم الفعّال الذي يُسمح له بتنفيذ الأوامر. يتيح لك هذا العمود السماح للمستخدمين بتنفيذ الأوامر النظامية.
  4. الأمر: أمر أو مجموعة من الأوامر التي قد يقوم بها المستخدم.

اقتراح القراءة: 10 تكوينات مفيدة لـ Sudoers لضبط ‘sudo’ في نظام Linux

بعض الحالات، وخطوتها المناسبة ‘sudo‘:

السؤال 1. لديك مستخدم mark الذي يعمل كمسؤول قواعد بيانات. من المفترض أن تمنحه كل الوصول إلى خادم قواعد البيانات (beta.database_server.com) فقط، وليس على أي جهاز.

للحالة أعلاه يمكن كتابة السطر ‘sudo‘ بالشكل التالي:

mark beta.database_server.com=(ALL) ALL

السؤال 2. لديك مستخدم ‘tom‘ الذي من المفترض أن ينفذ أمر النظام بصفته مستخدمًا آخر غير root على نفس خادم قواعد البيانات، كما هو موضح أعلاه.

للحالة أعلاه يمكن كتابة السطر ‘sudo‘ بالشكل التالي:

mark beta.database_server.com=(tom) ALL

السؤال 3. لديك مستخدم ‘cat‘ بصفة sudo والذي من المفترض أن يشغل الأمر ‘dog‘ فقط.

لتنفيذ الحالة أعلاه، يمكن كتابة ‘sudo’ كالتالي:

mark beta.database_server.com=(cat) dog

السؤال 4. ماذا إذا كان يجب منح المستخدم العديد من الأوامر؟

إذا كان عدد الأوامر التي يجب على المستخدم تشغيلها أقل من 10، يمكننا وضع جميع الأوامر جنبًا إلى جنب، مع مسافة بيضاء بينها، كما هو موضح أدناه:

mark beta.database_server.com=(cat) /usr/bin/command1 /usr/sbin/command2 /usr/sbin/command3 ...

إذا كانت هذه القائمة من الأوامر متفاوتة إلى حد ما، حيث لا يكون من الممكن حقًا كتابة كل أمر يدويًا، فإننا بحاجة إلى استخدام المستعارات. المستعارات! نعم، هي أداة Linux حيث يمكن الرجوع إلى أمر طويل أو قائمة من الأوامر باستخدام كلمة مفتاحية صغيرة وسهلة.

A few alias Examples, which can be used in place of entry in ‘sudo‘ configuration file.

User_Alias ADMINS=tom,jerry,adam
user_Alias WEBMASTER=henry,mark
WEBMASTERS WEBSERVERS=(www) APACHE
Cmnd_Alias PROC=/bin/kill,/bin/killall, /usr/bin/top

يمكن تحديد مجموعات النظام، بدلاً من المستخدمين، الذين ينتمون إلى تلك المجموعة مع إضافة ‘٪’ كالتالي:

%apacheadmin WEBSERVERS=(www) APACHE

س5. ماذا عن تنفيذ أمر ‘sudo’ بدون إدخال كلمة المرور؟

يمكننا تنفيذ أمر ‘sudo’ بدون إدخال كلمة المرور من خلال استخدام العلم ‘NOPASSWD’.

adam ALL=(ALL) NOPASSWD: PROCS

هنا يمكن للمستخدم ‘آدم’ تنفيذ جميع الأوامر المستعارة تحت “PROCS”، بدون إدخال كلمة المرور.

اقرأ أيضًا: دع Sudo يهينك عند إدخال كلمة مرور خاطئة

“sudo” يوفر لك بيئة قوية وآمنة مع الكثير من المرونة مقارنة بـ ‘su’. علاوة على ذلك، تكوين “sudo” سهل. بعض توزيعات Linux لديها “sudo” مفعلة افتراضيًا بينما يحتاج معظم توزيعات اليوم إلى تمكينه كإجراء أمني.

لإضافة مستخدم (بوب) إلى sudo، ما عليك سوى تشغيل الأمر أدناه بصلاحيات root.

adduser bob sudo

هذا كل شيء الآن. سأكون هنا مرة أخرى مع مقال آخر مثير للاهتمام. حتى ذلك الحين، استمروا في متابعتنا والبقاء على اتصال مع Tecmint. لا تنسوا تقديم رأيكم القيم لنا في قسم التعليقات الخاص بنا.

Source:
https://www.tecmint.com/su-vs-sudo-and-how-to-configure-sudo-in-linux/