Avatar billede lolgoff Nybegynder
28. maj 2001 - 22:06 Der er 6 kommentarer

Eksekvering af linux-kommandoer via PHP

Jeg har hørt, at det er muligt at eksekvere linux-kommandoer igennem et PHP-script.
Hvis jeg f.eks. ønsker at eksekvere følgende:

---------
\"/usr/sbin/adduser $1\"
---------

Hvordan gør jeg det, og er der noget særligt jeg skal være opmærksom på mht. rettigheder, e.a. - det er ganske nyt for mig det her med linux-eksekveringer via PHP.

Alternativt kan man eksekvere en fil, som ligger på linuxserveren - i givet fald, hvordan ?
Avatar billede lbhansen Nybegynder
28. maj 2001 - 22:14 #1
Du kan kigge på
http://www.php.net/manual/en/function.exec.php
Som beskriver funktionskaldet til at eksekvere
kommandoer.

Du kan sikkert kun få lov til at eksekvere programmer som \'nobody\' har lov til at bruge.

Ellers skal man til at identificere sig som root account eller lign. Dette kan kun gøres i koden, og er en kæmpe sikkerhedsrisiko
Avatar billede erikjacobsen Ekspert
28. maj 2001 - 22:15 #2
Jah, du skal da være root for at lave en adduser  - og webserveren kører typisk
som nobody
Avatar billede lolgoff Nybegynder
28. maj 2001 - 22:22 #3
OK, jeg har kigget lidt på PHP-manualen, men kan I ikke give et eksempel på eksekvering, f.eks. af kommandoen fra mit eksempel.....
Avatar billede myplacedk Nybegynder
28. maj 2001 - 22:40 #4
Prøv at kigge lidt mere i manualen...

exec(\"/usr/sbin/adduser $1\");
system(\"/usr/sbin/adduser $1\");

Kunne være et par eksempler, der dog ikke kigger på resultatet...

Vær desuden opmærksom på, at variabelnavne ikke kan starte med et tal i PHP.
Avatar billede lolgoff Nybegynder
29. maj 2001 - 14:04 #5
Jeg har faktisk nu fået den til at eksekvere kommandoer, hvis linuxfilen ligger i PHP-folderen, men denne fil kan ikke \"snakke længere ind i linux-serveren\", f.eks. hvis jeg ønsker at køre et oprettelsesscript.
Hvordan kan det anbefales, at jeg kan køre et oprettelsesscript.....?
Avatar billede myplacedk Nybegynder
29. maj 2001 - 14:39 #6
Hvis filen ligger i /usr/bin, skriver du bare \"/usr/bin/filnavn\" i stedet for blot \"filnavn\".
Hvis den ligger én mappe over den aktuelle, skriver du \"../filnavn\" osv...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester