A Bash szkriptek fontos részét képezik a rendszergazdák munkájának. Lehetővé teszik a hétköznapi és kritikus feladatok automatizálását.

A szkriptekkel az egyik legjobb dolog, hogy emberi beavatkozás nélkül is futhatnak függetlenül, de néha kihívást jelenthet a felhasználói jelszavakat igénylő feladatok automatizálása. Nézzük meg, hogyan automatizálhatja biztonságosan a jelszavakat igénylő szkripteket a biztonság veszélyeztetése nélkül.

Egyszerű szkript létrehozása

Tételezzük fel, hogy egy egyszerű szkriptet szeretne létrehozni, amely biztonsági másolatot készít a Linux otthoni mappájáról egy távoli helyre, így könnyen visszaállíthatja adatait adatvesztés esetén.

Kezdje azzal, hogy hozzon létre egy Bash script fájlt a saját mappájában, érintés parancs segítségével vagy bármilyen más módszert, és nevezze meg backup_home.sh. Nyugodtan használjon tetszőleges nevet és könyvtárat.

A szkript a rsync parancs, egy hatékony fájlmásoló eszköz, amellyel biztonsági másolatot készíthet a helyi saját könyvtárában lévő összes fájlról egy távoli kiszolgálóra.

Másolja ki a következő szkript tartalmát, és illessze be a Bash fájlba. Ne felejtse el lecserélni a john felhasználót a helyi otthoni felhasználó megfelelő nevére. Adja meg a távoli kiszolgáló megfelelő felhasználónevét és IP-címét is.

#!/bin/bash
#Adatok másolása távoli szerverre
rsync -avl --mkpath /home/john felhasználónév@távoli_server/home/Backup

Ha nincs távoli szervere a teszteléshez, egyszerűen megteheti telepítse a VirtualBoxot, és állítson be egy virtuális gépet a helyi gépen. Használja a virtuális gép vendégét távoli kiszolgálóként.

Mentse el a fájlt. A szkript végrehajtásához meg kell adni a végrehajtási engedélyt a parancs segítségével sudo chmod 755. Minden felhasználó végrehajthatja a szkriptet, de csak a sudo felhasználók módosíthatják a fájlt.

Végül futtassa a Bash szkriptet a terminálról a következő paranccsal:

./backup_home.sh

A szkript futtatásakor a rendszer kérni fogja a távoli kiszolgáló jelszavának megadását. Ez nem ideális, ha emberi beavatkozás nélkül szeretné futtatni a szkriptet, például a Cron használatakor.

Jelszavas bejelentkezés automatizálása

Telepítés sshpass, egy nem interaktív jelszószolgáltató, a helyi számítógépen vagy azon a számítógépen, amelyről a szkriptet futtatja.

Debian alapú disztribúciókon

Ha Debian-alapú disztribúciót használ, például Ubuntu, Pop!_OS és Lubuntu:

sudo apt frissítés && sudo apt telepítés sshpass

RHEL-en és Fedorán

dnf telepítés sshpass

Az sshpass telepítése után módosítsa a szkriptet úgy, hogy az a következőképpen nézzen ki.

#!/bin/bash
#Adatok másolása távoli szerverre
sshpass -p "a jelszavad" rsync -avl --mkpath /home/john user_name@remote_server/home/Backup

Itt adja meg a jelszót egyszerű szöveggel. Nyilvánvalóan ez nem az ideális módszer, mivel nem biztonságos és nem jó gyakorlat. Ha a forgatókönyv rossz kezekbe kerül, akkor nagy bajban vagy.

A biztonságosabbá tétel érdekében a GnuPG-t, egy biztonságos és nyílt forráskódú titkosító eszközt fogunk használni.

Jelszó titkosítása

A GnuPG alapértelmezés szerint a legtöbb Linux rendszeren telepítve van, de ha nincs telepítve az Ön rendszerére, így kell telepíteni a GnuPG-t.

Hozzon létre egy rejtett fájlt titkok parancs segítségével érintse meg .titkait. Mivel extra biztonsági intézkedésként a fájlt alapértelmezés szerint elrejtettük, a következőképpen teheti meg rejtett fájlok megtekintése Linuxon.

A titkos fájlba írja be a távoli számítógép jelszavát, és mentse el.

Ezután titkosítsa a fájlt a gpg parancs.

sudogpg.titkok

A rendszer arra kéri, hogy adjon meg egy biztonságos és erős jelszót a titkosított fájl megnyitásához.

A GnuPG új fájlt hoz létre a kiterjesztéssel .gpg hozzáfűzve a régi fájlnévhez. Az új fájlnévnek most a következőnek kell lennie titkok.gpg, feltételezve, hogy a titkok fájl név.

Ha a secrets.gpg tartalmát a macska parancsot, akkor megjelenik egy halandzsa szöveg, amely jelzi, hogy jelszava titkosított.

A fájl tartalmának egyszerű szöveges megjelenítéséhez a következő paranccsal vissza kell fejteni a titkosítást (a rendszer megkéri a titkosítás során beállított jelszó megadására):

gpg-dqtitkos.gpg

Titkosított jelszó használata a szkriptben

A titkosított jelszó használatához a szkriptben frissítse a szkriptet az alábbiak szerint:

#!/bin/bash
#Adatok másolása távoli szerverre
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/john felhasználónév@távoli_server/home/Backup

Futtassa újra a biztonsági mentési szkripteket, és ezúttal nem kell jelszót megadnia.

Automatizálja a feladatokat Bash szkriptekkel

A GnuGP-t gyakran használják érzékeny fájlok és adatok védelmére a számítógépen, és kiváló eszköz a jelszavak védelmére az automatizált Bash szkriptekben Linuxon.

A Bash-szkriptekkel sok mindent megtehetsz. A Bash egy hatékony eszköz, amellyel rengeteg dolgot automatizálhat Linuxon, és a Bash-szkriptek írásának megtanulása megtérülő befektetés.