merenda
12.05.05, 12:08
Hi @all,
als erstens muss ich sagen, dass ich ziemlich neu in Perl bin.
Ich möchte gerne ein Skript schreiben (hab schon mal ein bisschen angefangen) der mir auf der Passwd und aus der Shadow bestimmte Informationen holt. Um genau zu sein:
Passwd:
- username
- kommentar
- shell
Shadow:
- Verschlüsseltes Passwort
Nach dem diese Daten gesammelt worden sind, soll mir das skript ein Useradd Befehl zusammen setzen. Warum ich jetzt Poste, ich hab alle Daten die ich brauche gesammelt aber bekomme das Useraddbefehel nicht hin, also ich weiß nicht wie ich in Perl die Daten zusammen Setzen soll. Ich hab wie geschrieben schon damit angefangen, ich poste mal den code:
#!/usr/bin/perl -w
# Auslesen der Daten aus der /etc/passwd:
# - username
# - kommentar
# - shell
# ----------------------------------
open (PASSWD, "passwd.txt");
@passwd=<PASSWD>;
foreach (@passwd){
@string_pwd = (split ":", $_); # Strings Zerlegen
push @username_pwd, $string_pwd[0];
push @kommentar, $string_pwd[4];
push @shell, $string_pwd[6];
}
close PASSWD;
# Auslesen der Daten aus der /etc/shadow:
# - username
# - verschlüsseltespasswort
# ---------------------------------------
open (SHADOW, "shadow.txt");
@shadow=<SHADOW>;
foreach (@shadow){
@string_shadow = (split ":", $_); # String Zerlegen
push @username_shadow, $string_shadow[0];
push @passwort, $string_shadow[1];
}
close SHADOW;
# Leerzeichen entfernen
# ---------------------
chomp @username_pwd;
chomp @kommentar;
chomp @shell;
chomp @username_shadow;
chomp @passwort;
# Zusammensetzen der useraddbefehel und in Eintrag in die Datei
# -------------------------------------------------------------
open (USERADD, ">>useradd.sh");
# TEST
print "===> @username_pwd\n";
print "===> @kommentar\n";
print "===> @shell\n";
print "===> @username_shadow\n";
print "===> @passwort\n";
Wie gesagt ich bin neu in dem Thema, vielleicht gibt es auch eine andere einfachere Möglichkeit. Hat jemand eine Idee wie ich das Problem lösen könnte ?
Danke schon mal im voraus.
Gruß
Merenda
als erstens muss ich sagen, dass ich ziemlich neu in Perl bin.
Ich möchte gerne ein Skript schreiben (hab schon mal ein bisschen angefangen) der mir auf der Passwd und aus der Shadow bestimmte Informationen holt. Um genau zu sein:
Passwd:
- username
- kommentar
- shell
Shadow:
- Verschlüsseltes Passwort
Nach dem diese Daten gesammelt worden sind, soll mir das skript ein Useradd Befehl zusammen setzen. Warum ich jetzt Poste, ich hab alle Daten die ich brauche gesammelt aber bekomme das Useraddbefehel nicht hin, also ich weiß nicht wie ich in Perl die Daten zusammen Setzen soll. Ich hab wie geschrieben schon damit angefangen, ich poste mal den code:
#!/usr/bin/perl -w
# Auslesen der Daten aus der /etc/passwd:
# - username
# - kommentar
# - shell
# ----------------------------------
open (PASSWD, "passwd.txt");
@passwd=<PASSWD>;
foreach (@passwd){
@string_pwd = (split ":", $_); # Strings Zerlegen
push @username_pwd, $string_pwd[0];
push @kommentar, $string_pwd[4];
push @shell, $string_pwd[6];
}
close PASSWD;
# Auslesen der Daten aus der /etc/shadow:
# - username
# - verschlüsseltespasswort
# ---------------------------------------
open (SHADOW, "shadow.txt");
@shadow=<SHADOW>;
foreach (@shadow){
@string_shadow = (split ":", $_); # String Zerlegen
push @username_shadow, $string_shadow[0];
push @passwort, $string_shadow[1];
}
close SHADOW;
# Leerzeichen entfernen
# ---------------------
chomp @username_pwd;
chomp @kommentar;
chomp @shell;
chomp @username_shadow;
chomp @passwort;
# Zusammensetzen der useraddbefehel und in Eintrag in die Datei
# -------------------------------------------------------------
open (USERADD, ">>useradd.sh");
# TEST
print "===> @username_pwd\n";
print "===> @kommentar\n";
print "===> @shell\n";
print "===> @username_shadow\n";
print "===> @passwort\n";
Wie gesagt ich bin neu in dem Thema, vielleicht gibt es auch eine andere einfachere Möglichkeit. Hat jemand eine Idee wie ich das Problem lösen könnte ?
Danke schon mal im voraus.
Gruß
Merenda