[Gelöst] passwd soll passwort von makepasswd bekommen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Friesi
Beiträge: 582
Registriert: 07.07.2003 20:40:11
Wohnort: Stromberg
Kontaktdaten:

[Gelöst] passwd soll passwort von makepasswd bekommen

Beitrag von Friesi » 06.09.2004 10:18:53

Hallo.

Ich möchte ein shellscript schreiben, womit ich leichter user im System hinzufügen kann und automatisch eine Datenbank und ein Vhost im Apache angelegt wird.

Also mein Script legt den User erfolgreich an, doch möchte ich dem User noch ein zufälliges Passwort geben.

Nun dachte ich mir, die Ausgabe von "makepasswd --chars 8" an "passwd $username" zu übergeben und mir dann mit "echo" das Passwort auf der Shell auszugeben. Doch wie mach ich das passwd das Passwort von makepasswd benutzt? Denn dieser Befehl gibt das Passwort nur bei der ersten Abfrage nach dem Passwort aus.

Code: Alles auswählen

passwd $username | makepasswd --chars 8
Zuletzt geändert von Friesi am 06.09.2004 14:33:20, insgesamt 2-mal geändert.

Benutzeravatar
stefon
Beiträge: 540
Registriert: 07.04.2004 12:41:57
Wohnort: Sbg Stadt
Kontaktdaten:

Beitrag von stefon » 06.09.2004 13:20:22

ähmm...

klar, ein zweites aufufen des makepasswords bringt nix, würde ja ein andere passwort generieren...

aber ->
wenn du das von makepassword erzeugte pw in eine variable speicherst und bei beiden anfragen dem password übergibst?

Friesi
Beiträge: 582
Registriert: 07.07.2003 20:40:11
Wohnort: Stromberg
Kontaktdaten:

Beitrag von Friesi » 06.09.2004 13:34:20

Mhm, hat auch nicht geklappt, da er das Passwort nun vor der Abfrage von der Eingabe des Passwortes ausgibt :-/

Benutzeravatar
stefon
Beiträge: 540
Registriert: 07.04.2004 12:41:57
Wohnort: Sbg Stadt
Kontaktdaten:

Beitrag von stefon » 06.09.2004 13:43:13

asoo na hast recht, sorry hab nicht weit genug gedacht...

Friesi
Beiträge: 582
Registriert: 07.07.2003 20:40:11
Wohnort: Stromberg
Kontaktdaten:

Beitrag von Friesi » 06.09.2004 14:06:50

also ich hab nun was gefunden, was auch fast klappt.

Code: Alles auswählen

#!/usr/bin/perl
$usern="test";
$passw="test";
$passwc=crypt("$passw","LF");
system("usermod -p $passwc $usern");
Doch sobald ich den inhalt der Variable $passw von makepasswd haben möchte, wirds irgendwie bissel problematisch.
Ich habs so versucht:

Code: Alles auswählen

$passw=system("makepasswd --chars 8");
Doch hat nun $passw immer den Wert 0 und auf der Shell bekomme ich das Passwort, welches makepasswd erstellt hat.

Wie bekomme ich das denn nun in die Variable?

[UPDATE]
Habs nun gelöst. Hab den Wert in einer Variable mit dieser Zeile bekommen:

Code: Alles auswählen

$passw=`makepasswd --chars 8`;

Antworten