diff options
-rw-r--r-- | passwort-tresor.in | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/passwort-tresor.in b/passwort-tresor.in index 926982e..b8e23b5 100644 --- a/passwort-tresor.in +++ b/passwort-tresor.in @@ -26,11 +26,12 @@ verwendung() >&2 echo '' >&2 echo 'Usage: '"$(basename "$0") [OPTIONS]" >&2 echo '' - >&2 echo ' -b,--blind=blindheit Schwere der Fehler, die ignoriert werden (0,1,2,3)' - >&2 echo ' -d,--datei=datei verschlüsselte Datei' - >&2 echo ' -g,--grep nach etwas greppen und in die Zwischenablage übernehmen; nicht zusammen mit -n verwendbar' - >&2 echo ' -n,--neu neues Passwort abspeichern; nicht zusammen mit -g verwendbar' - >&2 echo ' -s,--summe=datei Prüfsummendatei der verschlüsselten Datei' + >&2 echo ' -b,--blind=blindheit Schwere der Fehler, die ignoriert werden (0,1,2,3)' + >&2 echo ' -d,--datei=datei verschlüsselte Datei' + >&2 echo ' -g,--grep nach etwas greppen und in die Zwischenablage übernehmen; nicht zusammen mit -n verwendbar' + >&2 echo ' -n,--neu neues Passwort abspeichern; nicht zusammen mit -g verwendbar' + >&2 echo ' -s,--summe=datei Prüfsummendatei der verschlüsselten Datei' + >&2 echo ' -z,--zufaellig[=Laenge] neues Passwort der Länge Laenge (Standard = 8) zufällig generieren; impliziert -n' >&2 echo \ '#HELPTEXT# #' >&2 echo '' @@ -39,7 +40,7 @@ verwendung() } eval set -- "$( - getopt -o b:d:gns: \ + getopt -o b:d:gns:z:: \ --long blind: \ --long datei: \ --long grep \ @@ -47,6 +48,7 @@ eval set -- "$( --long neu \ --long summe: \ --long version \ + --long zufaellig:: \ -n "$(basename "$0")" \ -- "$@" \ || echo "verwendung" @@ -56,6 +58,7 @@ args=("$@") greppw=false neu=false blind=0 +pwLen=-1 [ -r "#ETCDIR#/passwort-tresor.konf" ] && \ . "#ETCDIR#/passwort-tresor.konf" @@ -87,6 +90,12 @@ do shift summe="$1" ;; + -z|--zufaellig) + shift + neu=true + [ -z "$1" ] && pwLen=8 || pwLen=$1 + [ ${pwLen} -lt 0 ] && verwendung + ;; --version) >&2 echo '#VERSION#' exit 0 @@ -142,14 +151,23 @@ if ${neu} then read -p 'Dienst: ' dienst read -p 'Benutzer: ' benutzer - read -sp 'Passwort: ' pw1 - echo '' - read -sp 'noch Mal: ' pw2 - echo '' - if [ ! "${pw1}" == "${pw2}" ] + if [ ${pwLen} -lt 0 ] then - >&2 echo 'Die Passwörter unterscheiden sich!' - beenden 1 + read -sp 'Passwort: ' pw1 + echo '' + read -sp 'noch Mal: ' pw2 + echo '' + if [ ! "${pw1}" == "${pw2}" ] + then + >&2 echo 'Die Passwörter unterscheiden sich!' + beenden 1 + fi + else + pw1="$( + head -c ${pwLen} /dev/urandom | \ + base64 | \ + head -c ${pwLen} + )" fi fi |