Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Linux Linux Userverwaltung

user anlegen mit einem script

Mitglied: Rooker

Rooker (Level 1) - Jetzt verbinden

23.09.2007, aktualisiert 25.09.2007, 5778 Aufrufe, 3 Kommentare

Schönen Sonntag wünsch ich allen,

ich habe folgendes Problem:

Ich muss ca. 1000 User für verschiedene Kurse anlegen.
Das hab ich bisher immer von Hand gemacht, und zwar folgend:

Beispiel:
01.
useradd -s /bin/false lager001 
02.
passwd lager001 
03.
smbpasswd -a lager001 
04.
smbpasswd -e lager001 
05.
mkdir lager001 
06.
chown lager001:lehrer lager001 
07.
chmod lager001 1770
Diese Routine mach ich dann meinetwegen von lager001 bis lager200
Dass dauert ..........

Die Kennwörter bestehen immer aus drei Buchstaben und 2 Zahlen z.B "hub83". Jetzt muss ich die Passwörter aber auch noch in eine Textdatei bekommen, weil ich sie danach noch in einem Formular weiterverarbeiten muss.

Ich weiss, ich verlange viel, aber könnte mir vielleicht zumindest im Ansatz jemand bei einem Perl- oder Shellscript behilflich sein.

Schon mal tausend Dank im Voraus

Ich weiss jede Hilfe zu schätzen.
Ansonsten noch einen schönen Sonntag

P.S.: Ich arbeite mit openSuse 10.2
Mitglied: 25510
23.09.2007 um 22:24 Uhr
hallo

01.
for i to $(seq 200); do 
02.
 useradd -s /bin/false lager$i 
03.
 passwd lager$i 
04.
 smbpasswd  -a lager$i 
05.
 smbpasswd -e lager$i 
06.
 mkdir lager$i 
07.
 chown lager$i:lehrer lager$i 
08.
 chmod lager$i 1770 
09.
done
skript ist ungetestet und wg. der führenden Nullen wirst du vermutlich noch eine Funktion hinzuziehen müssen, die den Inhalt von $i entsprechend ausgibt.

mfg, TZ
Bitte warten ..
Mitglied: Rooker
24.09.2007 um 08:36 Uhr
Hallo und guten Morgen zusammen,
danke Tischzecke für deine schnelle Antwort, aber es ist nicht so das was ich brauche.
Ich hab da eher an folgendes gedacht:

#!/usr/bin/perl -w

$b_name = $ARGV[0];
$nr_von = $ARGV[1];
$nr_bis = $ARGV[2];

my $out_file = sprintf">> %s_%03d-%03d.txt",$b_name,$nr_von,$nr_bis;

open (FH, $out_file) or die "Fehler beim Öffnen/anlegen der Datei:$out_file!\n";

for (my $i = $nr_von; $i <= $nr_bis; $i++){

  1. benutzerkonto und passwort bestimmen:
my $benutzerkonto = sprintf"%s%03d",$b_name,$i;
my $pwd = sprintf"%05d",,int(rand(99999));

  1. verschlüsselung bestimmen:
for ($x=0; $x<2; $x++) {
$zahl = sprintf("%i", rand(3)+1);
if ($zahl == 1) { $ziffer = sprintf("%s", chr(rand(26)+65)); }
if ($zahl == 2) { $ziffer = sprintf("%s", chr(rand(26)+97)); }
if ($zahl == 3) { $ziffer = sprintf("%i", rand(10)); }
$cd .= $ziffer;
}

$pwd_schl = crypt($pwd,$cd);

  1. benutzerkonto anlegen:
system ("useradd -s /bin/false -g 100 $benutzerkonto -p $pwd_schl");
system ("smbpasswd -as $benutzerkonto $pwd");
system ("smbpasswd -e $benutzerkonto");
system ("mkdir /home/user/$benutzerkonto");
system ("chown /home/user/$benutzerkonto:dozenten $benutzerkonto");
system ("chmod 1770 /home/user/$benutzerkonto");


printf("INFO: $benutzerkonto $pwd $pwd_schl angelegt! \n");

  1. Benutzername und Passwort in Datei protokollieren:
my $protokoll = sprintf"%s;%s\n",$benutzerkonto,$pwd;
print FH $protokoll;

}

close(FH);

printf("INFO: Benutzerkonten wurden in Datei: $out_file protokolliert!\n");


Doch in diesem Script, ist noch der Wurm drin. Und ich vermute in folgender Zeile.
system (smbpasswd -as..............
Ich denke das da irgendetwas mit der Parameterübergabe nicht stimmt.
Oder in irgendeiner anderen Zeile. Hab nen Blackout
Kann mir jemand helfen ?
Vielen Dank im Voraus
Gruß Rooker
Bitte warten ..
Mitglied: Rooker
25.09.2007 um 23:04 Uhr
Hallo Leute,
ich seh schon, ich antworte mir selbst am meisten. (Hilfe zur Selbsthilfe)
Spaß beiseite, dieses Script ist schon fast ´perfekt. Ich habe es so umgeschrieben,
dass ich nur noch die Passwörter von Hand eingeben muß. Und die werden am Bildschirm
angezeigt.
Alles andere (mkdir,chown,chmod und useradd) wird vom Script erledigt. Doch genau diese Eingabe
von Hand will ich auch nicht mehr machen. Und dazu brauch ich eure Hilfe.
Es muss an der Zeile ( system ("smbpasswd -a $benutzerkonto") liegen.
Ich bring es einfach nicht hin, daß das Passwort von selbst übernommen wird.
Hat jemand einen Tipp für mich ??????
Ich habe die ganze Syntax durchgetestet, aber nix hat was genutzt.
Bin für jeden produktiven Tipp dankbar.


Gruß Rooker


#!/usr/bin/perl

$b_name = $ARGV[0];
$nr_von = $ARGV[1];
$nr_bis = $ARGV[2];

$out_file = sprintf">> %s_%03d-%03d.txt",$b_name,$nr_von,$nr_bis;

open (FH, $out_file) or die "Fehler beim Öffnen/anlegen der Datei:$out_file!\n";

for (my $i = $nr_von; $i <= $nr_bis; $i++){

  1. benutzerkonto und passwort bestimmen:
$benutzerkonto = sprintf"%s%03d",$b_name,$i;
$pwd = sprintf"%05d",,int(rand(99999));

  1. verschlüsselung bestimmen:
for ($x=0; $x<2; $x++) {
$zahl = sprintf("%i", rand(3)+1);
if ($zahl == 1) { $ziffer = sprintf("%s", chr(rand(26)+65)); }
if ($zahl == 2) { $ziffer = sprintf("%s", chr(rand(26)+97)); }
if ($zahl == 3) { $ziffer = sprintf("%i", rand(10)); }
$cd .= $ziffer;
}

$pwd_schl = crypt($pwd,$cd);

  1. benutzerkonto anlegen:
system ("useradd -s /bin/false -g 100 $benutzerkonto -p $pwd_schl");
printf("INFO: passwort: %s für User: %s \n", $pwd, $benutzerkonto);
system ("smbpasswd -a $benutzerkonto");
system ("smbpasswd -e $benutzerkonto");
system ("mkdir /home/user/$benutzerkonto");
system ("chown $benutzerkonto:dozenten /home/user/$benutzerkonto");
system ("chmod 1770 /home/user/$benutzerkonto");


printf("INFO: $benutzerkonto $pwd $pwd_schl angelegt! \n");

  1. Benutzername und Passwort in Datei protokollieren:
$protokoll = sprintf"%s;%s\n",$benutzerkonto,$pwd;
print FH $protokoll;

}

close(FH);

printf("INFO: Benutzerkonten wurden in Datei: $out_file protokolliert!\n");
Bitte warten ..
Ähnliche Inhalte
Windows Server
Terminal User soll Verknüpfungen anlegen können
Frage von wittmannpetWindows Server4 Kommentare

Hallo Admins, ich habe folgende Frage: Wir haben einen Windows 2008 R2 Terminalserver. es arbeiten Kollegen per RDP daran. ...

Windows Systemdateien
In der Trusted-Domain User anlegen können
gelöst Frage von WinLiCLIWindows Systemdateien10 Kommentare

Hallo zusammen, ich habe zu einer neuen Domäne ein trust erstellt und diese neben meiner Domäne in der MMC ...

Netzwerkmanagement
Besonderen User für Cisco Switche anlegen
gelöst Frage von michael1306Netzwerkmanagement7 Kommentare

Hallo, im Moment muss ich bei in der Firma Cisco Switche austauschen und erneuern. Dazu gehört auch die Programmierung ...

Windows 7
Referenz Installation User anlegen in install.wim
gelöst Frage von akadawaWindows 712 Kommentare

Hallo, ich würde gerne nachträglich zu meiner konfigurierten Windows 7 Referenz-Installation zwei User bei der Installation anlegen lassen. Wie ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 20 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit25 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Windows 10
Automatische daten kopieren, USB zu USB unter Win10 im Hintergrund
Frage von DerEisigeWindows 1016 Kommentare

Hallo Leute, ich bin auf der Suche nach einem Skript, dass von einem USB Stick automatisch nach dem einstecken ...