PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suse 9.1 und "newusers"



abeule
26.05.04, 15:02
Help

Ich wollte grade einen Stapel neuer User anlegen und mich dabei des Befehls "newusers" bedienen. War wohl nix...

Ist der Befehl bei Suse 9.1 (Kernel 2.6.x) nicht mehr vorhanden?

Wenn ja, gibt es eine andere Möglichkeit User im Batchbetrieb anzulegen? Ich bin einfach nicht willig 'n Dutzend Testuser einzeln reinzuhacken, vor allem, nachdem ich das Newuser-Batchfile schon gepinnt habe... :rolleyes:

Grüsse
Andreas

matibaer
18.03.11, 14:13
Google ist schon gut - direkt diesen Thread gefunden, nur wurde diese wichtige Frage nie beantwortet.

Inzwischen haben wir´s 7 Jahre später und von openSuSE ist gerade Version 11.4 erschienen.
Ich könnte jetzt "newusers" gebrauchen, aber das Kommando gibt es nicht.
Ich habe auch mal mittels Yast danach suchen lassen (Software Repository) -> nicht gefunden.

Gibt es das Tool nicht mehr?
Oder nur nicht mehr bei SuSE?
Gibt es etwas vergleichbares?
Oder kann man newusers irgendwo als eigenständiges Tool/Skript herunterladen?

Infos zu NEWUSERS (und warum das so wertvoll ist):
http://www.peterchen.net/2010/11/11/linux-newusers-statt-usermoduseraddusermod/
http://www.cyberciti.biz/tips/linux-how-to-create-multiple-users-accounts-in-batch.html

drcux
18.03.11, 14:57
Ist in shadow-utils, findet man im OBS.

matibaer
18.03.11, 15:42
Ich habe ggf. noch eine schickere Methode gefunden, die aber noch nicht ganz funktioniert.

Selbst Script schreiben (hab ich mir mehr oder weniger zusammen gesucht):

Script putusers:

#!/bin/bash
for USERS in $(cat /root/batchusers.txt)
do
USER=`echo ${USERS} | cut -d ":" -f1`
PASSWD=`echo ${USERS} | cut -d ":" -f2`
USID=`echo ${USERS} | cut -d ":" -f3`
GID=`echo ${USERS} | cut -d ":" -f4`
COMMENT=`echo ${USERS} | cut -d ":" -f5`
HOMEDIR=`echo ${USERS} | cut -d ":" -f6`
SHELL=`echo ${USERS} | cut -d ":" -f7`

#Aufbau der Liste = user:pw:usid:gid:comment:homedir:shell
useradd ${USER} -p ${PASSWD} -u ${USID} -m -g ${GID} -c ${COMMENT} -d ${HOMEDIR} -m -s ${SHELL}
done


Das funktioniert, wenn ich in meiner Batchuserliste "/root/batchusers.txt" kein Leerzeichen verwende, also VornameNachname so zusammen schreibe.
Steht dort "...:Vorname Nachname:..." funktioniert es nicht mehr, da die FOR-Schleife das Leerzeichen genauso interpretiert, wie eine neue Zeile, also als einen neuen Datensatz.

Wie bekommt man es hin, dass das Leerzeichen nicht als neuer Datensatz verstanden wird?

Beispiel der fehlerhaften Ausgabe:
useradd test -p PaWo -u 1009 -m -g 100 -c Hans -d -m -s
Wurst -p /home/test -u /bin/bash -m -g -c -d -m -s

Beispiel für korrekte Ausgabe (wenn Leerzeichen in Liste entfernt):
useradd test -p PaWo -u 1009 -m -g 100 -c HansWurst -d /home/test -m -s /bin/bash

matibaer
18.03.11, 15:58
Zu "newusers":

Ist in shadow-utils, findet man im OBS.

Und wo finde ich die "shadow-utils" oder "OBS" (wofür steht OBS?)?
In den Standard-Repositories nach 11.4-Installation (Yast) findet man nichts dergleichen.

matibaer
18.03.11, 16:05
Zurück zum Script:
Vor der FOR-Schleife ist das hier einzufügen:

Newline=$'\n'
IFS=$Newline

Jetzt muss ich nur noch herausfinden, welche Art Klammern in der Befehlszeile für useradd funktionieren, dort taucht ja auch -c Vorname Nachname auf, das so nicht richtig interpretiert wird...

matibaer
18.03.11, 16:35
So etwas wie Gänsefüße war nicht nötig, ging auch so.
Leider wird ein verschlüsseltes Passwort bei useradd erwartet, dumm, wenn es nicht verschlüsselt ist.

Naja, ich habe das newusers-Ersatzprogramm nun fertig (funktionierend):


#!/bin/bash

Newline=$'\n'
IFS=$Newline
for USERS in $(cat /root/batchusers.txt)
do
USER=`echo ${USERS} | cut -d ":" -f1`
PASSWD=`echo ${USERS} | cut -d ":" -f2`
USID=`echo ${USERS} | cut -d ":" -f3`
GID=`echo ${USERS} | cut -d ":" -f4`
COMMENT=`echo ${USERS} | cut -d ":" -f5`
HOMEDIR=`echo ${USERS} | cut -d ":" -f6`
SHELL=`echo ${USERS} | cut -d ":" -f7`

#user:pw:uid:gid:comment:homedir:shell
#useradd USER -p PW -u USID -g GID -c COMMENT -d HOMEDIR -m -s SHELL
#useradd ${USER} -p ${PASSWD} -u ${USID} -m -g ${GID} -c ${COMMENT} -d ${HOMEDIR} -m -s ${SHELL}
echo ${USER} -p ${PASSWD} -u ${USID} -m -g ${GID} -c ${COMMENT} -d ${HOMEDIR} -m -s ${SHELL}
useradd ${USER} -p ${PASSWD} -u ${USID} -m -c ${COMMENT} -d ${HOMEDIR} -m
echo ${PASSWD} | passwd --stdin ${USER}
done

Rainer Juhser
18.03.11, 17:02
Und wo finde ich die "shadow-utils" oder "OBS" (wofür steht OBS?)?
OBS = OpenSUSE Build Service --- KLICK (https://build.opensuse.org/search/search?search_text=shadow-util&commit=Search&project=1&package=1&name=1&title=1&description=1&attribute=&advanced=on)