Bash skripte važan su dio posla administratora sustava. Omogućuju automatizaciju običnih i kritičnih zadataka.

Jedna od najboljih stvari sa skriptama je ta da se mogu izvoditi neovisno bez ljudske intervencije, ali ponekad može biti izazovno automatizirati zadatke koji zahtijevaju korisničke lozinke. Pogledajmo kako možete sigurno automatizirati skripte koje zahtijevaju lozinke bez ugrožavanja sigurnosti.

Stvaranje jednostavne skripte

Pretpostavimo da želite stvoriti jednostavnu skriptu koja sigurnosno kopira vašu matičnu mapu Linuxa na udaljenu lokaciju kako biste mogli jednostavno vratiti svoje podatke u slučaju gubitka podataka.

Započnite stvaranjem datoteke Bash skripte u vašoj početnoj mapi, pomoću naredbe dodir ili bilo koju drugu metodu i imenujte je backup_home.sh. Slobodno upotrijebite bilo koje ime i imenik po želji.

Skripta koristi rsync naredba, moćan alat za kopiranje datoteka, kako biste sigurnosno kopirali sve datoteke u vašem lokalnom početnom direktoriju na udaljeni poslužitelj.

instagram viewer

Kopirajte sadržaj sljedeće skripte i zalijepite je u svoju Bash datoteku. Ne zaboravite zamijeniti korisnika john ispravnim imenom vašeg lokalnog kućnog korisnika. Također navedite ispravno korisničko ime i IP adresu za udaljeni poslužitelj.

#!/bin/bash
#Kopiraj podatke na udaljeni poslužitelj
rsync -avl --mkpath /home/john korisničko_ime@daljinski_server/home/Backup

Ako nemate udaljeni poslužitelj za testiranje, možete jednostavno instalirati VirtualBox i postaviti VM na vašem lokalnom računalu. Koristite VM gosta kao svoj udaljeni poslužitelj.

Spremite datoteku. Da biste izvršili skriptu, morate joj dodijeliti dopuštenje za izvršenje pomoću naredbe sudo chmod 755. Svi korisnici mogu izvršiti skriptu, ali samo sudo korisnici mogu mijenjati datoteku.

Na kraju, izvršite Bash skriptu s terminala pomoću naredbe:

./backup_home.sh

Kad god pokrenete ovu skriptu, od vas će se tražiti da unesete lozinku udaljenog poslužitelja. Ovo nije idealno ako želite pokrenuti skriptu bez ljudske intervencije, kao kada koristite Cron.

Automatizirana prijava lozinkom

Instalirati sshpass, neinteraktivnog pružatelja lozinki, na vašem lokalnom računalu ili računalu s kojeg ćete pokrenuti skriptu.

Na distribucijama temeljenim na Debianu

Ako koristite distribuciju temeljenu na Debianu kao što su Ubuntu, Pop!_OS i Lubuntu:

sudo apt Ažuriraj && sudo apt instalirati sshpass

Na RHEL-u i Fedori

dnf instalirati sshpass

Nakon instaliranja sshpassa modificirajte skriptu tako da izgleda ovako.

#!/bin/bash
#Kopiraj podatke na udaljeni poslužitelj
sshpass -p "tvoja lozinka" rsync -avl --mkpath /home/john user_name@remote_server/home/Backup

Ovdje unosite lozinku u običnom tekstu. Očito, ovo nije idealan način, budući da nije siguran i nije dobra praksa. Ako scenarij ikada dospije u krive ruke, u velikoj ste nevolji.

Kako bismo ovo učinili sigurnijim, koristit ćemo GnuPG, siguran alat za enkripciju otvorenog koda.

Šifriranje vaše lozinke

GnuPG je instaliran prema zadanim postavkama na većini Linux sustava, ali u slučaju da nije instaliran na vašem sustavu, evo kako instalirati GnuPG.

Stvorite skrivenu datoteku pod nazivom tajne pomoću naredbe dodir .tajne. Budući da smo datoteku učinili skrivenom prema zadanim postavkama kao dodatnu sigurnosnu mjeru, evo kako možete pregled skrivenih datoteka na Linuxu.

U tajnu datoteku unesite lozinku svog udaljenog računala i spremite je.

Zatim šifrirajte datoteku pomoću gpg naredba.

sudogpg.tajne

Od vas će se tražiti da unesete sigurnu i jaku šifru za otvaranje šifrirane datoteke.

GnuPG će stvoriti novu datoteku s ekstenzijom .gpg pridodan starom nazivu datoteke. Vaš novi naziv datoteke sada bi trebao biti tajne.gpg, pod pretpostavkom da ste koristili tajne naziv datoteke.

Ako pregledavate sadržaj secrets.gpg pomoću mačka naredbu, prikazat će vam se besmislica koja pokazuje da je vaša lozinka šifrirana.

Da biste vidjeli sadržaj datoteke u običnom tekstu, morat ćete je dešifrirati pomoću sljedeće naredbe (od vas će se tražiti da unesete lozinku koju ste postavili tijekom enkripcije):

gpg-dqtajna.gpg

Korištenje šifrirane lozinke u vašoj skripti

Da biste koristili šifriranu lozinku u skripti, ažurirajte skriptu na sljedeći način:

#!/bin/bash
#Kopiraj podatke na udaljeni poslužitelj
gpg -dq tajne.gpg | sshpass rsync -avl --mkpath /home/john korisničko_ime@daljinski_server/home/Backup

Ponovno pokrenite skripte za sigurnosno kopiranje i ovaj put od vas neće biti tražena lozinka.

Automatizirajte zadatke s Bash skriptama

GnuGP se često koristi za osiguravanje osjetljivih datoteka i podataka na vašem računalu, a također je izvrstan alat za osiguranje lozinki u automatiziranim Bash skriptama na Linuxu.

Puno toga možete učiniti s Bash skriptama. Bash je moćan alat koji vam može pomoći da automatizirate puno stvari na Linuxu, a učenje pisanja Bash skripti isplativa je investicija.