Bash-skript er en viktig del av en systemadministrators jobb. De lar deg automatisere både hverdagslige og kritiske oppgaver.

Noe av det beste med skript er at de kan kjøres uavhengig uten menneskelig innblanding, men noen ganger kan det være utfordrende å automatisere oppgaver som krever brukerpassord. La oss se på hvordan du sikkert kan automatisere skript som krever passord uten at det går på bekostning av sikkerheten.

Opprette et enkelt skript

La oss anta at du vil lage et enkelt skript som sikkerhetskopierer Linux-hjemmemappen til et eksternt sted, slik at du enkelt kan gjenopprette dataene dine i tilfelle tap av data.

Start med å lage en Bash-skriptfil i hjemmemappen din, ved å bruke berøringskommandoen eller en hvilken som helst annen metode, og navngi den backup_home.sh. Bruk gjerne et hvilket som helst navn og katalog du liker.

Skriptet bruker rsync kommando, et kraftig filkopieringsverktøy, for å sikkerhetskopiere alle filer i din lokale hjemmekatalog til en ekstern server.

Kopier innholdet i følgende skript og lim det inn i Bash-filen. Husk å erstatte brukeren john med det riktige navnet på din lokale hjemmebruker. Oppgi også riktig brukernavn og IP-adresse for den eksterne serveren.

#!/bin/bash
#Kopier data til en ekstern server
rsync -avl --mkpath /home/john brukernavn@fjernkontroll_server/hjem/sikkerhetskopi

Hvis du ikke har en ekstern server å teste med, kan du enkelt installer VirtualBox og sett opp en VM på din lokale maskin. Bruk VM-gjesten som ekstern server.

Lagre filen. For å utføre skriptet må du gi det kjøretillatelsen ved å bruke kommandoen sudo chmod 755. Alle brukere kan kjøre skriptet, men bare sudo-brukere kan endre filen.

Til slutt, utfør Bash-skriptet fra terminalen ved å bruke kommandoen:

./backup_home.sh

Hver gang du kjører dette skriptet, blir du bedt om å angi passordet til den eksterne serveren. Dette er ikke ideelt hvis du vil kjøre skriptet uten menneskelig innblanding, for eksempel når du bruker Cron.

Automatisering av passordpålogging

Installere sshpass, en ikke-interaktiv passordleverandør, på din lokale PC eller PCen du skal kjøre skriptet fra.

På Debian-baserte distroer

Hvis du er på en Debian-basert distro som Ubuntu, Pop!_OS og Lubuntu:

sudo apt Oppdater && sudo apt installere sshpass

På RHEL og Fedora

dnf installere sshpass

Etter å ha installert sshpass, endre skriptet slik at det ser ut som følger.

#!/bin/bash
#Kopier data til en ekstern server
sshpass -s "ditt passord" rsync -avl --mkpath /home/john brukernavn@remote_server/home/Backup

Her oppgir du passordet i ren tekst. Dette er åpenbart ikke den ideelle måten, siden det ikke er sikkert og ikke god praksis. Hvis manuset noen gang havner i feil hender, er du i store problemer.

For å gjøre dette sikrere, bruker vi GnuPG, et sikkert og åpen kildekodekrypteringsverktøy.

Kryptering av passordet ditt

GnuPG er installert som standard på de fleste Linux-systemer, men i tilfelle det ikke er installert på systemet ditt, her er hvordan du installerer GnuPG.

Lag en skjult fil med navnet hemmeligheter ved å bruke kommandoen berør .hemmeligheter. Siden vi har gjort filen skjult som standard som et ekstra sikkerhetstiltak, er det slik du kan gjøre det se skjulte filer på Linux.

I hemmeligheter-filen skriver du inn passordet til den eksterne PC-en og lagrer det.

Deretter krypterer du filen ved å bruke gpg kommando.

sudogpg.hemmeligheter

Du vil bli bedt om å angi en sikker og sterk passordfrase for å åpne den krypterte filen.

GnuPG vil opprette en ny fil med utvidelsen .gpg lagt til det gamle filnavnet. Ditt nye filnavn skal nå være hemmeligheter.gpg, forutsatt at du brukte hemmeligheter filnavn.

Hvis du ser innholdet i secrets.gpg ved hjelp av katt kommando, vil du bli presentert med noe tulltekst for å vise at passordet ditt er kryptert.

For å se innholdet i filen i ren tekst, må du dekryptere den ved å bruke følgende kommando (du vil bli bedt om å skrive inn passordet du anga under kryptering):

gpg-dqhemmelig.gpg

Bruke et kryptert passord i skriptet ditt

For å bruke det krypterte passordet i skriptet, oppdater skriptet som følger:

#!/bin/bash
#Kopier data til en ekstern server
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/john brukernavn@fjernkontroll_server/hjem/sikkerhetskopi

Kjør sikkerhetskopieringsskriptene igjen, og denne gangen blir du ikke bedt om passord.

Automatiser oppgaver med Bash-skript

GnuGP brukes ofte for å sikre sensitive filer og data på din PC og er også et flott verktøy for å sikre passord i automatiserte Bash-skript på Linux.

Det er mye du kan gjøre med Bash-skript. Bash er et kraftig verktøy som kan hjelpe deg med å automatisere mange ting på Linux, og å lære å skrive Bash-skript er en verdifull investering.