Doku und Suche bringen mich (ehrlich! Edit: Die naheliegende Doku von pwgen habe ich aber nicht vollständig gelesen, deshalb bin ich ein Depp.) nicht weiter, deshalb erlaube ich mir, mein Problem zu schildern:
Ich möchte das Programm pwgen über mein Skript ansprechen, um mir Kennwörter zu generieren.
Warum? Weil die nicht völlig zufällig sind, sondern nach phonetischen Regeln generiert werden.
Die meisten, die dieses Programm ausspuckt, sind ziemlich gut zu merken.
(Ich habe keinen Nerv, die Funktionalität komplett nachzuprogrammieren.)
Jetzt das Problem: Das Programm pwgen scheint sich anders zu verhalten, wenn ich es aus dem Skript heraus anspreche.
Oder: Ich mache das mit subprocess nicht richtig, deshalb kommt Quark dabei heraus.
Ich bin auf Fedora 16 (64bit), Python 2.7.2, pwgen 2.06 (laut yum).
Test-Code:
Code: Alles auswählen
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
import subprocess
proc = subprocess.Popen(["pwgen", "-B","8"],shell=False,stdout=subprocess.PIPE)
wert,fehler = proc.communicate()
print "Ausgabe:", repr(wert)
print "Fehler:", fehler
returncode = proc.returncode
print "Returncode:", returncode
pwgen -B 8 gibt eine Seite von 8-stelligen Kennwörtern aus. Sie enthalten Großbuchstaben, Kleinbuchstaben und Ziffern.
Ist:
Code: Alles auswählen
Ausgabe: 'aihiecha\n'
Fehler: None
Returncode: 0
Das mit dem einen Kennwort wäre nicht schlimm, denn ich will jeweils nur eines. Mein ursprünglicher Befehl lautete deshalb auch pwgen -B -1 8. Das gibt auch ein Kennwort, aber dort sind auch nur Kleinbuchstaben enthalten.
Und nein, es hilft nicht, das Programm mit Pfad (/usr/bin/pwgen) anzusprechen.
Mittlerweile bin ich fast soweit, pwgen in eine Datei schreiben zu lassen und diese dann wieder auszulesen...
Kann mich jemand erleuchten? Ich bin auf alles gefasst, hauptsächlich auf Schelte und virtuelle Ohrfeigen.
(Bitte jetzt aber nicht über die Qualität der Kennwörter diskutieren...)
Herzliche Grüße,
Boris