PDA

Bekijk Volledige Versie : script om gebruikers aan te maken



easy2host
28/06/03, 12:00
Ik ben opzoek na een simpel script waarmee ik een gebruiker aan kan maken en waar ik alleen een gebruikersnaam en wachtwoord moet opgeven.

dus zoiets als #adduser gebruiker password

zijn er van die scripts of kan dit ook met adduser?

als je gewoon adduser doet dan krijg je allemaal van die vragen en dat wil ik niet, ik wil niet meer hoeven intypen dan: #adduser gebruiker password

of kan dit nou wel gewoon via adduser?

OS = Debian Woody

StarInternet
28/06/03, 12:05
useradd -d /home/USERNAME -g GROEPNAAM -p PASSWORD USERNAME
ik hoop dat ik de optie -p juist heb.
Kijk anders ff met de commando useradd --help

easy2host
28/06/03, 12:29
Origineel geplaatst door StarInternet
useradd -d /home/USERNAME -g GROEPNAAM -p PASSWORD USERNAME
ik hoop dat ik de optie -p juist heb.
Kijk anders ff met de commando useradd --help

hmmm hij geeft geen fout maar maakt ook geen directory etc aan? of moet ik dat zelf doen hier?

ik heb useradd -d /home/test -p test
en dan zegt die verder niks, maar ik kan ook niet inloggen met deze gebruiker?

StarInternet
28/06/03, 13:08
usage: useradd [-u uid [-o]] [-g group] [-G group,...]
[-d home] [-s shell] [-c comment] [-m [-k template]]
[-f inactive] [-e expire ] [-p passwd] [-M] [-n] [-r] name
useradd -D [-g group] [-b base] [-s shell]
[-f inactive] [-e expire ]


useradd -D /home/test -p pass test

Username: test
Password: pass

easy2host
28/06/03, 13:51
Origineel geplaatst door StarInternet
usage: useradd [-u uid [-o]] [-g group] [-G group,...]
[-d home] [-s shell] [-c comment] [-m [-k template]]
[-f inactive] [-e expire ] [-p passwd] [-M] [-n] [-r] name
useradd -D [-g group] [-b base] [-s shell]
[-f inactive] [-e expire ]


useradd -D /home/test -p pass test

Username: test
Password: pass

dan zegt die dat het niet goed is?
ik snap er geen bal meer van, nog anders sugesties

Ahead-IT
28/06/03, 14:10
useradd -m -d /home/test -s /bin/bash test USERNAME
passwd USERNAME


Dit maakt een directory ( -m optie) /home/test voor de user USERNAME.

easy2host
28/06/03, 14:20
Origineel geplaatst door polyp
useradd -m -d /home/test -s /bin/bash test USERNAME
passwd USERNAME


Dit maakt een directory ( -m optie) /home/test voor de user USERNAME.

inderdaad, deze werkt...
alleen al je met de optie -p (password) werkt dan werkt die wel, maakt de gebruiker aan, maakt de homedir aan maar de gebruiker kan niet inloggen.

doe je daarna passwd gebruiker,
dan doet deze het echter wel maar dan moet ik weer twee keer een password invoeren en dat wil ik niet, waarom doet die het niet gewoon bij de eerste optie?

StarInternet
28/06/03, 14:23
volgens mijn was -p voor aparte password file weet het niet zekker.
kom ik net achter.

easy2host
28/06/03, 14:25
Origineel geplaatst door StarInternet
volgens mijn was -p voor aparte password file weet het niet zekker.
kom ik net achter.

hmmmmm in dat geval...
is er dan een oplossing voor passwd?

ik wil dan kunnen doen iets in de trend van...
#passwd user password

en klaar, geen vragen verder van het systeem, nu vraagt die namelijk bij #passwd user twee maal om een wachtwoord.

Ahead-IT
28/06/03, 16:20
Dan zla ik u tonen hoe je bash scriptje eruit ziet KORT :

echo "Geef username in"
read username
echo "Geef paswoord in"
read password
echo "Geef shell in"
read shell
echo ""

useradd -m -d /home/$username -s /bin/$shell $username
passwd $username $password

echo "de user $username met paswoord : $password is aangemaakt. Hij heeft acces op de $shell shell."


Nog niet getest, maar het zou moeten werken :)

ric0
30/06/03, 11:29
Origineel geplaatst door polyp

passwd $username $password

Nog niet getest, maar het zou moeten werken :) [/B]

Dat "passwd $username $password" zal niet werken.
passwd wil altijd interactieve mode. Dat om te verkomen dat iemand die met ps rondneusd, je password kan zien... denk ik.

Als je je password echt niet interactief wil invoeren moet je een ander proces vorken en de stdin en stdout van de parent en child aan elkaar knopen. Het parent proces werkt dan als "virtuele user".

Hier een stukkie perl script:
$sleepcount = 0;
do {
$pid = open(PASSW, "|-");
unless (defined $pid) {
warn "cannot fork: $!";
die "bailing out" if $sleepcount++ > 6;
sleep 10;
}
} until defined $pid;

if ($pid) { # parent
print PASSW $thispasswd;
close (PASSW) or warn "kid exited $?";
}
else { # child
($EUI, $EGID) = ($UID, $GID); #suid progs only
exec "pw usermod -h 0 -n $thisuser" ||warn "can't spawn and exec pw : $!";
exit;
}

Deimos
30/06/03, 12:02
de -p optie verwacht een crypted password, zie ook de manuals. :)

easy2host
30/06/03, 15:29
Origineel geplaatst door Deimos
de -p optie verwacht een crypted password, zie ook de manuals. :)

dus als ik een encrypted password opgeef zal die wel moeten werken ?

Ahead-IT
30/06/03, 15:32
Origineel geplaatst door aarninkron


dus als ik een encrypted password opgeef zal die wel moeten werken ?

Inderdaad :)

LeaseWeb
09/07/03, 06:44
met het volgende pyhton scriptje worden de wachtwoorden geencrypt doorgegeven aan useradd

----- BEGIN COPY -----
#!/usr/bin/python

import sys, crypt, os, string

usage = """usage:makeuser username password"""

try:
username = sys.argv[1]
password = sys.argv[2]
except IndexError:
print usage
else:
crypted = crypt.crypt(password, '$1$MaKeUsEr')
command = '/usr/sbin/useradd ' + username + ' -m -p \'' + crypted + '\''
os.system(command)
---- END COPY -----

De regel met "command = bla bla" kan je aanpassen naar je behoeften.. (homedir etc)

Er zijn nog veel meer van dit soort scripts.
Ook veel in perl.
Zoek bij google naar perl/python & crypt & salt & adduser/useradd