Bash-scripts er en vigtig del af en systemadministrators job. De giver dig mulighed for at automatisere både hverdagsagtige og kritiske opgaver.

En af de bedste ting med scripts er, at de kan køre uafhængigt uden menneskelig indgriben, men nogle gange kan det være udfordrende at automatisere opgaver, der kræver brugeradgangskoder. Lad os se på, hvordan du sikkert kan automatisere scripts, der kræver adgangskoder uden at gå på kompromis med sikkerheden.

Oprettelse af et simpelt script

Lad os antage, at du vil oprette et simpelt script, der sikkerhedskopierer din Linux-hjemmemappe til en fjernplacering, så du nemt kan gendanne dine data i tilfælde af datatab.

Start med at oprette en Bash-scriptfil i din hjemmemappe, ved hjælp af berøringskommandoen eller enhver anden metode, og navngiv den backup_home.sh. Du er velkommen til at bruge et hvilket som helst navn og mappe efter din smag.

Scriptet bruger rsync kommando, et kraftfuldt filkopieringsværktøj, for at sikkerhedskopiere alle filer i din lokale hjemmemappe til en ekstern server.

instagram viewer

Kopier indholdet af følgende script og indsæt det i din Bash-fil. Husk at erstatte brugeren john med det korrekte navn på din lokale hjemmebruger. Angiv også det korrekte brugernavn og IP-adresse til fjernserveren.

#!/bin/bash
#Kopiér data til en ekstern server
rsync -avl --mkpath /home/john brugernavn@fjern_server/home/Backup

Hvis du ikke har en fjernserver at teste med, kan du ganske enkelt installer VirtualBox og opsæt en VM på din lokale maskine. Brug VM-gæsten som din fjernserver.

Gem filen. For at udføre scriptet skal du give det udførelsestilladelsen ved hjælp af kommandoen sudo chmod 755. Alle brugere kan udføre scriptet, men kun sudo-brugerne kan ændre filen.

Til sidst skal du udføre Bash-scriptet fra terminalen ved hjælp af kommandoen:

./backup_home.sh

Når du kører dette script, bliver du bedt om at indtaste adgangskoden til fjernserveren. Dette er ikke ideelt, hvis du vil køre scriptet uden menneskelig indgriben, såsom når du bruger Cron.

Automatisering af adgangskodelogin

Installere sshpass, en ikke-interaktiv adgangskodeudbyder, på din lokale pc eller den pc, som du vil køre scriptet fra.

På Debian-baserede distributioner

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

sudo apt opdatering && sudo apt installere sshpass

På RHEL og Fedora

dnf installere sshpass

Efter installation af sshpass skal du ændre scriptet, så det ser ud som følger.

#!/bin/bash
#Kopiér data til en ekstern server
sshpass -s "dit kodeord" rsync -avl --mkpath /home/john brugernavn@remote_server/home/Backup

Her angiver du adgangskoden i almindelig tekst. Dette er naturligvis ikke den ideelle måde, da det ikke er sikkert og ikke god praksis. Hvis manuskriptet nogensinde lander i de forkerte hænder, er du i dybe problemer.

For at gøre dette mere sikkert bruger vi GnuPG, et sikkert og open source krypteringsværktøj.

Kryptering af din adgangskode

GnuPG er som standard installeret på de fleste Linux-systemer, men hvis det ikke er installeret på dit system, her er, hvordan du installerer GnuPG.

Opret en skjult fil med navnet hemmeligheder ved hjælp af kommandoen berør .hemmeligheder. Da vi har gjort filen skjult som standard som en ekstra sikkerhedsforanstaltning, er det sådan, du kan se skjulte filer på Linux.

Indtast adgangskoden til din fjern-pc i hemmelighedsfilen og gem den.

Derefter skal du kryptere filen ved hjælp af gpg kommando.

sudogpg.hemmeligheder

Du bliver bedt om at indtaste en sikker og stærk adgangssætning til at åbne den krypterede fil.

GnuPG vil oprette en ny fil med udvidelsen .gpg tilføjet til det gamle filnavn. Dit nye filnavn skulle nu være hemmeligheder.gpg, forudsat at du brugte hemmeligheder filnavn.

Hvis du ser indholdet af secrets.gpg ved hjælp af kat kommando, vil du blive præsenteret for noget volapyk-tekst for at vise, at din adgangskode er krypteret.

For at se indholdet af filen i almindelig tekst, skal du dekryptere den ved hjælp af følgende kommando (du bliver bedt om at indtaste den adgangskode, du indstillede under kryptering):

gpg-dqhemmeligt.gpg

Brug af en krypteret adgangskode i dit script

For at bruge den krypterede adgangskode i scriptet skal du opdatere scriptet som følger:

#!/bin/bash
#Kopiér data til en ekstern server
gpg -dq secrets.gpg | sshpass rsync -avl --mkpath /home/john brugernavn@fjern_server/home/Backup

Kør backup-scripts igen, og denne gang bliver du ikke bedt om en adgangskode.

Automatiser opgaver med Bash-scripts

GnuGP bruges ofte til at sikre følsomme filer og data på din pc og er også et fantastisk værktøj til at sikre adgangskoder i automatiserede Bash-scripts på Linux.

Der er meget, du kan gøre med Bash-scripts. Bash er et kraftfuldt værktøj, der kan hjælpe dig med at automatisere en masse ting på Linux, og at lære at skrive Bash-scripts er en værdifuld investering.