Archiv verlassen und diese Seite im Standarddesign anzeigen : perl und passwd
Hy,
ich habe hier ein Script geschrieben, das ein password für ein user anlegt.
Aber wo ist der fehler.
#!/usr/bin/perl
$passwd="Passwd";
$user="test12";
$password="t12xYZ";
open(PASSADD, "|$passwd $user")||die $_;
print PASSADD $password;
print PASSADD $password;
close(PASSADD);
Wenn ich dies nun in der Konsole als root ausführe kommt diese meldung:
Server1:/ # perl addpasswd.cgi
New password: Password will be truncated to 8 characters
Re-enter new Password:
passwd: Conversation error
Server1:/ #
Was kann das sein!
versuche den befehl usermod USERNAME -p VERSCHL_PWD
#!/usr/bin/perl
$passwd="usermod";
$user="test12";
$password=crypt("t12xYZ","SL"); # SL ist eine beliebiger Zeichenkette (2 Buchstaben lang)
open(PASSADD, "|$passwd $user -p $pwd")||die $!;
close(PASSADD);
oliver
Hi!
Meines Wissens hast du so keine Chance, da "passwd" über STDIN nichts
entgegen nimmt.
Servus,
Stefan
Das verschlüsselte Passwort(->Lollis Beitrag) sollte direkt in /etc/passwd oder /etc/shadow eingetragen werden.
Gruß
fork
@fork:
geht auch, amcht aber VIEL MEHR arbeiot als mit usermod USER -p xxz
oliver
Stimmt, das mit mit usermod hatte ich jetzt gar nicht so realisiert.
Gruß
fork
Hi es gibt noch eine andere möglichkeit wo du dem passwd dann nacheinander name und pw mitgibst so als würdest du es eingeben die genaue syntax weiß ich nicht mehr ich schaue mal nach und poste sie dann hier :-)
Gruß Badgott
hmm kannst es ja mal mit useradd probieren, müsste eigentlich funktionieren
Hy, das mit usermod geht nicht.
Ich bekomme als Antword:
usermod: user SLovML73i9.XY does not exist
mmmmhhh.
Der user war test12 und das Password war t12xYZ.
Was ist das für ein ergebnis.
Schaat mal in das Skript.
#!/usr/bin/perl
$passwd="usermod";
$user="test12";
$pwd=crypt("$user","SL"); # SL ist eine beliebiger Zeichenkette (2 Buchstaben lang)
open(PASSADD, "|$passwd $user -p $pwd")||die $!;
close(PASSADD);
Und was bedeuted das SL genau.
Der Fehler laesst nur eines vermuten.
Schau dir mal die man-page von usermod an, dann duerftest Du's sehen.
Gruß
Tobias
versuch usermod -p dfssdfsdjfhsd USERNAME
Hy,
so geht es, aber er trägt in der shadow das passwort
wie
Deluxe
oder so und nicht Codiert wie
LgSfS6iwqAcZa.
Wenn ich in der konsole dies eingebe
usermod -p deluxe test12
du musst dass passwort vorher verschlüsseln!!!!!
Im Grunde isses ganz einfach:
Ein Perl-Skript schreibt ein File mit dem USERADD-Befehl.
Ein Cronscript führt ein weiteres Script aus welches das File mit dem USERADD-Befehl ausführt. Ich hab sowas mal geschrieben und es funktioniert. Wir verwalten mit sowas einen Mailserver mit zig Domains so, dass es für jede Domain einen Administrativen Benutzer gibt der für seine eigene Domain auch richtige Systemuser anlegen kann.
Also gehts.
Gruezeli
Cojun
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.