תסריטי Bash הם חלק חשוב מתפקידו של מנהל מערכת. הם מאפשרים לך להפוך משימות ארציות וקריטיות כאחד.

אחד הדברים הטובים ביותר עם סקריפטים הוא שהם יכולים לרוץ באופן עצמאי ללא התערבות אנושית, אבל לפעמים זה יכול להיות מאתגר לבצע אוטומציה של משימות הדורשות סיסמאות משתמש. בואו נסתכל כיצד ניתן להפוך באופן מאובטח סקריפטים הדורשים סיסמאות מבלי לפגוע באבטחה.

יצירת סקריפט פשוט

נניח שאתה רוצה ליצור סקריפט פשוט שמגבה את תיקיית הבית שלך בלינוקס למיקום מרוחק כך שתוכל לשחזר בקלות את הנתונים שלך במקרה של אובדן נתונים.

התחל ביצירת קובץ סקריפט של Bash בתיקיית הבית שלך, באמצעות פקודת המגע או כל שיטה אחרת, ותן שם backup_home.sh. אל תהסס להשתמש בכל שם וספרייה שתרצו.

התסריט משתמש ב- rsync command, כלי רב עוצמה להעתקת קבצים, על מנת לגבות את כל הקבצים בספריית הבית המקומית שלך לשרת מרוחק.

העתק את התוכן של הסקריפט הבא והדבק אותו בקובץ Bash שלך. זכור להחליף את המשתמש ג'ון בשם הנכון של המשתמש הביתי המקומי שלך. ספק גם את שם המשתמש וכתובת ה-IP הנכונים עבור השרת המרוחק.

#!/bin/bash
#העתק נתונים לשרת מרוחק
rsync -avl --mkpath /home/john user_name@מְרוּחָק_שרת/בית/גיבוי
instagram viewer

אם אין לך שרת מרוחק לבדוק איתו, אתה יכול פשוט התקן את VirtualBox והגדר VM במחשב המקומי שלך. השתמש באורח ה-VM כשרת המרוחק שלך.

שמור את הקובץ. כדי להפעיל את הסקריפט עליך להעניק לו את הרשאת הביצוע באמצעות הפקודה sudo chmod 755. כל המשתמשים יכולים להפעיל את הסקריפט אבל רק משתמשי sudo יכולים לשנות את הקובץ.

לבסוף, הפעל את סקריפט Bash מהמסוף באמצעות הפקודה:

./backup_home.sh

בכל פעם שתפעיל את הסקריפט הזה, תתבקש להזין את סיסמת השרת המרוחק. זה לא אידיאלי אם אתה רוצה להריץ את הסקריפט ללא התערבות אנושית, כגון בעת ​​שימוש ב-Cron.

אוטומציה של התחברות לסיסמה

להתקין sshpass, ספק סיסמאות לא אינטראקטיבי, במחשב המקומי שלך או במחשב שממנו תפעיל את הסקריפט.

בהפצות מבוססות דביאן

אם אתה משתמש בהפצה מבוססת דביאן כגון Ubuntu, Pop!_OS ו-Lubuntu:

sudo apt עדכון && sudo apt להתקין sshpass

על RHEL ופדורה

dnf להתקין sshpass

לאחר התקנת sshpass שנה את הסקריפט כך שייראה כדלקמן.

#!/bin/bash
#העתק נתונים לשרת מרוחק
sshpass -p "הסיסמה שלך" rsync -avl --mkpath /home/john user_name@remote_server/home/backup

כאן אתה מספק את הסיסמה בטקסט רגיל. ברור שזו לא הדרך האידיאלית, מכיוון שהיא לא מאובטחת ולא תרגול טוב. אם התסריט אי פעם נוחת בידיים הלא נכונות, אתה בבעיה עמוקה.

כדי להפוך את זה למאובטח יותר, נשתמש ב-GnuPG, כלי הצפנה מאובטח בקוד פתוח.

הצפנת הסיסמה שלך

GnuPG מותקן כברירת מחדל ברוב מערכות לינוקס, אך במקרה שאינו מותקן במערכת שלך, הנה איך להתקין GnuPG.

צור קובץ נסתר בשם סודות באמצעות הפקודה מגע .סודות. מכיוון שהגדרנו את הקובץ מוסתר כברירת מחדל כאמצעי אבטחה נוסף, כך תוכל הצג קבצים מוסתרים בלינוקס.

בקובץ הסודות, הזן את הסיסמה של המחשב המרוחק שלך ושמור אותה.

לאחר מכן, הצפין את הקובץ באמצעות ה- gpg פקודה.

סודוgpg.סודות

תתבקש להזין ביטוי סיסמה מאובטח וחזק לפתיחת הקובץ המוצפן.

GnuPG תיצור קובץ חדש עם הסיומת .gpg מצורף לשם הקובץ הישן. שם הקובץ החדש שלך אמור להיות כעת secrets.gpg, בהנחה שהשתמשת ב- סודות שם קובץ.

אם אתה מציג את התוכן של secrets.gpg באמצעות חתול הפקודה, יוצג לך טקסט ג'יבריש כדי להראות שהסיסמה שלך מוצפנת.

כדי להציג את תוכן הקובץ בטקסט רגיל, תצטרך לפענח אותו באמצעות הפקודה הבאה (תתבקש להזין את הסיסמה שהגדרת במהלך ההצפנה):

gpg-dqסוד.gpg

שימוש בסיסמה מוצפנת בסקריפט שלך

כדי להשתמש בסיסמה המוצפנת בסקריפט, עדכן את הסקריפט באופן הבא:

#!/bin/bash
#העתק נתונים לשרת מרוחק
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/john user_name@מְרוּחָק_שרת/בית/גיבוי

הפעל שוב את סקריפטי הגיבוי, והפעם לא תתבקש להזין סיסמה.

אוטומציה של משימות עם סקריפטים של Bash

GnuGP משמש לעתים קרובות לאבטחת קבצים ונתונים רגישים במחשב האישי שלך והוא גם כלי נהדר לאבטחת סיסמאות בסקריפטים אוטומטיים של Bash ב-Linux.

יש הרבה שאתה יכול לעשות עם סקריפטים של Bash. Bash הוא כלי רב עוצמה שיכול לעזור לך להפוך הרבה דברים לאוטומטיים בלינוקס ולמידת כתיבת סקריפטים של Bash היא השקעה משתלמת.