Scripturile Bash sunt o parte importantă a sarcinii unui administrator de sistem. Vă permit să automatizați atât sarcinile banale, cât și cele critice.

Unul dintre cele mai bune lucruri cu scripturile este că pot rula independent fără intervenția umană, dar uneori poate fi dificil să automatizezi sarcinile care necesită parole de utilizator. Să vedem cum puteți automatiza în siguranță scripturile care necesită parole fără a compromite securitatea.

Crearea unui script simplu

Să presupunem că doriți să creați un script simplu care face backup pentru folderul dvs. de acasă Linux într-o locație de la distanță, astfel încât să vă puteți restaura cu ușurință datele în caz de pierdere a datelor.

Începeți prin a crea un fișier script Bash în folderul de acasă, folosind comanda tactilă sau orice altă metodă și denumește-o backup_home.sh. Simțiți-vă liber să utilizați orice nume și director pe placul dvs.

Scriptul folosește rsync comandă, un instrument puternic de copiere a fișierelor, pentru a face copii de rezervă ale tuturor fișierelor din directorul dvs. de acasă local pe un server la distanță.

instagram viewer

Copiați conținutul următorului script și inserați-l în fișierul dvs. Bash. Nu uitați să înlocuiți utilizatorul john cu numele corect al utilizatorului local. De asemenea, furnizați numele de utilizator și adresa IP corecte pentru serverul de la distanță.

#!/bin/bash
#Copiați datele pe un server la distanță
rsync -avl --mkpath /home/john nume_utilizator@la distanta_server/acasă/Backup

Dacă nu aveți un server la distanță cu care să testați, puteți pur și simplu instalați VirtualBox și configurați un VM pe mașina dvs. locală. Utilizați invitatul VM ca server la distanță.

Salvați fișierul. Pentru a executa scriptul, trebuie să îi acordați permisiunea de execuție folosind comanda sudo chmod 755. Toți utilizatorii pot executa scriptul, dar numai utilizatorii sudo pot modifica fișierul.

În cele din urmă, executați scriptul Bash din terminal folosind comanda:

./backup_home.sh

Ori de câte ori executați acest script, vi se va solicita să introduceți parola serverului de la distanță. Acest lucru nu este ideal dacă doriți să rulați scriptul fără intervenție umană, cum ar fi atunci când utilizați Cron.

Automatizarea autentificarea parolei

Instalare sshpass, un furnizor de parole non-interactiv, pe computerul dvs. local sau pe computerul de pe care veți rula scriptul.

Pe distribuțiile bazate pe Debian

Dacă sunteți pe o distribuție bazată pe Debian, cum ar fi Ubuntu, Pop!_OS și Lubuntu:

sudo apt Actualizați && sudo apt instalare sshpass

Pe RHEL și Fedora

dnf instalare sshpass

După instalarea sshpass modificați scriptul astfel încât să arate după cum urmează.

#!/bin/bash
#Copiați datele pe un server la distanță
sshpass -p "parola Dvs" rsync -avl --mkpath /home/john nume_utilizator@server_la distanță/home/Backup

Aici furnizați parola în text simplu. Evident, aceasta nu este modalitatea ideală, deoarece nu este sigură și nu este o practică bună. Dacă scenariul ajunge vreodată în mâini greșite, ai probleme profunde.

Pentru a face acest lucru mai sigur, vom folosi GnuPG, un instrument de criptare securizat și open-source.

Criptarea parolei dvs

GnuPG este instalat implicit pe majoritatea sistemelor Linux, dar în cazul în care nu este instalat pe sistemul dvs., iată cum se instalează GnuPG.

Creați un fișier ascuns numit secrete folosind comanda atinge .secrete. Deoarece am făcut ca fișierul să fie ascuns în mod implicit ca măsură suplimentară de securitate, iată cum puteți vizualizați fișierele ascunse pe Linux.

În fișierul secrete, introduceți parola computerului la distanță și salvați-o.

Apoi, criptați fișierul folosind gpg comanda.

sudogpg.secrete

Vi se va solicita să introduceți o expresie de acces sigură și puternică pentru deschiderea fișierului criptat.

GnuPG va crea un fișier nou cu extensia .gpg atașat la vechiul nume de fișier. Noul tău nume de fișier ar trebui să fie acum secrete.gpg, presupunând că ați folosit secrete nume de fișier.

Dacă vizualizați conținutul secrets.gpg folosind pisică comandă, vi se va prezenta un text fars pentru a arăta că parola dvs. este criptată.

Pentru a vizualiza conținutul fișierului în text simplu, va trebui să îl decriptați folosind următoarea comandă (vi se va solicita să introduceți parola pe care ați setat-o ​​în timpul criptării):

gpg-dqsecret.gpg

Utilizarea unei parole criptate în scriptul dvs

Pentru a utiliza parola criptată în script, actualizați scriptul după cum urmează:

#!/bin/bash
#Copiați datele pe un server la distanță
gpg -dq secrete.gpg | sshpass rsync -avl --mkpath /home/john nume_utilizator@la distanta_server/acasă/Backup

Rulați din nou scripturile de rezervă și de data aceasta nu vi se va solicita o parolă.

Automatizați sarcinile cu scripturi Bash

GnuGP este folosit frecvent pentru securizarea fișierelor și datelor sensibile de pe computerul dvs. și este, de asemenea, un instrument excelent pentru securizarea parolelor în scripturile automate Bash pe Linux.

Puteți face multe cu scripturile Bash. Bash este un instrument puternic care vă poate ajuta să automatizați o mulțime de lucruri pe Linux și să învățați să scrieți scripturi Bash este o investiție utilă.