ما هو الفرق بين سودو وسو. تحرير ملف sudoers على Ubuntu وCentOS. تحرير ملف sudoers

09.10.2021

يعرف كل مالك لجهاز خادم أنه لا ينبغي عليك الوثوق بالوصول الكامل (الجذر) للجميع.
ونحن نعرف عواقب بعض هذه اللحظات. و لجعل الحياة أسهل، نواة يونكستم تنفيذ الفريق sudo.
أداة تمنح المستخدمين حقوق تنفيذ الأوامر بامتيازات المستخدم المتميز. على سبيل المثال، يسمح للمسؤولين المبتدئين باستخدام أوامر معينة لأداء المهام ضمن اختصاصهم.

جذر المستخدم الخارق- حساب مسؤول في Unix (بالإضافة إلى نظام التشغيل المشابه لـ Unix) بالمعرف 0، والذي يسمح له بتنفيذ جميع الأوامر دون استثناء.

تم التثبيت من المستودعات باستخدام مدير الحزم: الرابطة بين الحصول على تثبيت سودوأو يم تثبيت سودو.

تكوين سودويسمح لك بتحديد مستخدم ومجموعة مستخدمين ومضيفين وما إذا كانت كلمة المرور مطلوبة عند التنفيذ أم لا.
على سبيل المثال، تنفيذ أمر نيابة عن مستخدم آخر.

يطلق قائد منتصف الليلمع حقوق المستخدم المتميز

فتح في محرر النصوص نانوملف nginx.configمن المستخدم انطون.

Sudo -u anton nano /etc/nginx/nginx.config

ملف التكوين sudoersالموجود في الدليل /إلخ/.
لتحرير ملف التكوين استخدم الأمر com.visudo.

لا يجب عليك تغيير الملف /etc/sudoers باستخدام محرر النصوص، لأن... عند الحفظ، لا يتم التحقق من بناء الجملة، كما هو الحال مع com.visudo.

قالب حقوق المستخدم في ملف التكوين /etc/sudoers

المستخدم/%group ALL/host_name/+machine_group = ALL/comma-separated_commands (معلمات إضافية):

يسمح للمستخدم anton بتشغيل جميع الأوامر على جميع الأجهزة المضيفة (مع المطالبة بكلمة المرور)

انطون الكل = (الكل) الكل

السماح لمجموعة المسؤولين بتشغيل كافة الأوامر على جهاز Alpha (دون إدخال كلمة مرور)

%admins Alpha = ALL NOPASSWD: ALL

افتراضيًا، عند تنفيذ الأوامر عبر Sudo، يُطلب منك تسجيل الدخول باستخدام كلمة مرور. يمكنك تعطيل الترخيص باستخدام المعلمة NOPASSWD)

مقدمة من Sudo وتجميع الأوامر في أسماء مستعارة.
دمج أوامر العمل مع الشبكة في كيان واحد الشبكات

Cmnd_Alias ​​​​NETWORKING = /sbin/route، /sbin/ifconfig، /bin/ping، /sbin/dhclient، /usr/bin/net، /sbin/iptables، /usr/bin/rfcomm، /usr/bin/wvdial ، / sbin/iwconfig، /sbin/mii-tool

يمكن استخدامها، على سبيل المثال، ل تقييد الحقوقالمستخدم أو المجموعة لتنفيذ الأوامر التي تؤثر على الخدمة.

السماح باستخدام كافة الأوامر بواسطة مستخدم Egor ومجموعة devops، باستثناء تلك الموجودة في مجموعة NETWORKING

إيجور ALL = ALL، !NETWORKING %devops ALL = ALL، !NETWORKING

لقد ألقينا نظرة على بعض وظائف Sudo للحصول على معلومات مفصلة عن الاستخدام صفحات الرجلمن توزيعك

يعد فصل حقوق الوصول أحد أهم نماذج الأمان المطبقة في أنظمة التشغيل Linux وUnix. يعمل المستخدمون العاديون بحقوق محدودة؛ وهذا يقلل من مدى تأثيرهم على بيئتهم وعلى نظام التشغيلعمومًا.

يتمتع المستخدم الجذر بامتيازات المستخدم المتميز. لا يحتوي حساب المسؤول هذا على القيود الموجودة على حسابات المستخدمين العادية. يمكن للمستخدمين الآخرين تشغيل الأوامر باستخدام حقوق الجذرفي عدد من الحالات الفردية.

يوضح لك هذا الدليل كيفية نقل امتيازات الجذر بشكل صحيح وآمن إلى نظامك.

ملحوظة: تم إجراء هذا البرنامج التعليمي على خادم أوبونتو 12.04، ولكن الأكثر حداثة توزيعات لينكسسوف تتصرف بطريقة مماثلة.

لإكمال البرنامج التعليمي، يجب عليك أولاً إكمال الإعداد الأولي للخادم:

قم بتسجيل الدخول إلى الخادم كمستخدم غير جذر.

كيفية الحصول على حقوق الجذر

هناك ثلاث طرق رئيسية للحصول على امتيازات المستخدم المتميز، والتي تختلف في صعوبتها.

تسجيل الدخول كجذر

أسهل طريقة، بالطبع، هي تسجيل الدخول كجذر.

في حالة الاتصال عبر SSH، قم بتوفير عنوان IP أو اسم المضيف:

ssh root@IP_address_or_domain

عند المطالبة، أدخل كلمة مرور الجذر الخاصة بك.

أمر سو

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

ولذلك، فإن النظام لديه الأمر su، الذي يسمح بذلك للمستخدم العاديالحصول على حقوق الجذر في أي وقت.

ملحوظة: الأمر su قصير للمستخدم البديل.

إذن للتجذير، فقط اكتب:

سيطلب النظام كلمة مرور المستخدم الجذر، وبعد ذلك سيفتح الوصول إلى جلسة shell الخاصة بالمستخدم الجذر.

بعد الانتهاء من جميع المهام التي تتطلب حقوق الجذر، يمكنك العودة إلى الجلسة السابقة:

أمر سودو

الطريقة الأخيرة للحصول على امتيازات الجذر هي باستخدام الأمر sudo.

يسمح لك الأمر Sudo بتشغيل أوامر محددة كجذر دون الحاجة إلى فتح جلسة جديدة.

سودو Command_to_execute

ملحوظة: على عكس su، لا يطلب الأمر sudo كلمة مرور الجذر، بل يطلب كلمة مرور المستخدم الذي يستدعي الأمر.

لأسباب أمنية، لا يتوفر الأمر sudo بشكل افتراضي، ويجب تكوين الوصول إليه. إذا اتبعت الدليل على الإعداد الأوليالخادم، أنت تعرف بالفعل كيفية القيام بذلك.

ما هو فيسودو؟

تم تكوين الأمر Sudo باستخدام الملف /etc/sudoers.

مهم!لا تقم أبدًا بتحرير هذا الملف باستخدام محرر نص عادي! للقيام بذلك يجب عليك استخدام visudo.

يمكن أن يؤدي بناء الجملة غير الصحيح الذي تمت إضافته إلى هذا الملف إلى قطع توزيع الحقوق بين المستخدمين بشكل كامل. ولذلك، يتم استخدام الأمر visudo للعمل مع هذا الملف.

يفتح الأمر visudo ملفًا في محرر نصوص عادي، لكنه يتحقق من تركيبه عند حفظ الملف. وهذا يتجنب أخطاء التكوين.

عادةً ما يفتح visudo الملف /etc/sudoers في محرر vi. على نظام Ubuntu، يستخدم visudo تقنية nano.

لتكوين الأمر visudo لاستخدام vi على نظام Ubuntu، قم بتشغيل الأمر:

بدائل تحديث سودو - محرر التكوين

هناك 3 اختيارات للمحرر البديل (توفير /usr/bin/editor).
حالة أولوية مسار التحديد
————————————————————
* 0 / بن / نانو 40 الوضع التلقائي
1/بن/نانو 40 الوضع اليدوي
2 /usr/bin/vim.basic 30 الوضع اليدوي
3 /usr/bin/vim.tiny 10 الوضع اليدوي

حدد الرقم المقابل لمحرر النصوص الذي تريد استخدامه.

في نظام CentOS، يمكن تغيير هذه القيمة عن طريق إضافة السطر التالي إلى ~/.bashrc:

تصدير EDITOR=/path/to/editor

لتحديث إعداداتك، أدخل:

لفتح /etc/sudoers، أدخل:

تحرير ملف sudoers

لذلك، في محرر النصوص الذي تختاره، سيتم فتح ملف sudoers على الشاشة.

فيما يلي معلمات الملف أنظمة أوبونتو 12.04 (يتم حذف الأسطر التي تم التعليق عليها، ويتم حفظ التغييرات التي تم إجراؤها أثناء الإعداد الأولي للخادم).

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

الإعدادات الافتراضية env_reset
الإعدادات الافتراضية Secure_path = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
جذر الكل = (الكل: الكل) الكل
العرض التوضيحي ALL=(الكل:الكل) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(الكل:الكل) الكل

المعلمات القياسية

السطر الأول، Defaults env_reset، يعيد تعيين البيئة الطرفية لإزالة كافة متغيرات المستخدم. يُستخدم هذا الإجراء الأمني ​​لإزالة التأثيرات الضارة المحتملة لمتغيرات البيئة من جلسة sudo.

المعلمة الثانية، Defaults Secure_path=...، تحدد المسار (PATH، dots نظام الملفات، حيث سيبحث نظام التشغيل عن التطبيقات) لعمليات sudo. وهذا يمنع استخدام مسارات المستخدم التي يحتمل أن تكون خطرة.

إعدادات حقوق المستخدم

يجب أن تكون المعلمات الثالثة والرابعة مألوفة لك. لقد أضفت السطر الرابع بنفسك، لكن ربما لم تفحصه بالتفصيل.

  • العرض التوضيحي ALL=(الكل:الكل) ALL
  • يحدد الحقل الأول اسم المستخدم الذي تريد التقديم عليه هذه القاعدةفي هذه الحالةهذا تجريبي).
  • الأول ALL يعني أن القاعدة ستنطبق على جميع المضيفين.
  • الكل الثاني يعني أن المستخدم المحدد يمكنه تشغيل الأوامر في جلسة أي مستخدم.
  • الكل الثالث يعني أن المستخدم المحدد يمكنه تشغيل الأوامر في أي مجموعة.
  • يشير الكل الأخير إلى أنه يجب تطبيق هذه القواعد على كافة الأوامر.

هذا يعني أنه يمكن لمستخدمي الجذر والتجريبي تشغيل جميع الأوامر باستخدام sudo باستخدام كلمة المرور الخاصة بهم.

إعدادات امتياز المجموعة

السطران الأخيران يشبهان إعدادات امتيازات المستخدم، لكنهما مسؤولان عن حقوق المجموعة.

تبدأ أسماء المجموعات بالرمز %.

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

القواعد المخصصة

بمجرد أن تتعرف على بناء جملة الملف الأساسي، حاول إنشاء بعض القواعد بنفسك.

إنشاء الأسماء المستعارة

يمكن تنظيم ملف sudoers بسهولة أكبر باستخدام أسماء مستعارة مختلفة.

على سبيل المثال، يمكنك إنشاء ثلاث مجموعات مستخدمين مختلفة بحقوق مدمجة:

User_Alias ​​​​GROUPONE = آبي، برنت، كارل
User_Alias ​​​​GROUPTWO = برنت، دوريس، إريك،
User_Alias ​​​​GROUPTHREE = دوريس، فيليسيا، غرانت

يجب أن تبدأ أسماء المجموعات بحرف كبير. بعد ذلك، يمكنك منح مستخدمي GROUPTWO الحق في تغيير قاعدة بيانات apt-get:

GROUPTWO ALL = /usr/bin/apt-get update

إذا لم تحدد القاعدة مستخدمًا والمجموعة، فسيقوم sudo افتراضيًا بالجذر.

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

Cmnd_Alias ​​​​POWER = /sbin/shutdown، /sbin/halt، /sbin/reboot، /sbin/restart
المجموعة الثلاثة الكل = القوة

يحتوي الاسم المستعار لأمر POWER على أوامر لإيقاف تشغيل الجهاز وإعادة تشغيله.

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

Runas_Alias ​​​​WEB = www-data، Apache
المجموعة الكل = (الويب) الكل

الآن يمكن لأي مستخدم في مجموعة GROUPONE تنفيذ الأوامر في جلسات مستخدم www-data أو apache.

ملحوظة: تذكر أن القواعد التي تم إنشاؤها مسبقًا لديها المزيد أولوية عاليةفي حالة تعارض القواعد.

قواعد الحظر

هناك عدة طرق للتحكم في سلوك Sudo واستجابته للمكالمات.

على سبيل المثال، يعتبر الأمر Updateb مع الحزمة mlocate غير ضار نسبيًا. بحيث يمكن للمستخدم العادي القيام بذلك بامتيازات المستخدم المتميز دون إدخال كلمة مرور، يمكنك إنشاء القاعدة التالية:

المجموعة الكل = NOPASSWD: /usr/bin/updatedb

يعني أمر NOPASSWD أن النظام لن يطالب بكلمة مرور. يوجد أيضًا أمر PASSWD الذي يقوم بالسلوك المعاكس ويتم استخدامه بشكل افتراضي.

ينطبق NOPASSWD على القاعدة بأكملها ما لم يتجاوزها أمر PASSWD. على سبيل المثال، قد يبدو السطر كما يلي:

المجموعتان ALL = NOPASSWD: /usr/bin/updatedb، PASSWD: /bin/kill

أمر مفيد آخر هو NOEXEC، والذي يستخدم لمنع السلوك الخطير لبرامج معينة. على سبيل المثال، يمكن لبعض الأوامر، مثل less، استدعاء أوامر أخرى:

ينفذ هذا الأمر أي أمر بامتيازات أقل للمستخدم، الأمر الذي قد يكون خطيرًا للغاية.

ولمنع هذا السلوك يمكنك استخدام السطر التالي:

اسم المستخدم ALL = NOEXEC: /usr/bin/less

مزيد من المعلومات

يحتوي هذا القسم على مختلف نصائح مفيدةعلى العمل مع سودو.

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

Sudo -u run_as_user الأمر
أمر sudo -g run_as_group

افتراضيًا، يقوم Sudo بتخزين بيانات الاعتماد في محطة واحدة لفترة من الوقت. وهذا يعني أنك لن تضطر إلى إدخال كلمة المرور الخاصة بك مرة أخرى خلال هذه الفترة.

إذا كنت تريد إعادة ضبط هذا المؤقت لأسباب أمنية، فاستخدم الأمر:

لمعرفة حقوق المستخدم أدخل:

سيسرد هذا الأمر جميع الأذونات المحددة في ملف /etc/sudoers لمستخدم معين.

إذا حاول مستخدم عادي تشغيل أمر مسؤول بدون البادئة sudo، فلن يعمل الأمر. لتجنب الاضطرار إلى إعادة كتابة الأمر، استخدم دالة bash التي تكرر الأمر:

مزدوج علامة تعجبسوف يكرر الأمر الأخير.

خاتمة

لديك الآن المهارات الأساسية مع ملف sudoers وأذونات الجذر.

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

العلامات: ,

القليل عن Sudo نفسه، من ويكيبيديا. sudo(إنجليزي) المستخدم الخارق يفعل ، حرفيا "لأداء نيابة عن المستخدم الخارق") هو برنامج مصمم للمساعدة مسؤول النظاموالسماح لك بتفويض بعض الموارد المميزة للمستخدمين مع الاحتفاظ بسجل العمل. الفكرة الرئيسية هي منح المستخدمين أقل عدد ممكن من الحقوق، ولكن في نفس الوقت بالضبط ما هو ضروري لحل المهام المعينة.

يسمح الأمر sudo للمستخدمين بتشغيل الأوامر كمستخدمين جذر أو مستخدمين آخرين. القواعد التي يستخدمها Sudo لتحديد ما إذا كان سيتم منح الوصول موجودة في الملف /etc/sudoers؛ لغة كتاباتهم وأمثلة الاستخدام موصوفة بالتفصيل في sudoers(5).

لتحرير الملف /etc/sudoers، يجب عليك استخدام برنامج visudo، الذي يتحقق من بناء الجملة وبالتالي يتجنب الأخطاء في القواعد.

في معظم الحالات، التكوين الصحيح لـ sudo يجعل التشغيل كمستخدم متميز غير ضروري.

بشكل افتراضي، يتم تعطيل حساب الجذر في Ubuntu ولا يحتوي الجذر ببساطة على كلمة مرور. يتم تنفيذ جميع المهام الإدارية عبر Sudo. افتراضيًا، يُمنح حق تنفيذ sudo للمستخدم الأول الذي تم إنشاؤه أثناء التثبيت. جميع الآخرين مستخدمون عاديون بشكل افتراضي.

Sudo هي أداة مرنة للغاية تسمح لك بتكوين الحقوق لتنفيذ الإجراءات الإدارية لكل مستخدم على حدة. على سبيل المثال، اسمح لأحد الأشخاص بإعادة تشغيل الخادم، وامنح الآخر القدرة على تغيير حقوق الوصول إلى الملفات والمجلدات. افتح الملف /etc/sudoers. يمكن القيام بذلك إما عن طريق إصدار أمر لفتح الملف في محرر النصوص المفضل لديك، على سبيل المثال مثل هذا:

# نانو /etc/sudoers

أو باستخدام الأداة المساعدة visudo:
# رؤية

ستفتح الطريقة الأخيرة الملف /etc/sudoers في المحرر الافتراضي للمستخدم، أو إذا لم يتم تحديده، في المحرر vi. ميزة هذه الطريقةهو أنه عند حفظ الملف سيتم التحقق من الامتثال لبناء الجملة.

أبسط التكوين يبدو كما يلي:

الإعدادات الافتراضية env_reset

#مواصفات امتياز المستخدم
جذر الكل = (الكل) الكل
المستخدم الكل = (الكل) الكل

يمنح هذا التكوين المستخدم جميع حقوق المستخدم الجذر عند تشغيل أمر sudo. الإعدادات الافتراضية env_resetيعطل كافة متغيرات المستخدم تمامًا عند تنفيذ الأوامر كجذر. وهذا أمر جيد من الناحية الأمنية، ولكنه يسبب مشاكل في بعض الأحيان. يمكنك السماح باستخدام المتغيرات الخاصة بواسطة مجموعة أو فرد عن طريق إضافة سطر مثل هذا:
الافتراضيات:%admin !env_reset

والذي سيحفظ متغيرات البيئة لجميع مستخدمي مجموعة الإدارة، أو:
الافتراضيات: env_keep المستخدم = TZ

والذي سيحفظ متغير TZ للمستخدم المستخدم.

إذا كان الخادم يُدار من قبل مجموعة من الأشخاص، فمن المنطقي القيام بذلك:
%admin ALL=(ALL) ALL

كما قد تتخيل، يمنح هذا الإدخال حق الوصول الجذري لجميع أعضاء مجموعة الإدارة.

يمكنك تكوين كل مستخدم محدد ليتمكن من الوصول إلى أوامر محددة فقط. على سبيل المثال:
المستخدم ALL = /bin/mount، /bin/kill

سيعطي حقوق التنفيذ للمستخدم أوامر جبلوالقتل من أي آلة، و:
user2 mydebiancomp = /sbin/modprobe

سيمنح المستخدم 2 أذونات لتشغيل modprobe من mydebiancomp. أعتقد أن بناء الجملة واضح:
مضيف المستخدم = الأمر

حيث يتم كتابة الأمر بالمسار الكامل. بالنسبة للمجموعة، كل شيء متشابه، تتم إضافة علامة "%" فقط.

III. إعدادات سودو المتقدمة.

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

Cmnd_Alias ​​​​command_alias = Command1, Command2,... // الأسماء المستعارة للأوامر
Host_Alias ​​​​host_alias = hostname1, hostname2,... // الأسماء المستعارة للمضيف
User_Alias ​​​​user_alias = user1, user2,... // الأسماء المستعارة للمستخدم

من الممكن أيضًا تنفيذ أمر نيابة عن مستخدم آخر. على سبيل المثال، مع هذا الإدخال:
user ALL = (user2, user3) /usr/bin/ark

يمكن للمستخدم تشغيل الأمر ark كمستخدم 2 أو مستخدم 3، باستخدام المفتاح u، مثل هذا:
$ sudo -u user2 ark

افتراضيًا، يتذكر Sudo كلمات المرور لمدة 5 دقائق. إذا كنت لا تريد ذلك، فيمكنك تعيين كل مستخدم أو مجموعة أو اسم مستعار قاعدة منفصلة، على سبيل المثال عندما:
الافتراضي: المستخدم timestamp_timeout=0

لن يتم تذكر كلمة المرور الخاصة بالمستخدم على الإطلاق، ولكن إذا:
الإعدادات الافتراضية: timestamp_timeout=-1

سيتم تذكره طوال مدة التشغيل.

من الممكن أيضًا استخدام Sudo بدون كلمات مرور. هناك تصميم مماثل لهذا:
المستخدم myubuntucomp = NOPASSWD: /bin/kill

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

يحمي

المدونات، المدونات، المدونات. مكسيم فوكين يعرف الكثير عن هذا.

خريطة تفاعلية لمدينة أورينبورغ. صنع باستخدام التكنولوجيا خرائط جوجلباستخدام التطورات الخاصة بنا. المورد شاب ولكنه مثير للاهتمام ومفيد بالفعل.

كمسؤول Linux، كنت أستخدم دائمًا و sudo، و su. وباعتبارك مسؤول النظام، من المهم جدًا أن تعرف الفرق بينهما. بالنسبة لأولئك الذين ليس لديهم فكرة عامةحول الفرق بين الاثنين أو إرباكهما دائمًا - إليك قائمة مكونة من 12 سؤال وجواب (أسئلة وأجوبة) تهدف إلى مساعدتك على فهم تعقيدات sudo وsu.

ملحوظة- هذه المقالة مخصصة لأوبونتو فقط. على الرغم من أن بعض المعلومات قد تنطبق على التوزيعات الأكثر شعبية.

سودو ضد سو

يجب أن توضح هذه السلسلة من الأسئلة والأجوبة بعض ميزات Sudo vs su للعديد من مستخدمي Ubuntu.

س1. كيف يتم استخدام سودو وسو؟ ما هو الفرق بينهما؟

إجابةيتم استخدام .Sudo لتشغيل أمر معين بإذن الجذر. والشيء المثير للاهتمام هو أنه عندما تستخدم sudoبالنسبة لأمر محدد، سيطلب منك النظام كلمة مرور المستخدم الحالي. بعد إدخال كلمة المرور، يتم تشغيل الأمر بامتيازات المستخدم المتميز.

هنا مثال:

$ apt-get install skype E: تعذر فتح ملف القفل /var/lib/dpkg/lock - مفتوح (13: تم رفض الإذن) E: غير قادر على قفل دليل الإدارة (/var/lib/dpkg/)، هل أنت الجذر ؟ $ Sudo apt-get install skype pass for mylinuxbook: قراءة قوائم الحزم... تم إنشاء شجرة التبعيات قراءة معلومات الحالة... تم ... ...

كما ترى، حاولت أولاً تثبيت Skype باستخدام الأمر شقة-الحصول علىولكن حصلت تم رفض الإذن خطأ. ثم استخدمت sudo مع نفس نظام الأوامر ونظام كلمة المرور لمستخدم mylinuxbook. بعد الدخول كلمة المرور الصحيحة، اكتمل الأمر بنجاح.

من ناحية أخرى، يتم استخدام su لتبديل أي مستخدم. تعيين كلمة المرورتم تمكين المستخدم المقابل. إذا تم استخدام su بدون خيارات، فإنه يذهب إلى الجذر حسابمستخدم. في هذه الحالة، يطلب النظام كلمة مرور المستخدم المتميز.

هنا مثال:

$ su mylinuxbook كلمة المرور: mylinuxbook@mylinuxbook-Inspiron-1525:~$

في المثال أعلاه، استخدمت suللتبديل إلى حساب مستخدم mylinuxbook وبعد إدخال كلمة المرور الخاصة بـ mylinuxbook تمكنت من القيام بذلك.

وهنا مثال آخر:

$ su كلمة المرور: su: فشل المصادقة

في المثال أعلاه، قمت بتشغيل su لتمكين أذونات حساب الجذر لمستخدم عادي، ولكن لم أستطع لأنه لم يكن لدي كلمة مرور جذر تم تكوينها. لا تحتوي التوزيعات مثل Ubuntu على كلمات مرور للمستخدم المتميز تم تكوينها افتراضيًا. بمجرد إعداده، سوف تكون قادرًا على استخدام كلمة المرور هذه.

س2. ماذا لو كنت لا أرغب في تكوين كلمة مرور المسؤول في نظام Ubuntu الخاص بي، ولكنني لا أزال أرغب في التبديل إلى المستخدم المتميز؟

إجابة. في هذه الحالة، يمكنك تجربة الأمر " سودو سو". هنا مثال:

$ sudo su كلمة المرور لـ mylinuxbook: root@mylinuxbook-Inspiron-1525:/home/mylinuxbook#

بمجرد استخدام sudo لبدء su، سيطالبك النظام بكلمة مرور المستخدم الحالي بدلاً من كلمة مرور المستخدم المتميز. وبمجرد إدخال ذلك، تم تحويل الحساب الجاري إلى الحساب.

س3. ماذا لو كنت أرغب في استخدام su للانتقال إلى حسابات مستخدمين أخرى، ولكن لا أريد أن أتذكر كلمة مرور كل مستخدم؟

إجابة. حسنًا، في هذه الحالة، ما عليك سوى استخدام الأمر su، وإدخال كلمة مرور المسؤول والتبديل إلى الحساب. من هنا، باستخدام su، يمكنك التبديل إلى أي حساب مستخدم دون استخدام كلمات المرور.

س 4. إذا تم استخدام sudo لفعل شيء بامتيازات الجذر، فلماذا تكون كلمة مرور المستخدم الحالية مطلوبة وليس كلمة مرور الجذر؟

إجابة.حسنًا، ليس الأمر تمامًا كما يستطيع أي مستخدم عادي تنفيذ الأمر sudo وتشغيل الأوامر التي تتطلب امتيازات المستخدم المتميز. أنت، كمستخدم، يجب أن تكون كذلك sudoerنفس. هذا يعني أنه يجب أن يكون لديك امتيازات باستخدام سودو. إذا كنت sudoer صالحًا، فإن النظام يطلب فقط كلمة المرور للتأكد من أنك تفهم أنك تقوم ببعض الأعمال التي تتطلب امتيازات الجذر، ويجب عليك التحقق مرة أخرى من كل شيء قبل القيام بذلك فعليًا.

الآن يطرح السؤال حول sudoers. كيف تصبح مستخدما sudoer؟ يمكن للمستخدم أن يصبح sudoer إذا تمت إضافته إلى مجموعة sudo. هنا مثال:

$ سودو الأفعى sudo

ما عليك سوى استبدال اسم المستخدم الفعلي للحساب. يرجى ملاحظة أنه في السابق (قبل Ubuntu 12.04) كان لا بد من استدعاء المجموعة مسؤلولكن الآن هذا ليس ضروريا.

يمكنك استخدام الأمر " مجموعة" للتحقق من كافة المجموعات التي يوجد بها هذا المستخدم. إليك مثال:

مجموعات $ mylinuxbook mylinuxbook: mylinuxbook adm cdrom sudo dip plugdev lpadmin sambashare

لذلك ترى أن المستخدم " com.mylinuxbook"هو جزء من كل هذه المجموعات، بما في ذلك مجموعات سودو، وبالتالي سودوير.

س5. لقد لاحظت أنه بمجرد استخدام Sudo، كان لدي منذ وقت طويليتم الحفاظ على حقوق الجذر، على الرغم من أن كل شيء يعود إلى طبيعته بعد فترة. ما هذا؟

إجابة. يتذكر Ubuntu كلمة المرور الخاصة بـ Sudo لمدة 15 دقيقة تقريبًا. هذا يعني أنه بمجرد استخدام sudo لتشغيل أمر ما، فلن يطالبك النظام بكلمة مرور إذا قمت بتشغيل أوامر أخرى تتطلب امتيازات الجذر لتشغيلها. على الرغم من أنه سيتعين عليك استخدام " sudo"قبل كل فريق.

س6. ما هي مزايا Sudo على su؟

إجابة.يتمتع Sudo بالعديد من المزايا مقارنة بـ su.

وهنا القائمة:

  • يضمن Sudo وجود الامتيازات لأمر محدد (أو لفترة زمنية محددة) وليس لجلسة كاملة، لأن هذا قد يؤدي إلى إساءة استخدام غير مقصودة لامتيازات المستخدم المتميز.
  • يمكنك استخدام Sudo لتقييد حقوق المستخدم. يعد هذا مفيدًا عندما لا تريد أن يتحكم المستخدم في جميع حقوق المستخدم المتميز عند العمل مع Suda.
  • يوجد سجل (auth.log) يتم الاحتفاظ به لكل sudoer. يحتوي هذا الملف على معلومات حول الأوامر التي تم تنفيذها باستخدام sudo ووقت تنفيذها. وهذا يساعد المسؤول على تتبع المستخدمين الموثوق بهم (sudoers).
  • أكبر فائدة هي أن Suda يتطلب كلمة المرور الخاصة بالمستخدم لتسجيل الدخول، بدلاً من كلمة مرور الجذر. يساعد هذا في الحفاظ على خصوصية كلمة مرور الجذر وليس هناك حاجة لتغييرها حتى عند مغادرة المستخدم (sudoer).
  • س7. هل يمكن لأي مستخدم إجراء عمليات Sudo؟

    إجابة.لا، فقط المستخدمين الموثوقين أو مستخدمي sudo يمكنهم تنفيذ عمليات sudo. هذه هي الصفحة الرسمية التي تصف كيف وماذا يمكن لمستخدم sudoer القيام به.

    س8. أنا مهتم بسو. كيف يمكنني تخصيص استخدامي لـ su بطريقة تحقق وظائف مشابهة لـ suda؟

    إجابة. إذا كنت تقوم بتشغيل su، فهذا يعني أن لديك بالفعل كلمة مرور مستخدم مميز تم تكوينها. لتحقيق وظائف مشابهة ل Sudo، أي. لتشغيل أمر واحد فقط بامتيازات الجذر باستخدام su، كل ما عليك فعله هو استخدام الخيار من فريق سو.

    هنا مثال:

    $ su -c كلمة المرور "apt-get install skype":

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

    س9. أنا أعمل مع سودو. كيف يمكنني تكوين استخدامي لـ sudo بطريقة تحقق وظائف مشابهة لـ su؟

    إجابة.لتحقيق وظيفة su عبر Sudo، جرب الخيار -أناأوامر سودو.

    هنا مثال:

    $ sudo -i كلمة المرور لـ mylinuxbook: root@mylinuxbook-Inspiron-1525:~#

    ترى ذلك مع " سودو -i"، تم تبديل الحساب الجذر على الرغم من أن كلمة المرور التي تم إدخالها كانت للمستخدم الحالي (mylinuxbook في هذه الحالة).

    س10. لم يتم تفعيل كلمة المرور الجذرية لحسابي بعد. هل يمكنني استخدام Sudo لتمكين كلمة مرور المستخدم المتميز؟

    إجابة.لتنشيط كلمة مرور المستخدم المتميز، يمكنك استخدام الأمر passwdعلى النحو التالي:

    $ سودو passwd الجذر

    يتطلب هذا الأمر امتيازات الجذر، لذلك سيتعين عليك استخدام Sudo.

    س12. هل يمكنني استخدام Sudo لمنح حقوق خاصة للمستخدمين؟

    إجابة.ملف التكوين لسودو - /etc/sudoers. ولا يمكن تحريره يدويًا باستخدام المحرر. ولهذا الغرض يوصى باستخدام الأمر com.visudo.

    إليك الأمر الدقيق:

    $ سودو فيسودو

    وهذا ما تحصل عليه:

    سيؤدي هذا الأمر إلى فتح ملف مؤقت /etc/sudoers.tmp في محرر nano لتحريره. يتأكد Visudo من عدم وجود تعارض عند إمكانية تحرير مثيلات متعددة لنفس الملف.

    لفهم كيفية منح حقوق محدودة، فهم تصميم ملف التكوين هذا، .

    إذا كنت تستخدم الأمر Sudo بشكل دوري، فأنا متأكد من أنك لاحظت خصوصية في كيفية عمله وهي أنه بعد إدخال كلمة المرور الخاصة بك بنجاح، يمكنك استخدام sudo عدة مرات دون إدخال كلمة مرور على الإطلاق. ولكن بعد مرور بعض الوقت، يبدأ الأمر Sudo في طلب كلمة المرور مرة أخرى.

    هذا السلوك ليس له علاقة بعدد الأوامر التي يتم تنفيذها عبر sudo، ولكنه يتعلق بالوقت. نعم، افتراضيًا، لن يطالبك Sudo بكلمة المرور لمدة 15 دقيقة بعد التحقق منها بنجاح. بعد مرور 15 دقيقة، سيطلب منك Sudo إدخال كلمة المرور الخاصة بك مرة أخرى.

    ومع ذلك، يمكنك تغيير السلوك الموصوف إذا كنت ترغب في ذلك. للقيام بذلك، افتح ملف التكوين /etc/sudoers باستخدام الأمر التالي:

    سودو فيسودو

    بعد هذا عليك أن تذهب إلى الخط

    الإعدادات الافتراضية env_reset

    وأضف المتغير التالي بالقيمة الجديدة (بالخط العريض) إلى نهاية هذا السطر:

    الإعدادات الافتراضية env_reset ,timestamp_timeout=[قيمة جديدة]

    يجب استبدال الحقل "[قيمة جديدة]" بعدد الدقائق التي يجب أن تكون جلسة Sudo الخاصة بك موجودة فيها. على سبيل المثال، استخدمت القيمة 40.

    إذا كنت تريد أن تتم مطالبتك بكلمة مرور في كل مرة تستخدم فيها الأمر sudo، فيمكنك ضبط هذا المتغير على 0. وإذا كنت تريد أن تستمر جلسة Sudo إلى الأبد، فيمكنك ضبط هذا المتغير على -1.

    يرجى ملاحظة أنه لا يُنصح بشدة باستخدام قيمة -1 للمتغير المعني.

    كلمة مرور سودو

    كما لاحظت، لا يتم عرض أي رموز أثناء عملية إدخال كلمة المرور، ولا حتى العلامات النجمية المعتادة. على الرغم من أن هذه ليست مشكلة كبيرة، إلا أن بعض المستخدمين يرغبون في رؤية النجوم على الأقل لأسباب مختلفة.

    ولحسن الحظ، فإن وضع كلمة المرور المقابل سهل التنشيط. كل ما عليك فعله هو تغيير السطر التالي في ملف /etc/sudoers الخاص بك:

    الإعدادات الافتراضية env_reset

    لكل سطر

    الإعدادات الافتراضية env_reset،pwfeedback

    الآن، سيتم عرض العلامات النجمية عند إدخال كلمة المرور الخاصة بك أثناء استخدام الأداة المساعدة sudo.

    بعض خيارات أوامر Sudo المهمة

    بالإضافة إلى الخيار -u (الذي ناقشناه في بداية هذه المقالة)، هناك عدة خيارات أخرى المعلمات الهامةأوامر Sudo الجديرة بالذكر. وسنناقش بعضًا منها في هذا القسم.

    الخيار -ك

    لنفترض أنك قمت للتو بتشغيل أمر باستخدام sudo وأدخلت كلمة المرور الخاصة بك. كما تعلم، افتراضيًا، لن يطلب Sudo كلمة المرور لمدة 15 دقيقة القادمة. لنفترض الآن أنك بحاجة إلى منح شخص ما إمكانية الوصول إلى جهازك الطرفي دون القدرة على استخدام sudo. ما الذي يمكن عمله في هذه الحالة؟

    لحسن الحظ، هناك خيار -k لإنهاء جلسة Sudo بالقوة. إليك ما هو مكتوب حول هذه المعلمة في صفحة دليل Sudo:

    -ك، --إعادة تعيين الطابع الزمني

    عند استخدامه بدون أمر، يسمح لك بإعادة ضبط إعدادات المستخدم المخزنة مؤقتًا. بمعنى آخر، في المرة التالية التي تتصل فيها بـ Sudo، سيُطلب منك كلمة المرور. لا يتطلب هذا الخيار كلمة مرور وقد تمت إضافته خصيصًا للسماح للمستخدمين بإزالة معلومات إذن sudo من ملف .logout.

    عند استخدامه مع أمر أو خيار يتطلب كلمة مرور، قد يُطلب منك إدخال كلمة مرور لأن هذا الخيار يتسبب في تجاهل معلومات إذن sudo المخزنة مؤقتًا. ونتيجة لذلك، سيطالبك sudo مرة أخرى بكلمة مرور (إذا كانت سياسة الأمان مطلوبة) ولن يقوم بتحديث معلومات الأذونات المخزنة مؤقتًا.

    -الخيار

    قد يحدث أنك تحتاج أثناء عملك إلى تشغيل الكثير من الأوامر التي تتطلب امتيازات الجذر، ولا ترغب في كتابة بادئة sudo أمام كل منها. أيضًا، لن ترغب في تكوين مدة جلسة Sudo عن طريق تحرير ملف التكوين /etc/sudoers.

    في هذه الحالة، قد تجد الخيار -s مفيدًا. هذا هو وصف هذا الخيار من صفحة رجل Sudo:

    -s، --shell

    إطلاق قذيفة الأوامر، المسار إلى ملف ثنائيوالذي يتم تحديده باستخدام متغير بيئة SHELL، إن وجد، أو قذيفة الأوامر التي تم تحديد مسارها الثنائي في معلمات حساب المستخدم المتصل. إذا تم استخدام أمر، فسيتم تمريره إلى هذه الصدفة للتنفيذ اللاحق باستخدام الخيار -c القياسي. إذا لم يتم إعطاء أي أمر، فسيتم منح المستخدم حق الوصول إلى غلاف الأوامر التفاعلي قيد التشغيل.

    لذلك تقوم هذه المعلمة بما يلي:

    1. تشغيل غلاف أوامر جديد، يتم تحديد المسار إلى الملف الثنائي الخاص به باستخدام متغير البيئة $SHELL. إذا كان متغير البيئة $SHELL فارغًا، فسيتم تشغيل غلاف الأوامر، ويتم تحديد المسار إلى الملف الثنائي الخاص به في السطر الذي يصف معلمات حساب المستخدم الحالي في الملف /etc/passwd.
    2. إذا قمت بتمرير الأمر مع الخيار -s (على سبيل المثال، تشغيل sudo -s whoami)، فسيتم تنفيذ الأمر التالي: Sudo /bin/bash -c whoami .
    3. إذا لم تحاول تنفيذ أي من أوامرك (أي أنك قمت فقط بتشغيل sudo -s)، فلديك حق الوصول إلى غلاف أوامر تفاعلي يتمتع بامتيازات الجذر.

    لاحظ أن الخيار -s يمنحك واجهة أوامر ذات امتيازات الجذر، ولكن بدون بيئة الجذر - ستستخدم هذه الصدفة ملف .bashrc الخاص بك. هذا يعني بشكل أساسي أنه، على سبيل المثال، عند تشغيل أمر whoami باستخدام هذه الصدفة، فإنه سيطبع اسم المستخدم الخاص بك بدلاً من الجذر.

    الخيار -i

    الخيار -i مشابه للخيار -s الذي ناقشناه للتو. ومع ذلك، هناك بعض الاختلافات بينهما. أحد الاختلافات الرئيسية هو أن الخيار -i يمنحك أيضًا بيئة المستخدم الجذر، لذلك يتم تجاهل ملف .bashrc (المستخدم) الخاص بك. وهذا مشابه لاستخدام حساب المستخدم الجذر دون تسجيل الدخول كجذر. بالإضافة إلى ذلك، لن تضطر إلى إدخال كلمة مرور الجذر الخاصة بك.

    ملاحظة هامة:تذكر أن هناك أيضًا أمر su يسمح لك بالتشغيل كمستخدمين آخرين (افتراضيًا تصبح جذرًا). يتطلب هذا الأمر كلمة مرور المستخدم الجذر. لتجنب الاضطرار إلى إدخال كلمة مرور ذلك المستخدم، يمكنك أيضًا استخدام البادئة sudo (أي الأمر sudo su)؛ في هذه الحالة سيكون عليك إدخال كلمة المرور الخاصة بك. ومع ذلك، هناك بعض الاختلافات بين الأمرين su وsudo su؛ من أجل فهمها، وكذلك التعرف على مقارنة هذه الأوامر مع الأمر sudo -i، ما عليك سوى الرجوع إلى المناقشة المتاحة على هذا الرابط.

    خاتمة

    أتمنى أن يكون لديك على الأقل فهم أساسي لكيفية عمل أمر sudo، بالإضافة إلى كيفية تغيير سلوكه الافتراضي. جرب التعديلات على /etc/sudoers بنفسك، وراجع المناقشة (المرتبطة في الفقرة السابقة) إذا كنت تريد معرفة المزيد عن هذا الأمر.