Skrypty Bash są ważną częścią pracy administratora systemu. Pozwalają zautomatyzować zarówno przyziemne, jak i krytyczne zadania.

Jedną z największych zalet skryptów jest to, że mogą działać niezależnie, bez interwencji człowieka, ale czasami automatyzacja zadań wymagających hasła użytkownika może być trudna. Przyjrzyjmy się, jak można bezpiecznie zautomatyzować skrypty wymagające hasła bez narażania bezpieczeństwa.

Tworzenie prostego skryptu

Załóżmy, że chcesz utworzyć prosty skrypt, który tworzy kopię zapasową folderu domowego systemu Linux w zdalnej lokalizacji, aby można było łatwo przywrócić dane w przypadku ich utraty.

Zacznij od utworzenia pliku skryptu Bash w swoim folderze domowym, za pomocą polecenia dotykowego lub jakąkolwiek inną metodę i nazwij ją backup_home.sh. Możesz użyć dowolnej nazwy i katalogu według własnych upodobań.

Skrypt wykorzystuje tzw rsync polecenie, potężne narzędzie do kopiowania plików, w celu utworzenia kopii zapasowej wszystkich plików w lokalnym katalogu domowym na zdalnym serwerze.

instagram viewer

Skopiuj zawartość następującego skryptu i wklej ją do pliku Bash. Pamiętaj, aby zastąpić użytkownika john poprawną nazwą lokalnego użytkownika domowego. Podaj również poprawną nazwę użytkownika i adres IP serwera zdalnego.

#!/bin/bash
#Skopiuj dane na zdalny serwer
rsync -avl --mkpath /home/jan nazwa_użytkownika@zdalny_serwer/dom/kopia zapasowa

Jeśli nie masz zdalnego serwera do testowania, możesz po prostu zainstaluj VirtualBox i skonfiguruj maszynę wirtualną na twojej lokalnej maszynie. Użyj gościa maszyny wirtualnej jako serwera zdalnego.

Zapisz plik. Aby wykonać skrypt, musisz nadać mu uprawnienia do wykonywania za pomocą polecenia sudo chmod 755. Wszyscy użytkownicy mogą wykonywać skrypt, ale tylko użytkownicy sudo mogą modyfikować plik.

Na koniec wykonaj skrypt Bash z terminala za pomocą polecenia:

./backup_home.sh

Za każdym razem, gdy uruchomisz ten skrypt, zostaniesz poproszony o podanie hasła do zdalnego serwera. Nie jest to idealne rozwiązanie, jeśli chcesz uruchomić skrypt bez interwencji człowieka, na przykład podczas korzystania z Crona.

Automatyzacja logowania hasłem

zainstalować sshpass, nieinteraktywnego dostawcy haseł, na komputerze lokalnym lub komputerze, z którego uruchomisz skrypt.

W dystrybucjach opartych na Debianie

Jeśli korzystasz z dystrybucji opartej na Debianie, takiej jak Ubuntu, Pop!_OS i Lubuntu:

sudo apt aktualizacja && sudo apt zainstalować sshpass

Na RHEL i Fedorze

dnf zainstalować sshpass

Po zainstalowaniu sshpass zmodyfikuj skrypt tak, aby wyglądał następująco.

#!/bin/bash
#Skopiuj dane na zdalny serwer
sshpass -p "Twoje hasło" rsync -avl --mkpath /home/jan nazwa_użytkownika@serwer_zdalny/home/Backup

Tutaj podajesz hasło w postaci zwykłego tekstu. Oczywiście nie jest to idealny sposób, ponieważ nie jest bezpieczny i nie jest dobrą praktyką. Jeśli scenariusz kiedykolwiek trafi w niepowołane ręce, masz poważne kłopoty.

Aby uczynić to bardziej bezpiecznym, użyjemy GnuPG, bezpiecznego narzędzia szyfrującego o otwartym kodzie źródłowym.

Szyfrowanie hasła

GnuPG jest domyślnie instalowane w większości systemów Linux, ale jeśli nie jest zainstalowane w twoim systemie, oto jak zainstalować GnuPG.

Utwórz ukryty plik o nazwie tajniki za pomocą polecenia dotknąć .tajemnic. Ponieważ plik jest domyślnie ukryty jako dodatkowy środek bezpieczeństwa, oto jak to zrobić przeglądaj ukryte pliki w systemie Linux.

W pliku tajnym wprowadź hasło zdalnego komputera i zapisz je.

Następnie zaszyfruj plik za pomocą gpg Komenda.

Sudogpg.tajniki

Zostaniesz poproszony o wprowadzenie bezpiecznego i silnego hasła do otwarcia zaszyfrowanego pliku.

GnuPG utworzy nowy plik z rozszerzeniem .gpg dołączone do starej nazwy pliku. Twoja nowa nazwa pliku powinna być teraz sekrety.gpg, zakładając, że użyłeś tajniki Nazwa pliku.

Jeśli przeglądasz zawartość secrets.gpg za pomocą kot polecenie, zostanie wyświetlony bełkotliwy tekst, aby pokazać, że twoje hasło jest zaszyfrowane.

Aby wyświetlić zawartość pliku w postaci zwykłego tekstu, musisz go odszyfrować za pomocą następującego polecenia (zostaniesz poproszony o podanie hasła ustawionego podczas szyfrowania):

gpg-dqsekret.gpg

Używanie zaszyfrowanego hasła w skrypcie

Aby użyć zaszyfrowanego hasła w skrypcie, zaktualizuj skrypt w następujący sposób:

#!/bin/bash
#Skopiuj dane na zdalny serwer
gpg -dq sekrety.gpg | sshpass rsync -avl --mkpath /home/jan nazwa_użytkownika@zdalny_serwer/dom/kopia zapasowa

Uruchom ponownie skrypty kopii zapasowej i tym razem nie pojawi się monit o podanie hasła.

Zautomatyzuj zadania za pomocą skryptów Bash

GnuGP jest często używany do zabezpieczania poufnych plików i danych na komputerze, a także jest doskonałym narzędziem do zabezpieczania haseł w zautomatyzowanych skryptach Bash w systemie Linux.

Jest wiele rzeczy, które możesz zrobić ze skryptami Bash. Bash to potężne narzędzie, które może pomóc zautomatyzować wiele rzeczy w systemie Linux, a nauka pisania skryptów Bash jest opłacalną inwestycją.