تعد نصوص Bash جزءًا مهمًا من وظيفة مسؤول النظام. إنها تسمح لك بأتمتة كل من المهام العادية والحاسمة.
من أفضل الأشياء مع البرامج النصية أنها يمكن أن تعمل بشكل مستقل دون تدخل بشري ، ولكن في بعض الأحيان قد يكون من الصعب أتمتة المهام التي تتطلب كلمات مرور المستخدم. لنلقِ نظرة على كيفية أتمتة البرامج النصية التي تتطلب كلمات مرور بشكل آمن دون المساس بالأمان.
إنشاء نص بسيط
لنفترض أنك تريد إنشاء برنامج نصي بسيط يقوم بعمل نسخة احتياطية من مجلد Linux الرئيسي الخاص بك إلى موقع بعيد بحيث يمكنك بسهولة استعادة بياناتك في حالة فقد البيانات.
ابدأ بإنشاء ملف نصي Bash في المجلد الرئيسي الخاص بك ، باستخدام أمر اللمس أو أي طريقة أخرى ، وقم بتسميتها backup_home.sh. لا تتردد في استخدام أي اسم ودليل ترضيك.
يستخدم البرنامج النصي rsync command ، أداة نسخ ملفات قوية ، من أجل نسخ جميع الملفات الموجودة في الدليل الرئيسي المحلي إلى خادم بعيد.
انسخ محتوى البرنامج النصي التالي والصقه في ملف Bash الخاص بك. تذكر استبدال المستخدم john بالاسم الصحيح للمستخدم المنزلي المحلي. قم أيضًا بتوفير اسم المستخدم وعنوان IP الصحيحين للخادم البعيد.
#! / بن / باش
# نسخ البيانات إلى خادم بعيد
rsync -avl --mkpath / home / john user_name@بعيد_server / home / Backup
إذا لم يكن لديك خادم بعيد للاختبار معه ، فيمكنك ببساطة قم بتثبيت VirtualBox وقم بإعداد VM على جهازك المحلي. استخدم VM guest كخادم بعيد.
حفظ الملف. لتنفيذ البرنامج النصي ، تحتاج إلى منحه إذن التنفيذ باستخدام الأمر سودو شمود 755. يمكن لجميع المستخدمين تنفيذ البرنامج النصي ولكن يمكن لمستخدمي sudo فقط تعديل الملف.
أخيرًا ، قم بتنفيذ سكربت Bash من المحطة باستخدام الأمر:
./backup_home.sh
عندما تقوم بتشغيل هذا البرنامج النصي ، سيُطلب منك إدخال كلمة مرور الخادم البعيد. هذا ليس مثاليًا إذا كنت تريد تشغيل البرنامج النصي دون تدخل بشري ، كما هو الحال عند استخدام Cron.
أتمتة تسجيل الدخول بكلمة المرور
ثَبَّتَ sshpass، مزود كلمة مرور غير تفاعلي ، على جهاز الكمبيوتر المحلي أو الكمبيوتر الشخصي الذي ستقوم بتشغيل البرنامج النصي منه.
على التوزيعات القائمة على دبيان
إذا كنت تستخدم توزيعة قائمة على دبيان مثل Ubuntu و Pop! _OS و Lubuntu:
sudo apt تحديث && sudo apt ثَبَّتَ sshpass
على RHEL و Fedora
dnf ثَبَّتَ sshpass
بعد تثبيت sshpass ، قم بتعديل البرنامج النصي بحيث يبدو كما يلي.
#! / بن / باش
# نسخ البيانات إلى خادم بعيد
sshpass -p "كلمة السر خاصتك" rsync -avl --mkpath / home / john user_name @ remote_server / home / Backup
هنا تقوم بتوفير كلمة المرور بنص عادي. من الواضح أن هذه ليست الطريقة المثالية ، لأنها ليست آمنة وليست ممارسة جيدة. إذا وقع النص في الأيدي الخطأ ، فأنت في ورطة عميقة.
لجعل هذا أكثر أمانًا ، سنستخدم GnuPG ، وهي أداة تشفير آمنة ومفتوحة المصدر.
تشفير كلمة المرور الخاصة بك
يتم تثبيت GnuPG افتراضيًا على معظم أنظمة Linux ، ولكن في حالة عدم تثبيته على نظامك ، إليك كيفية تثبيت GnuPG.
قم بإنشاء ملف مخفي يسمى أسرار باستخدام الأمر المس. الأسرار. نظرًا لأننا جعلنا الملف مخفيًا افتراضيًا كإجراء أمني إضافي ، فإليك كيف يمكنك ذلك عرض الملفات المخفية على Linux.
في ملف الأسرار ، أدخل كلمة المرور لجهاز الكمبيوتر البعيد واحفظها.
بعد ذلك ، قم بتشفير الملف باستخدام ملحق gpg يأمر.
سودوgpg.secrets
سيُطلب منك إدخال عبارة مرور آمنة وقوية لفتح الملف المشفر.
سينشئ GnuPG ملفًا جديدًا بالامتداد .gpg ملحق باسم الملف القديم. يجب أن يكون اسم ملفك الجديد الآن secrets.gpg، بافتراض أنك استخدمت ملف أسرار اسم الملف.
إذا قمت بعرض محتوى secrets.gpg باستخدام امتداد قطة الأمر ، فسيتم تقديمك بنص غامض لإظهار أن كلمة مرورك مشفرة.
لعرض محتويات الملف بنص عادي ، ستحتاج إلى فك تشفيره باستخدام الأمر التالي (سيُطلب منك إدخال كلمة المرور التي قمت بتعيينها أثناء التشفير):
gpg-dqغير صحيح.gpg
استخدام كلمة مرور مشفرة في البرنامج النصي الخاص بك
لاستخدام كلمة المرور المشفرة في البرنامج النصي ، قم بتحديث البرنامج النصي كما يلي:
#! / بن / باش
# نسخ البيانات إلى خادم بعيد
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath / home / john user_name@بعيد_server / home / Backup
قم بتشغيل البرامج النصية للنسخ الاحتياطي مرة أخرى ، وهذه المرة لن تتم مطالبتك بكلمة مرور.
أتمتة المهام باستخدام البرامج النصية Bash
يستخدم GnuGP بشكل متكرر لتأمين الملفات والبيانات الحساسة على جهاز الكمبيوتر الخاص بك وهو أيضًا أداة رائعة لتأمين كلمات المرور في نصوص Bash النصية الآلية على Linux.
هناك الكثير الذي يمكنك فعله باستخدام نصوص Bash. Bash هي أداة قوية يمكنها مساعدتك في أتمتة الكثير من الأشياء على Linux ، كما أن تعلم كتابة نصوص Bash يعد استثمارًا مفيدًا.