أنظمة تشغيل

كيفية تنفيذ و استخدام الامر sudo بدون طلب كلمة سرية

السلام عليكم و رحمة الله و بركاته اصدقائنا الأعزاء,
 
اليوم سنتحدث عن موضوع حول انظمة تشغيل لينكس و هو كيفية تنفيذ و استخدام الامر sudo بدون طلب كلمة سرية.
 
قبل عدة أشهر و بطبيعة عملي في ادارة قواعد بيانات اوراكل و حتى يتم أخذ نسخ احتياطي لقواعد البيانات التي اديرها و حفظها في أكثر من مكان بشكل آلي, تم تغيير البرنامج الخاص بعملية النسخ الإحتياطي.
 
حيث أن البرنامج عندما تقوم بإنشاء مهمة للنسخ الإحتياطي وجدولتها ليتم عمل نسخ من البيانات يمكنه تنفيذ السكريبتات الخاصة بعملية النسخ الإحتياطي و التي يتم انشاءها مسبقا من قبل مدير قواعد البيانات او المسؤول عن الخادم المراد عمل نسخ احتياطي له, و بعد ان ينتهي السكريبت المجدول من التنفيذ يتم نسخ البيانات بالمسارات المحددة للمكان المراد حفظها عليها و بأكثر من نسخة حسب العدد المختار, بحيث يمكن تخزينها على Tape او على SAN Storage او غيرها من وحدات و ادوات التخزين المختلفة.
 
بعد انتهائي من كتابة السكريبتات التي تقوم بعملية النسخ الإحتياطي لقواعد البيانات و تجربتها لاكثر من مرة و التاكد من انها تعمل بشكل صحيح و ان النسخ الإحتياطية تعمل بشكل صحيح عن طريق إجراء عمليات استرجاع للبيانات على خوادم قواعد بيانات تجريبية, قمت بتزويد الزملاء المسؤولين عن أنظمة النسخ الإحتياطي بمسارات السكريبتات على الخوادم بحيث انهم يستطيعون اختيارها قبل نسخ الملفات المختلفة المحددة لهم و التي تنتج من خلال هذا السكريبت.
 
عندها قام الزملاء بتجهيز المهام و عندما قاموا بتنفيذها فشل النسخ الإحتياطي, في البداية لم أعلم منهم اي سبب معين الا ان النسخ الإحتياطي فشل. عندها دعوتهم و قمت بتجربة النسخ الإحتياطي على الخادم مباشرة بدون استخدام البرنامج و قد نجحت العملية. فثارت في تلك اللحظة شكوكي حول برنامج النسخ الإحتياطي و الموجود على خادم مستقل, حيث تعمل مثل هذه الأنظمة عن طريق تنصيب برامج (Client او Agent) على الخوادم المراد عمل نسخ إحتياطي لها تقوم بالإتصال مع البرنامج (Server) الموجود على خادم النسخ الإحتياطي و يتم تنفيذ الاوامر من خلالها (بمعنى آخر انها تعمل عن طريق برامج Client-Server Applications) .
 
قمت حينها بتجربة المهمة من خلال البرنامج مع الزملاء المسؤولين عن النسخ الإحتياطي, ظهر حينها خطأ لاول مرة اشاهده وهو كالآتي :
 
sudo: sorry, you must have a tty to run sudo
 
عندما قمت حينها بالبحث عن طريق الإنترنت اكتشفت بأن هذا البرنامج المسؤول عن عملية النسخ الإحتياطي يتطلب عمل sudo لان البرنامج يعمل بصلاحيات مستخدم آخر مختلف عن المستخدم الذي يقوم بتنفيذ السكريبتات الخاصة بالنسخ الإحتياطي, ولذلك يتطلب تنفذيها بالامر sudo لذلك يتطلب هذا الامر كلمة المرور الخاصة بالمستخدم الآخر.
 
لذا قمت بالبحث عن طريقة يتم من خلالها الغاء طلب الكلمة السرية عن تنفيذ الامر sudo و بعد البحث وجدتها .
 
يعتمد الامر sudo على ملف اعدادات في عمله ويمكن التعديل على هذا الملف من خلال الأمر visudo, حيث انه و بعد ان تقوم بكتابة هذا الامر سيتم فتح ملف بإستخدام معالج نصوص vi editor.
 
لو فرضنا بأن المستخدم المراد السماح له بتنفيذ الامر sudo بدون طلب كلمة سرية هو المستخدم technawi
 
سنقوم بنهاية الملف اذا لم يكن هذا المستخدم موجود بإضافة السطر التالي :
 
technawi ALL=(ALL) NOPASSWD: ALL
 
و تخزين الملف بالطريقة الإعتيادية لتخزين اي ملف بإستخدام معالج نصوص vi editor او vim, عندها سيكون المستخدم technawi قادر على تنفيذ اي امر عن طريق sudo بدون ان يتم طلب كلمة سرية منه.
 
لو أردنا الآن للمستخدم technawi فقط تنفيذ بعض الملفات او الاوامر و هي محددة بدون طلب كلمة سرية منه سنقوم عندها بكتابة السطر التالي (هذا السطر كمثال للأوامر التي يمكنه تنفيذها بدون كلمة سرية) :
 
technawi ALL=(ALL) NOPASSWD: /usr/sbin/tcpdump, /sbin/reboot
 
في هذه الحالة عندما يقوم المستخدم technawi بتنفيذ الأمرين (/usr/sbin/tcpdump) و ( /sbin/reboot ) فانه لن يتم طلب كلمة سرية اما باقي الأوامر فانه سيتم طلب كلمة سرية.
 
طبعا هنالك امور متقدمة أكثر للتعامل مع هذا الامر, اذا أحببتم الإستزادة يرجى اضافة السؤال على شكل تعليق في هذا الموضوع ليتم الإجابة عليه.
 
ملاحظة : للإستزادة بشان هذا الأمر يمكنكم كتابة الأمر التالي و الذي يقوم بالبحث داخل ال man pages حول الأمر sudo لمشاهدة الأمثلة و الخيارات و جميع الأمور الأخرى :
 
man 5 sudoers
 
نتمنى ان يكون الموضع قد لاقى اعجابكم.
 
شكرا لكم مرة أخرى 🙂
 
للمزيد من المواضيع حول نظام تشغيل لينكس يمكنكم زيارة الرابط التالي : مواضيع لينكس
 

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

محمد خريشة

مهندس حاسوب من الأردن مهتم ومهووس بكل ماله علاقة بالتقنية على اختلاف اصنافها, عملت و مازلت اعمل كمطور لمواقع الويب بشكل فردي, عملت بمؤسسات اردنية كمهندس شبكات ومن ثم مهندس انظمة و حماية و الآن أعمل كمدير لقواعد بيانات اوراكل بالإضافة الى ادراة خوادم *nix , لدي خبرة بالتعامل و ادارة نظام تشغيل OpenVMS و نظام البريد الإلكتروني Exchange Server من شركة مايكروسوفت . من اهتماماتي اثراء المحتوى التقني العربي بكل ما هو جديد.

مقالات ذات صلة

‫7 تعليقات

  1. الله يعطيك العافيه على هل موضوع .. والله انو موضوع مفيد جدا..
    اذا بتقدر تعمل تدوينه او تحكي شوي عن ال Shell scripting … واذا بتقدرو تعملو دوره عن هل موضوع
    او ترشدونا لكتاب او موقع معين .. ومشكورين .

  2. جميل جدااا
    هو انا لسة مبتدئ في اللينكس وحملت الاوبونتو vmware واتمني اخليه نظام اساسي
    وكتير جدا لما بعمل سيرش ع اوامر لاحظت ان في sudo او مفيش وبيدي الامر علطول
    فهل ال sudo بكون أنا ال root او على مستخدم واخد صلاحية له ? ولما بحط الامر علطول بكون أنا على ال root بالفعل ؟
    وحاجة تاني لو تكرمت ممكن لو فيه دليل للاوامر الى في اللينكس
    لائن صراحة تايه جدااا في موضوع الاوامر ده و بتوه عبال ما الاقي امر حتي الضغط بفكه بالعافية
    اسف ع الاطالة 🙂 وشكرا جزيلا للموضوع الجميل

    1. السلام عليكم و رحمة الله و بركاته اخي العزيز,

      هنالك دورة اساسيات لينكس و التعامل مع سطر الأوامر و هي مفيدة ان شاء الله تعالى للمبتدئين..

      موجودة على الموقع في قائمة الدورات…

      قريبا سيكون هنالك دورات متقدمة في لينكس ان شاء الله تعالى

      بالنسبة لسؤال الآخر ساقوم بكتابة تدوينة جديدة قريبا حولها ان شاء الله تعالى

      تابعنا هنا و على الصفحة 🙂

      دمتم

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

3 × 5 =

إغلاق