/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Perl script til at oprette ny user via ssh
Fra : Peter Bagger


Dato : 15-04-03 18:34

Hey

Jeg sidder og lavet et script, der skal oprette en bruger remote på en anden
linux maskine, er den nogle der har prøvet dette ??

Jeg bruger Net::SSH

Følgende er prøvet:
sudo, kan ikke bruge "chpasswd $user:$pass" pga rettigheder til shadow
filen.
crypt (MD5), jeg er ikke istand til at finde den korrekte algoritme, så
passwd filen kan finde ud af det.


/Peter



 
 
Peter Makholm (15-04-2003)
Kommentar
Fra : Peter Makholm


Dato : 15-04-03 19:32

"Peter Bagger" <peter@powerdot.dk> writes:

> Jeg sidder og lavet et script, der skal oprette en bruger remote på en anden
> linux maskine, er den nogle der har prøvet dette ??

Ikke særlig perl-relevant, men hvad med at kalde adduser eller useradd
på remotemaskinen?

--
Peter Makholm | I laugh in the face of danger. Then I hide until
peter@makholm.net | it goes away
http://hacking.dk | -- Xander

Peter (16-04-2003)
Kommentar
Fra : Peter


Dato : 16-04-03 06:43

Det er prøvet, derfor er det perl relevant, da det er perl der sætter
begrænsningen

Det er perl via SSH, der er problemet


NB jeg ved hvad adduser er, men hvad er "useradd" ???

/Peter


"Peter Makholm" <peter@makholm.net> skrev i en meddelelse
news:87he8ztxx4.fsf@xyzzy.adsl.dk...
> "Peter Bagger" <peter@powerdot.dk> writes:
>
> > Jeg sidder og lavet et script, der skal oprette en bruger remote på en
anden
> > linux maskine, er den nogle der har prøvet dette ??
>
> Ikke særlig perl-relevant, men hvad med at kalde adduser eller useradd
> på remotemaskinen?
>
> --
> Peter Makholm | I laugh in the face of danger. Then I hide until
> peter@makholm.net | it goes away
> http://hacking.dk | -- Xander



Rune B. Broberg (16-04-2003)
Kommentar
Fra : Rune B. Broberg


Dato : 16-04-03 07:54

Peter <peter@powerdot.dk> wrote:
> Det er pr?vet, derfor er det perl relevant, da det er perl der s?tter
> begr?nsningen

.... og den var?

--
Rune B. Broberg
Feel free to GPG-encrypt email sent to me. Keyid: 0x87CD3DBD

Peter (16-04-2003)
Kommentar
Fra : Peter


Dato : 16-04-03 10:08

Jeg kan ikke oprette en bruger remote, med brug af perl over SSH, jeg
mangler ideer, da jeg føler jeg har prøvet alt, jeg kan godt oprette
brugeren,menjegkan ikke få det korrekte passwd, bla fordi jeg ikke kan får
den rigtigte MD5 crypt (jeg er meget lost i dette), jeg har så efter
følgende prøvet at skifte passwd både med passwd og chpasswd uden den store
succes

/Peter



Adam Sjøgren (16-04-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 16-04-03 10:06

On Wed, 16 Apr 2003 07:42:34 +0200, peter wrote:

> Det er prøvet, derfor er det perl relevant, da det er perl der
> sætter begrænsningen

> Det er perl via SSH, der er problemet

Kan du prøve at forklare lidt nærmere hvad du gør, hvad du forventer
der skulle ske og hvad der sker i stedet for?

Perl via SSH er problemet - det er ikke særligt specifikt.

> NB jeg ved hvad adduser er, men hvad er "useradd" ???

Det samme, bare anderledes.

Fra Debians adduser(8):

"DESCRIPTION
adduser and addgroup add users and groups to the system
according to command line options and configuration information
in /etc/adduser.conf. They are friendlier front ends to the
useradd and groupadd programs, choosing Debian policy
conformant UID and GID values, creating a home directory with
skele­ tal configuration, running a custom script, and other
features."


Mvh.

--
"Jag tar en mandarin." Adam Sjøgren
asjo@koldfront.dk

Adam Sjøgren (16-04-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 16-04-03 11:56

On Wed, 16 Apr 2003 11:08:11 +0200, peter wrote:

> Jeg kan ikke oprette en bruger remote, med brug af perl over SSH,
> jeg mangler ideer, da jeg føler jeg har prøvet alt, jeg kan godt
> oprette brugeren,menjegkan ikke få det korrekte passwd, bla fordi
> jeg ikke kan får den rigtigte MD5 crypt (jeg er meget lost i dette),
> jeg har så efter følgende prøvet at skifte passwd både med passwd og
> chpasswd uden den store succes

Og så er vi tilbage til det Peter Makholm spurgte om: Hvorfor kalder
ikke ikke bare 'adduser' eller 'useradd' på maskinen, via ssh?

Enten kan du tage den vej ud, eller også må du forklare tydeligere
hvad det er du gør, når den ikke gør det du vil (vis en snip kode,
f.ex., og forklar hvorfor du mener det du gør er det rigtige).


Mvh.

--
"Jag tar en mandarin." Adam Sjøgren
asjo@koldfront.dk

Peter (16-04-2003)
Kommentar
Fra : Peter


Dato : 16-04-03 13:49

OK her er kode:

--snip start

# *****************************************
# Opret bruger
# *****************************************

my $crpassword = md5_hex($password);
print "md5 pass ". md5_hex($password)."\n";

$ssh->cmd("sudo /usr/sbin/adduser $brugeNavn -p $crpassword");
print "sudo /usr/sbin/adduser $brugeNavn -p $crpassword\n";
$ssh->cmd("sudo /bin/chown $brugeNavn.$brugeNavn /home/$brugeNavn");
print "sudo /bin/chown $brugeNavn.$brugeNavn /home/$brugeNavn\n";
$ssh->cmd("sudo /bin/chmod 755 /home/$brugeNavn");
print "sudo /bin/chmod 755 /home/$brugeNavn\n";

#print md5($password);

#my(@stdout, $stderr, $exit) = $ssh->cmd("su - ");


my(@stdout, $stderr, $exit) = $ssh->cmd(" /bin/echo $brugeNavn:$password |
/usr/sbin/chpasswd" );
print "STOUT = @stdout\n";
#$ssh->cmd("$password\r");
#$ssh->cmd("$password\r");
-- snip slut



skærm dump fra output
uid=535(webhotel) gid=535(webhotel) groups=535(webhotel)
0
så er jeg på
md5 pass 42a7b62e41985e1ff8b6ea8cb15d6a04
sudo /usr/sbin/adduser pbh3 -p 42a7b62e41985e1ff8b6ea8cb15d6a04
sudo /bin/chown pbh3.pbh3 /home/pbh3
sudo /bin/chmod 755 /home/pbh3
STOUT = chpasswd: can't lock password file
1
Net::SSH::Perl->new(tux)
login(pbh3,pbh3)
Permission denied at ./webtest.pl line 57


************************
man kan ikke tilgå shadow filen udover hvis man er på maskinen som root, det
er derfor jeg spørg om der er nogle, der har prøvet det før, eller har en
god ide til det.

Der er også prøve med adduser

Der skal køre på en redhat 7.3

/Peter





Kim Hansen / A708 (16-04-2003)
Kommentar
Fra : Kim Hansen / A708


Dato : 16-04-03 13:56

"Peter" <peter@powerdot.dk> writes:

> my(@stdout, $stderr, $exit) = $ssh->cmd(" /bin/echo $brugeNavn:$password |
> /usr/sbin/chpasswd" );

my(@stdout, $stderr, $exit) = $ssh->cmd(" /bin/echo
$brugeNavn:$password | sudo /usr/sbin/chpasswd" );
^^^^

chpasswd skal køres som root

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-´` -. ;:-. | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.

Peter Makholm (16-04-2003)
Kommentar
Fra : Peter Makholm


Dato : 16-04-03 13:59

"Peter" <peter@powerdot.dk> writes:

> my $crpassword = md5_hex($password);
> print "md5 pass ". md5_hex($password)."\n";
>
> $ssh->cmd("sudo /usr/sbin/adduser $brugeNavn -p $crpassword");

Min adduser(8) nævner ikke en -p option, men min useradd(8) gør. Den
skriver følgende:

-p passwd
The encrypted password, as returned by crypt(3). The
default is to disable the account.

Det kunne ikke tænkes at du fik et mere forudsigeligt resultat ved at
bruge crypt-funktionen?

> print "sudo /usr/sbin/adduser $brugeNavn -p $crpassword\n";
> $ssh->cmd("sudo /bin/chown $brugeNavn.$brugeNavn /home/$brugeNavn");
> print "sudo /bin/chown $brugeNavn.$brugeNavn /home/$brugeNavn\n";
> $ssh->cmd("sudo /bin/chmod 755 /home/$brugeNavn");
> print "sudo /bin/chmod 755 /home/$brugeNavn\n";

Dette burde brugeroprettelsesscrptet da selv tage sig af.

> man kan ikke tilgå shadow filen udover hvis man er på maskinen som root, det
> er derfor jeg spørg om der er nogle, der har prøvet det før, eller har en
> god ide til det.

Selvfølgelig kan man ikke det. Det er hele pointen med shadow-filen.



(Stadigvæk ingen perlrelevans)

--
Peter Makholm | Perhaps that late-night surfing is not such a
peter@makholm.net | waste of time after all: it is just the web
http://hacking.dk | dreaming
| -- Tim Berners-Lee

Peter Makholm (16-04-2003)
Kommentar
Fra : Peter Makholm


Dato : 16-04-03 14:01

Kim Hansen / A708 <kimhanse@oek.dk> writes:

> my(@stdout, $stderr, $exit) = $ssh->cmd(" /bin/echo
> $brugeNavn:$password | sudo /usr/sbin/chpasswd" );
> ^^^^
>
> chpasswd skal køres som root

Hvilket også sker når det kaldes med sudo (hvis ikke der står særlige
ting i sudo-konfigurationen).

--
Peter Makholm | Ladies and gentlemen, take my advice, pull down your
peter@makholm.net | pants and slide on the ice
http://hacking.dk | -- Sidney Freedman

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste