Linux Passwortgenerator
Wer kennt das nicht: man benötigt ein Passwort. Es muss eine bestimmte Länge haben, Zahlen Buchstaben (große und kleine) enthalten und eventuell sogar noch das eine oder andere Sonderzeichen. Zusätzlich muss es auch noch sicher sein. Heute greift man dafür gerne aus Passwortgeneratoren zurück. Ich zeige wie man sich schnell und einfach einen eigenen Passwortgenerator unter Linux erstellt.
Mein Linux Passwortgenerator
Für die alltägliche Erstellung eigener sicherer Passwörter habe ich mir ein Shell Skript zusammengestellt, welches mir auf Knopfdruck das gewünschte Passwort liefert. Das Skript wird über einen Funktionsnamen und der Länge des Passworts als Parameter in der Shell aufgerufen. Einige Beispielausgaben des Skripts sind im Bild zu sehen. Wie macht man das?
Bash Funktionen erstellen
Die Kommandozeile bei Linux ist durch die Shell realisiert. Es gibt viele unterschiedliche Shell Programme, unter Ubuntu ist das beispielsweise standardmäßig die Bash. Wie immer unter Linux kann man sich das System nach eigenen Wünschen konfigurieren, so kann man die Bash auch um zusätzliche Funktionen erweitern. Funktionen und Variablen kann man im eigenen home Ordner in der Datei .bashrc hinzufügen. Das geht folgendermaßen:
cd nano .bashrc
Die zusätzliche Funktionalität können wir am Ende der Datei einfügen.
Passwort Skript
Mit folgender Funktion kann man die Passwortfunktion der Bash hinzufügen:
genpasswd() { local l=$1 [ "$l" == "" ] && l=8 tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs }
Was macht die Funktion genau?
- Zeile 1: hier wird die Funktion definiert. Der Funktionsname genpasswd ist der Name der Funktion, die man in der Shell aufrufen kann. Dieser Funktionsname kann man gerne selber definieren.
- Zeile 2: in der Variable mit dem Namen „l“ speichern wir den Wert des ersten Parameters (das wird die gewünschte Passwortlänge als Zahl sein).
- Zeile 3: falls kein Parameter übergeben wird, dann setzen wir hier die Passwortlänge fix auf 8 Zeichen.
- Zeile 4: in dieser Zeile wird das Passwort erstellt
- tr: mit dem translate characters Kommando filtert man aus einer Zufallsmenge an Zeichen nur bestimmte heraus. In diesem Fall bekommen wir von /dev/urandom zufällige Zeichen, von dieser Menge behalten wir nur Großbuchstaben (A-Z), Kleinbuchstaben (a-z), Zahlen (0-9) und das Zeichen „_“. Je nach gewünschten Passwort-Typ kann man weitere Zeichen angeben. Das Ergebnis des tr Kommandos senden wir an das head Kommando, welches nur die ersten paar Bytes weiterschickt. Die Anzahl der Bytes ist abhängig vom Parameter (Länge des Passworts). Mit dem Kommando xargs geben wir das erstellte Passwort auf der Kommandozeile aus.
Nach einem Neustart der Bash kann man die Funktion verwenden und sich seine eigenen Passwörter erstellen.
Fazit
Es ist sehr einfach die Bash um neue Funktionen und Variablen zu erweitern. Ein passendes Anwendungsbeispiel ist ein Passwortgenerator. Dieser Linux Passwortgenerator ist sehr sinnvoll für den täglichen Betrieb als Entwickler beziehungsweise Anwender. Ich verwende die Funktion aktuell mehrere Male pro Woche.
Hi Werner, super Sache.
Vielleicht kann man dein Script mit xclip verfeinern.
Xclip baut dir ein virtuelles Clipboard. Somit würde dein Befehl lauten: genpasswd 10 | xclip
Die Ausgabe wäre des Passwortes wäre dann xclip -o
Nur so als Tipp.
danke für diese Ergänzung. xclip kannte ich noch nicht. Ist aber sehr praktisch.
super!
selbst für linuxanfänger leicht umzusetzen!
Danke dir!
Hallo Herr Ziegelwanger,
ich finde es bedauerlich, dass Sie „unliebsame“ Kommentare zu Ihren Blog-Einträgen einfach löschen und nicht so viel Ehrlichkeit besitzen einfach mit einem Augenzwinkern zuzugeben, dass der oben beschriebene Passwort-Generator nicht aus Ihrer Feder stammt, sondern mindestens im Jahre 2011 schon auf der Seite http://www.cyberciti.biz/faq/linux-random-password-generator/ zu finden ist und 1:1 kopiert wurde.
Ich schreibe Ihnen über diese Kommentarfunktion, da Sie leider auch Ihrer Impressumspflicht (m.W.n. gilt diese auch in Österreich) nicht nachkommen und ich somit keine andere Möglichkeit des Kontakts habe. Die von mir angegebene Mail-Adresse ist aber natürlich eine echte.
MfG
Hallo,
danke für die Info. Das Impressum wurde offenbar durch ein Update des Designs wieder rausgenommen – das habe ich natürlich sofort korrigiert.
Der angegebene Link war vermutlich meine Quelle für den Artikel. Ist ja schon 2 Jahre her und deshalb kann ich das nicht bestätigen. Ich habe den Artikel basierend auf dem Skript am Rechner geschrieben. Im Blog findet man übrigens öfters Code der von anderen Quellen stammt – meist englischsprachig.
Übrigens: die Nachricht habe ich gelöscht, nachdem ich gesehen habe, dass die Mailadresse spamspamspam lautet 😉