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.