Bash skripty sú dôležitou súčasťou práce správcu systému. Umožňujú vám automatizovať bežné aj kritické úlohy.

Jednou z najlepších vecí na skriptoch je, že môžu bežať nezávisle bez ľudského zásahu, ale niekedy môže byť náročné automatizovať úlohy, ktoré vyžadujú používateľské heslá. Pozrime sa, ako môžete bezpečne automatizovať skripty, ktoré vyžadujú heslá, bez toho, aby ste ohrozili bezpečnosť.

Vytvorenie jednoduchého skriptu

Predpokladajme, že chcete vytvoriť jednoduchý skript, ktorý zálohuje váš domovský priečinok Linuxu na vzdialené miesto, aby ste mohli ľahko obnoviť svoje údaje v prípade straty údajov.

Začnite vytvorením súboru skriptu Bash vo svojom domovskom priečinku, pomocou dotykového príkazu alebo inú metódu a pomenujte ju backup_home.sh. Neváhajte použiť ľubovoľný názov a adresár, ktorý sa vám páči.

Skript používa rsync príkaz, výkonný nástroj na kopírovanie súborov, s cieľom zálohovať všetky súbory vo vašom lokálnom domovskom adresári na vzdialený server.

Skopírujte obsah nasledujúceho skriptu a vložte ho do súboru Bash. Nezabudnite nahradiť používateľa john správnym menom vášho miestneho domáceho používateľa. Zadajte tiež správne meno používateľa a adresu IP pre vzdialený server.

instagram viewer

#!/bin/bash
# Skopírujte údaje na vzdialený server
rsync -avl --mkpath /home/john user_name@diaľkové ovládanie_server/home/Backup

Ak nemáte vzdialený server na testovanie, môžete jednoducho nainštalujte VirtualBox a nastavte VM na vašom lokálnom počítači. Použite hosťa VM ako svoj vzdialený server.

Uložte súbor. Ak chcete spustiť skript, musíte mu udeliť povolenie na vykonanie pomocou príkazu sudo chmod 755. Všetci používatelia môžu spustiť skript, ale iba používatelia sudo môžu upraviť súbor.

Nakoniec spustite skript Bash z terminálu pomocou príkazu:

./backup_home.sh

Vždy, keď spustíte tento skript, budete vyzvaní na zadanie hesla vzdialeného servera. Toto nie je ideálne, ak chcete spustiť skript bez ľudského zásahu, ako napríklad pri používaní Cronu.

Automatické prihlásenie pomocou hesla

Inštalácia sshpass, poskytovateľa neinteraktívnych hesiel, na vašom lokálnom PC alebo PC, z ktorého budete skript spúšťať.

V distribúciách založených na Debiane

Ak používate distribúciu založenú na Debiane, ako je Ubuntu, Pop!_OS a Lubuntu:

sudo apt aktualizovať && sudo apt Inštalácia sshpass

Na RHEL a Fedore

dnf Inštalácia sshpass

Po inštalácii sshpass upravte skript tak, aby vyzeral nasledovne.

#!/bin/bash
# Skopírujte údaje na vzdialený server
sshpass -p "tvoje heslo" rsync -avl --mkpath /home/john user_name@remote_server/home/Backup

Tu zadáte heslo ako obyčajný text. Je zrejmé, že to nie je ideálny spôsob, pretože to nie je bezpečné a nie je to dobrý postup. Ak sa scenár niekedy dostane do nesprávnych rúk, máte veľké problémy.

Aby sme to zvýšili, použijeme GnuPG, bezpečný a open source šifrovací nástroj.

Šifrovanie vášho hesla

GnuPG je štandardne nainštalovaný na väčšine systémov Linux, ale v prípade, že nie je nainštalovaný vo vašom systéme, Tu je návod, ako nainštalovať GnuPG.

Vytvorte skrytý súbor s názvom tajomstvá pomocou príkazu dotýkať sa .tajomstiev. Keďže sme súbor predvolene skryli ako dodatočné bezpečnostné opatrenie, môžete to urobiť takto zobraziť skryté súbory v systéme Linux.

Do tajného súboru zadajte heslo svojho vzdialeného počítača a uložte ho.

Ďalej zašifrujte súbor pomocou gpg príkaz.

sudogpg.tajomstvá

Zobrazí sa výzva na zadanie bezpečnej a silnej prístupovej frázy na otvorenie zašifrovaného súboru.

GnuPG vytvorí nový súbor s príponou .gpg pripojený k starému názvu súboru. Váš nový názov súboru by teraz mal byť secrets.gpg, za predpokladu, že ste použili tajomstvá názov súboru.

Ak si prezeráte obsah secrets.gpg pomocou kat zobrazí sa vám nezmyselný text, ktorý ukáže, že vaše heslo je zašifrované.

Ak chcete zobraziť obsah súboru ako obyčajný text, musíte ho dešifrovať pomocou nasledujúceho príkazu (budete vyzvaní na zadanie hesla, ktoré ste nastavili počas šifrovania):

gpg-dqtajomstvo.gpg

Použitie šifrovaného hesla vo vašom skripte

Ak chcete v skripte použiť šifrované heslo, aktualizujte skript takto:

#!/bin/bash
# Skopírujte údaje na vzdialený server
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/john user_name@diaľkové ovládanie_server/home/Backup

Spustite záložné skripty znova a tentoraz nebudete vyzvaní na zadanie hesla.

Automatizujte úlohy pomocou Bash skriptov

GnuGP sa často používa na zabezpečenie citlivých súborov a údajov na vašom PC a je tiež skvelým nástrojom na zabezpečenie hesiel v automatizovaných skriptoch Bash v systéme Linux.

S Bash skriptami môžete robiť veľa. Bash je výkonný nástroj, ktorý vám môže pomôcť automatizovať veľa vecí v systéme Linux a naučiť sa písať skripty Bash je výhodná investícia.