Hallo schreibe hier zum ersten mal, und hoffe das das Thema im richtigen Forum ist.
Also (ja man fängt so nicht an ;-) ) ich bin gerade an meinen ersten bash script dran momentan sieht es so aus:
#!/bin/bash
SEL=$1
## path to binaries
BIN_GPG='/usr/bin/gpg'
## path to password file
PWFILE="pw.txt"
## extension for crypted files
ENC_EXT=".gpg"
## gpg to encrypt
EXEC_ENC="gpg --force-mdc --passphrase-file $PWFILE -c "
## Decrypt with Password
EXEC_DECP="gpg --decrypt --output"
## Decrypt with Password file
EXEC_DECPF="gpg --decrypt --passphrase-file $PWFILE --output"
## shred
EXEC_SHR="shred -un 2"
## min/max password length
LEN_MAX="80"
LEN_MIN="6"
## root check
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root"
exit;
fi
case $SEL in
--encrypt)
ENC_FILE=$3
METH=$2
##Password check and creat password
if [ -f "$PWFILE" ]; then
PW=`cat $PWFILE`
PW_LEN=${#PW}
else
echo "Keine Password Datei vorhanden -> Password wird generiert und in der pw.txt abgelegt"
MATRIX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
LENGTH="70"
while [ "${n:=1}" -le "$LENGTH" ]
do
PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
touch pw.txt
echo "$PASS" >> pw.txt
PW=`cat $PWFILE`
PW_LEN=${#PW}
fi
## check password length
if [ "$PW_LEN" -gt "$LEN_MAX" ]; then
echo "Password too long"
exit
elif [ "$PW_LEN" -lt "$LEN_MIN" ]; then
echo "Password too short"
exit
fi
## With shred
if [ "$METH" == "--shred" ]; then
METH=$2
else
ENC_FILE=$2
fi
## check file to encrypt and crypt
if [ -f "$ENC_FILE" ]; then
echo "Encrypting File: $ENC_FILE -> $ENC_FILE$ENC_EXT"
$EXEC_ENC $ENC_FILE
elif [ ! $ENC_FILE ]; then
echo "File non existant or parameter empty"
exit
fi
if [ -f "$ENC_FILE" ]; then
echo "$ENC_FILE exist"
else
echo "$ENC_FILE not found -> exit"
exit
fi
#if
# ["$METH" == "--shred"; then
# exec_SHRN=2
#fi
#if [ "METH" == "--shred EXEC_SHRN"; then
# read EXEC_SHRN
#fi
if [ "$METH" == "--shred" ]; then
$EXEC_SHR $ENC_FILE $ENC_FILE
echo "File was Delet"
exit
elif
[ "$METH" == "" ]; then
echo "Datei bleibt erhalten"
exit
fi
## check original file and delet with shred
#if [ -f "$ENC_FILE" ]; then
# echo "$ENC_FILE exist and delet with shred"
# $EXEC_SHR $ENC_FILE $ENC_FILE
# echo "$ENC_FILE was delet"
#elif [ ! "$ENC_FILE" ]; then
# echo "File wasn't deleted"
# exit
#fi
exit
;;
--decrypt)
ENC_FILE=$3
DEC_FILE=$4
METH=$2
echo "Bitte Neuen Dateinamen fue die entschluesselte Datei angeben und den Pfad"
read DEC_FILE
if [ "$METH" == "--password" ]; then
echo "Now decrypt $ENC_FILE with Password -> $DEC_FILE"
$EXEC_DECP $DEC_FILE $ENC_FILE
exit
elif [ ! "$DEC_FILE" ]; then
echo "File non existant or parameter empty, bitte --file oder --password fuer die password eingabe angeben"
exit
elif [ "$METH" == "" ]; then
echo "Bitte --file oder --password fuer die password eingabe angeben"
exit
## Decrypt with password file
elif [ "$METH" == "--file" ]; then
echo "Now decrypt $ENC_FILE with Password File -> $DEC_FILE"
$EXEC_DECPF $DEC_FILE $ENC_FILE
exit
elif [ ! "$DEC_FILE" ]; then
echo "File non existant or parameter empty, bitte --file oder --password fuer die password eingabe angeben"
elif [ "$METH" == "" ]; then
echo "Bitte --file oder --password fuer die password eingabe angeben"
exit
fi
exit
;;
*)
echo "Please write --decrypt or --encrypt, "
exit
;;
So nun soll es so weitergehen dass das Script seine Einstellungen aus einer Config Datei ziehen soll. Ich denke ich weiß wie ich eine config Datei einbinde "source <pfad>", aber nun kommt das woran ich etwas hänge. Und zwar soll das Script wie gesagt die Daten aus einer config auslesen aber die Kommandozeile (sprich die daten so eingeben wie z.b ./test --encrypt --shred) soll trotzdem noch funktionieren. Könntet ihr mir da einen kleinen Tipp geben, oder erklären wie ich das umsetzten könnte. Danke im vor raus :-) .
Grüße Cas