summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--passwort-tresor.in44
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