Bash scenarijai yra svarbi sistemos administratoriaus darbo dalis. Jie leidžia automatizuoti tiek kasdienes, tiek svarbias užduotis.
Vienas geriausių scenarijų dalykų yra tai, kad jie gali veikti savarankiškai be žmogaus įsikišimo, tačiau kartais gali būti sudėtinga automatizuoti užduotis, kurioms reikalingi vartotojo slaptažodžiai. Pažiūrėkime, kaip galite saugiai automatizuoti scenarijus, kuriems reikalingi slaptažodžiai, nepakenkiant saugumui.
Paprasto scenarijaus kūrimas
Tarkime, kad norite sukurti paprastą scenarijų, kuris sukurtų atsarginę „Linux“ namų aplanko kopiją nutolusioje vietoje, kad galėtumėte lengvai atkurti duomenis praradus duomenis.
Pradėkite sukurdami Bash scenarijaus failą savo namų aplanke, naudojant jutiklinę komandą ar bet kurį kitą metodą ir pavadinkite jį backup_home.sh. Nesivaržykite naudoti bet kokį jums patinkantį pavadinimą ir katalogą.
Scenarijus naudoja rsync komandą, galingą failų kopijavimo įrankį, kad būtų sukurtos visų vietinio namų katalogo failų atsarginės kopijos nuotoliniame serveryje.
Nukopijuokite šio scenarijaus turinį ir įklijuokite jį į savo Bash failą. Nepamirškite pakeisti vartotojo john teisingu vietinio namų vartotojo vardu. Taip pat nurodykite teisingą nuotolinio serverio vartotojo vardą ir IP adresą.
#!/bin/bash
# Nukopijuokite duomenis į nuotolinį serverį
rsync -avl --mkpath /home/john vartotojo_vardas@Nuotolinis_server/home/Backup
Jei neturite nuotolinio serverio, su kuriuo galėtumėte išbandyti, galite tiesiog įdiekite „VirtualBox“ ir nustatykite VM vietiniame kompiuteryje. Naudokite VM svečią kaip nuotolinį serverį.
Išsaugokite failą. Norėdami paleisti scenarijų, naudodami komandą turite suteikti jam vykdymo leidimą sudo chmod 755. Visi vartotojai gali vykdyti scenarijų, tačiau tik sudo vartotojai gali keisti failą.
Galiausiai paleiskite Bash scenarijų iš terminalo naudodami komandą:
./backup_home.sh
Kai paleisite šį scenarijų, būsite paraginti įvesti nuotolinio serverio slaptažodį. Tai nėra idealu, jei norite paleisti scenarijų be žmogaus įsikišimo, pvz., naudojant Cron.
Automatinis prisijungimas prie slaptažodžio
Diegti sshpass, neinteraktyvus slaptažodžių teikėjas, jūsų vietiniame kompiuteryje arba kompiuteryje, iš kurio paleisite scenarijų.
Debian pagrindu sukurtuose platinimuose
Jei naudojate Debian pagrindu sukurtą platinimą, pvz., Ubuntu, Pop!_OS ir Lubuntu:
sudo apt atnaujinti && sudo apt diegti sshpass
RHEL ir Fedora
dnf diegti sshpass
Įdiegę sshpass pakeiskite scenarijų, kad jis atrodytų taip.
#!/bin/bash
# Nukopijuokite duomenis į nuotolinį serverį
sshpass -p "Jūsų slaptažodis" rsync -avl --mkpath /home/john vartotojo_vardas@remote_server/home/Backup
Čia jūs pateikiate slaptažodį paprastu tekstu. Akivaizdu, kad tai nėra idealus būdas, nes tai nėra saugus ir netinkama praktika. Jei scenarijus kada nors atsidurs netinkamose rankose, turite didelių problemų.
Kad tai būtų saugesnė, naudosime GnuPG – saugų atvirojo kodo šifravimo įrankį.
Jūsų slaptažodžio šifravimas
GnuPG yra įdiegtas pagal numatytuosius nustatymus daugumoje Linux sistemų, bet jei jis nėra įdiegtas jūsų sistemoje, štai kaip įdiegti GnuPG.
Sukurkite paslėptą failą pavadinimu paslapčių naudojant komandą liesti .paslaptys. Kadangi pagal numatytuosius nustatymus failas buvo paslėptas kaip papildoma saugumo priemonė, štai kaip galite tai padaryti peržiūrėti paslėptus failus Linux.
Paslapčių faile įveskite nuotolinio kompiuterio slaptažodį ir išsaugokite jį.
Tada užšifruokite failą naudodami gpg komandą.
sudogpg.paslaptys
Būsite paraginti įvesti saugią ir patikimą slaptafrazę, kad atidarytumėte šifruotą failą.
GnuPG sukurs naują failą su plėtiniu .gpg pridėta prie senojo failo pavadinimo. Jūsų naujasis failo pavadinimas dabar turėtų būti paslaptys.gpg, darant prielaidą, kad naudojote paslapčių failo pavadinimas.
Jei peržiūrite secrets.gpg turinį naudodami katė komandą, jums bus pateiktas absurdiškas tekstas, rodantis, kad jūsų slaptažodis yra užšifruotas.
Norėdami peržiūrėti failo turinį paprastu tekstu, turėsite jį iššifruoti naudodami šią komandą (būsite paraginti įvesti slaptažodį, kurį nustatėte šifravimo metu):
gpg-dqslaptas.gpg
Šifruoto slaptažodžio naudojimas scenarijuje
Norėdami scenarijuje naudoti užšifruotą slaptažodį, atnaujinkite scenarijų taip:
#!/bin/bash
# Nukopijuokite duomenis į nuotolinį serverį
gpg -dq paslaptys.gpg | sshpass rsync -avl --mkpath /home/john vartotojo_vardas@Nuotolinis_server/home/Backup
Dar kartą paleiskite atsarginius scenarijus ir šį kartą nebūsite paraginti įvesti slaptažodžio.
Automatizuokite užduotis naudodami „Bash“ scenarijus
GnuGP dažnai naudojamas slaptiems failams ir duomenims jūsų kompiuteryje apsaugoti, taip pat yra puikus įrankis slaptažodžiams apsaugoti automatizuotuose „Bash“ scenarijuose „Linux“.
Naudodami „Bash“ scenarijus galite daug nuveikti. „Bash“ yra galingas įrankis, galintis padėti automatizuoti daugelį „Linux“ dalykų, o išmokti rašyti „Bash“ scenarijus yra verta investicija.