benutzer per shell erstellen incl. überprüfung
-
hallo,
ich habe eine frage und zwar soll ich ein shellscript schreiben, welches mir user unter linux anlegt. soweit kein problem.
die probleme die ich habe sind folgende:
wie frage ich ab ob ein benutzer bereits existiert?
wie frage ich ab ob eine benutzer ID bereits existiert?
wie frage ich ab ob eine gruppe bereits existiert?
wie frage ich ab ob eine gruppen ID bereits existiert?ich hoffe, dass mir dabei jemand helfen kann...google bringt mich da leider nicht weiter
-
Hi,
guck dir mal das Programm "id" an. Gruppe stehen in /etc/groups. Ich weiss leider nicht, ob man das anders herausbekommen kann, als /etc/groups einzulesen und nach dem ersten : abzuschneiden.
-
Die API findest Du unter den man-pages: getpwent(3), getpwnam(3), getpwuid(3), getgrent(3), getgrnam(3), getgrgid(3).
Für shell-Skripte solltest Du nicht die /etc/*-Dateien auslesen sondern "getent passwd" und "getent group" auswerten.
Gruß
Tntnet
-
die ganzen funktionen sind bei mir leider nicht verfügbar
nutze ubuntu 7.04
-
Hi,
was ist nicht verfügbar? getent? id? Ist eigentlich Standard, sollte überall installiert sein.
Getpwent etc. kannst du natürlich auch nicht mit einem Shell-Skript nutzen.
-
die ganzen funktionen, die tntnet aufgeschrieben hatte sind bei mir nicht verfügbar. id ist verfügbar, aber das bringt mir doch nur informationen über einen bestimmten user, oder hab ich die man-page davon falsch verstanden?
-
Hi,
dann fehlt dir das Paket libc-dev. Mit apt-get nachinstallieren, dann kannst auch diese Funktionen nutzen.
EDIT: Und am besten dann auch gleich die manpages-dev mitinstallieren.
-
Er will es doch per SHELLSCRIPT machen:
Ohne vorgegebene User- bzw. Group-Id kanns du es ja so machen:
#!/bin/bash TEST=`echo $1 | wc -m` if [ $TEST -lt 2 ]; then echo "Benutzer nicht angegeben"; exit; fi TEST=`echo $2 | wc -m` if [ $TEST -lt 2 ]; then echo "Gruppe nicht angegeben"; exit; fi groupadd $2 > /dev/null if [ $? -gt 0 ]; then echo "Gruppe existiert"; fi useradd -g $2 $1 > /dev/null if [ $? -gt 0 ]; then echo "Benutzer existiert"; fi