Avatar billede walker Nybegynder
06. oktober 2002 - 11:15 Der er 4 kommentarer og
1 løsning

CGI udføre bash kommandoer

Hej
Hvordan får jeg et cgi script til at eksekvere bash kommandoer på min linux server? Altså få et cgi script til at f.eks. ændre passwords på brugere?

Mvh
Walker
Avatar billede jespernaur Nybegynder
06. oktober 2002 - 11:44 #1
Du kan sige

    $status = system("program");

eller hvis du ønsker at opfange programmets output:

    $output = `program`;
    @output = `program`;

Mvh
Jesper Naur
Avatar billede walker Nybegynder
06. oktober 2002 - 12:19 #2
Okay... Jeg forstår ikke helt.. jeg har prøvet at lave følgende cgi-script:
---------------------------
#!/usr/bin/perl
print "Content-type:text/html\n\n";
printf("Hello world<BR>");
$status = system("test");
$output = 'test';
@output = 'test';
print $status;
print "<BR>";
print $output;
print "<BR>";
print @output;
print "<BR>";
-----------------------
output:
Hello world
256
test
test
-----------------
hvordan får jeg f.eks skiftet password med "passwd" kommandoen?
Avatar billede jespernaur Nybegynder
06. oktober 2002 - 13:31 #3
Jeg har angivet 3 forskellige måder at starte et program fra perl - du skal selvsagt erstatte ordet 'program' med den kommando, du ønsker udført. I dit eksempel har du skrevet 'test', hvilket vil virke fint, under forudsætning af, at du har et program der hedder 'test'.

Jeg må dog påpege, at du har skrevet forkert af: I mine 2 sidstnævnte eksempler har jeg anvendt tegnet ` (den såkaldte backtick), hvorimod du har brugt ' (apostrof). Der er en meget væsentlig forskel!

Hvis du i første omgang ønsker at se noget ske, kunne du jo bruge ls for at se en liste af filer, altså noget i retning af

#!/usr/bin/perl
print "Content-type:text/html\n\n";
printf("Hello world<BR>");
$status = system("ls");
$output = `ls`;  # bemærk backtick og ikke apostrof!
@output = `ls`;
print $status;
print "<BR>";
print $output;
print "<BR>";
print @output;
print "<BR>";

Mvh
Jesper Naur
Avatar billede madsbirk Nybegynder
16. oktober 2002 - 13:34 #4
Hej
Er du ved at lave et script der kan oprette bruger i Apache ?
/Mads
Avatar billede walker Nybegynder
07. april 2003 - 13:18 #5
Nej, ikke helt... mere et som kan ændre password...
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
Kurser inden for grundlæggende programmering

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