Kann keine cgi Scripte ausführen

Bash, Shell, PHP, Python, Perl, CGI
Post Reply
redax
Posts: 5
Joined: 2002-12-20 16:21
 

Kann keine cgi Scripte ausführen

Post by redax »

Hallo Ihr!

ich habe nun seit fast 4 Wochen einen Root Server L, mit Suse 8.1.

Problem: kein User kann cgi Scripte ausführen.

Im Browser:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

ein tail /var/log/httpd/suexec.log bringt:
info: (target/actual) uid: (web16/web16) gid: (ftponly/ftponly) cmd: serverinfo.cgi
error: directory is writeable by others: (/home/www/web16/html/cgi-bin)

Woran kann das liegen?

Ich habe die Rechte der cgi-Scripte auch schon auf wwwrun gestellt, hilft aber alles nicht...

Bin für jede Hilfe dankbar!

Niko
[/quote]
cae
Posts: 68
Joined: 2002-12-16 07:16
Location: München
 

Re: Kann keine cgi Scripte ausführen

Post by cae »

Hmmm... seltsam. Hab gerade bemerkt, dass bei mir das fast gleiche Problem auftritt...
Bei mir kommt entweder

Code: Select all

error: command not in docroot (/home/www/web6/html/cgi-bin/test.pl
oder

Code: Select all

emerg: cannot get docroot information (/srv/www/htdocs)
als Fehler in der suexec.log. Das Problem scheint der DocumentRoot von Suexec zu sein. Bei mir ergibt
suexec -V:

Code: Select all

 -D DOC_ROOT="/srv/www/htdocs"
 -D GID_MID=96
 -D HTTPD_USER="wwwrun"
 -D LOG_EXEC="/var/log/httpd/suexec.log"
 -D SAFE_PATH="/bin:/usr/bin"
 -D UID_MID=96
 -D USERDIR_SUFFIX="public_html"
Nach etwas googeln hab ich herausgefunden, dass alle Verzeichnisse, aus denen Perl gestartet werden soll, sich im DOC_ROOT befinden müssen(?). Ein kleiner Test zeigt, dass sich bei einem testweise eingerichteter VirtualHost unter dem eigestellten DOC_ROOT (="/srv/www/htdocs") problemlos alle Perl Scripts aufrufen lassen.

Es scheint, als sei die einzige Möglichkeit, suexec mit dem geänderten DOC_ROOT (also z.B. /home/www) neu zu kompilieren.

Ist aber nur eine Theorie von mir, andere Meinungen?

Ach ja, noch ein interessanter Link zu dem Thema:
http://www.linuxplanet.com/linuxplanet/ ... ls/1445/1/
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: Kann keine cgi Scripte ausführen

Post by sascha »

@Redax:
info: (target/actual) uid: (web16/web16) gid: (ftponly/ftponly) cmd: serverinfo.cgi
error: directory is writeable by others: (/home/www/web16/html/cgi-bin)
Da stehts doch!

@cae:

Hast du vielleicht ein online Update mit Yast gemacht? Dabei wird dein Apache mit der original SuSE Version ersetzt die eben /srv/www/ als Suexec Document Root hat. 1&1 stellt auf dem Updateserver angepasste Pakete Bereit. Falls die aktuellste Version nicht drauf sein sollte kannst du auch einfach /usr/sbin/suexec sichern und nach einem Update wieder zurückkopieren.
Last edited by sascha on 2003-02-12 20:29, edited 1 time in total.
cae
Posts: 68
Joined: 2002-12-16 07:16
Location: München
 

Re: Kann keine cgi Scripte ausführen

Post by cae »

Sascha wrote: Hast du vielleicht ein online Update mit Yast gemacht? Dabei wird dein Apache mit der original SuSE Version ersetzt die eben /srv/www/ als Suexec Document Root hat. 1&1 stellt auf dem Updateserver angepasste Pakete Bereit. Falls die aktuellste Version nicht drauf sein sollte kannst du auch einfach /usr/sbin/suexec sichern und nach einem Update wieder zurückkopieren.
Kann gut sein, dass ich mit yast rumgespielt hab ;) Hab mich mal auf dem Update-Server umgesehen, aber bis auf die "offiziellen" SuSE Updates nichts gefunden. Weiß Du vielleicht, in welchem Verzeichnis sich die angebassten binaries befinden?
Anonsten kompilier ich mir eben suexec neu. Kann mir jemand vielleicht seine Einstellungen von "suexec -V" posten?
Ich denke mal,
DOC_ROOT kann auch /home/www stehen und
USERDIR_SUFFIX auf /html
(bei installiertem und verwendetem Confixx natürlich ;) )

Chris
redax
Posts: 5
Joined: 2002-12-20 16:21
 

Re: Kann keine cgi Scripte ausführen

Post by redax »

Bei mir bringt suexec -V

Code: Select all

-D DOC_ROOT="/home/www"
-D GID_MID=96
-D HTTPD_USER="wwwrun"
-D LOG_EXEC="/var/log/httpd/suexec.log"
-D SAFE_PATH="/bin:/usr/bin"
-D UID_MID=96
-D USERDIR_SUFFIX="public_html"
müsste also eigentlich alles stimmen...

Habe das System auch noch nicht upgedatet.

Hat vielleicht irgend jemand eine Idee, oder vielleicht sogar das gleiche Problem?

Niko
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: Kann keine cgi Scripte ausführen

Post by sascha »

Ich hab dir dein Problem extra nochmal leicht hervorgehoben ;)
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: Kann keine cgi Scripte ausführen

Post by sascha »

cae:

Die Updates liegen unter /local-updates und dann im entsprechnden Unterverzeichnis für deine Linux Distri. Ich würde jetzt das auf dem Server erhältliche RPM downloaden und installieren. Dann suexec sichern und nochmal Yast online Update starten.
[tom]
Posts: 656
Joined: 2003-01-08 20:10
Location: Berlin
 

Re: Kann keine cgi Scripte ausführen

Post by [tom] »

Sascha wrote:Ich hab dir dein Problem extra nochmal leicht hervorgehoben ;)
[sarkasmus]
Und wenn das nicht hilft -> vorsingen ;-)
[/sarkasmus]

SCNR

[TOM]
redax
Posts: 5
Joined: 2002-12-20 16:21
 

Re: Kann keine cgi Scripte ausführen

Post by redax »

Ok, ich bin ein stückchen weiter.

In meiner suexec.log steht jetzt "nur" noch folgendes

Code: Select all

info: (target/actual) uid: (web16/web16) gid: (ftponly/ftponly) cmd: serverinfo.cgi
Im Browser immernoch "Internal Server Error"


irgendeine Idee?

Niko
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: Kann keine cgi Scripte ausführen

Post by sascha »

Steht denn was im error_log? Es könnte auch am Script selbst liegen. Vielleicht sind Windows Zeilenumbrüche drin. Die bekommst du mit

Code: Select all

dos2unix serverinfo.cgi
weg.
redax
Posts: 5
Joined: 2002-12-20 16:21
 

Re: Kann keine cgi Scripte ausführen

Post by redax »

daran habe ich auch schon gedacht, hilft aber leider auch nicht.

bin echt verzweifelt...

Niko
cae
Posts: 68
Joined: 2002-12-16 07:16
Location: München
 

Re: Kann keine cgi Scripte ausführen

Post by cae »

Sascha wrote:cae:

Die Updates liegen unter /local-updates und dann im entsprechnden Unterverzeichnis für deine Linux Distri. Ich würde jetzt das auf dem Server erhältliche RPM downloaden und installieren. Dann suexec sichern und nochmal Yast online Update starten.
Das Apache RPm kann ich nicht installieren, das das gleiche ja schon installiert ist. Also hab ich mir den source Code runtergeladen und in /src/support suexec selbst kompiliert (mit den richtigen Parametern in der suexec.h). Das neue suexec in /usr/sbin kopiert (das alte vorher gesichert) und Apache neu gestartet:

Code: Select all

Warning: Group directive in <VirtualHost> requires SUEXEC wrapper.
Warning: User directive in <VirtualHost> requires SUEXEC wrapper.
....
Irgendwie schmeckt dem wohl meine suexec nicht... Ist ist aber am richtigen Platz und wenn ich /usr/sbin/suexec ausführe, kommt auch das richtige, also:

Code: Select all

 -D DOC_ROOT="/home/www"
 -D GID_MID=96
 -D HTTPD_USER="wwwrun"
 -D LOG_EXEC="/var/log/httpd/suexec.log"
 -D SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D UID_MID=96
 -D USERDIR_SUFFIX="public_html"
Any ideas?

PS: nun kann ich natürlich Perl Scripts ausführen, da suexec nicht aktiv ist ;) Trotzdem hätte ich gerne suexec...
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: Kann keine cgi Scripte ausführen

Post by sascha »

Hi,

das RPM hättest du mit rpm -Uhv --force installieren können :wink:

Naja wie auch immer... ist das SetUID Bit für /usr/sbin/suexec gesetzt (chmod 1755 suexec)?
cae
Posts: 68
Joined: 2002-12-16 07:16
Location: München
 

Re: Kann keine cgi Scripte ausführen

Post by cae »

Sascha wrote:Hi,

das RPM hättest du mit rpm -Uhv --force installieren können :wink:

Naja wie auch immer... ist das SetUID Bit für /usr/sbin/suexec gesetzt (chmod 1755 suexec)?
Ist gesetzt und habs grad nochmal gecheckt. Trotzdem der selbe Fehler.
Das ist RPM's auch deinstallieren kann, ist mir schon klar ;) aber ich befürchte, dann klappt wieder irgendetwas anderes nicht... bei RPM's ist mir nie ganz klar, was die eigentlich wohin installieren und was erhalten bleibt bzw. neu konfiguriert werden muß.
Ich kompiliere, wenn es denn sein muß Apache lieber selbst neu.
Hmmm, oder kann mir vielleicht einer seine suexec (mit der entsprechenden Konfiguration) über einen Link zur verfügung stellen?
distanzcheck
Posts: 531
Joined: 2003-01-09 08:58
Location: NRW
 

Re: Kann keine cgi Scripte ausführen

Post by distanzcheck »

habe genau das gleich problem, was muß ich denn bei yast2 einstellen um das update vom 1&1 update server runterzuholen oder wie mache ich das alles am besten ?

Dirk
mivogt
Posts: 64
Joined: 2003-01-22 09:58
Location: Ludwigshafen/Rh.
 

Probleme mit suexec - wie kompiliere ich neu?

Post by mivogt »

Hallo Leute, auch mich hat es mit dem Update via 1&1 Server und suexec erwischt.
Seitdem ist der Pfad für das docroot hinüber.

Leider finde ich in der FAQ bei puretec nur einen Link zur apache RPM den es nicht mehr gibt.

Daher die Frage: wo bekomme ich eine neue RPM und was muss ich anpassen und wie kompilieren?

Wäre toll wenn ich hier eine Newbie-taugliche Schritt-für-Schritt-Anleitung bekommen könnte.

Mir ist noch klar dass ich mit
wget http://..../apache.rpm etwas runterladen muss
dann die SRC von suexec irgendwo irgendwie anpassen muss
und dann wohl ein ./config und make (auch make install?) machen muss.

Wäre toll hier Hilfe zu finden.


Gruss

Michael Vogt
alrad
Posts: 90
Joined: 2003-04-27 10:15
 

Re: Kann keine cgi Scripte ausführen

Post by alrad »

Hallo,

lade dir doch den Apache vom 1&1 Updateserver runter und installier ihn. Das machst du am besten mit:

w3m update.pureserver.info/local-updates/suse-8.1

Dort lädst du apache-1.3.26-57.i386.rpm, apache-devel-1.3.26-57.i386.rpm und apache-doc-1.3.26-57.i386.rpm runter und installierst mit "rpm -Uvh --force apache-1.3.26-57.i386.rpm apache-devel-1.3.26-57.i386.rpm apache-doc-1.3.26-57.i386.rpm"

Gruß
Albert
mivogt
Posts: 64
Joined: 2003-01-22 09:58
Location: Ludwigshafen/Rh.
 

Fast perfekt?

Post by mivogt »

HI alrad,

habe alles gemacht wie von dir gemailt.

Erhalte dennoch einen Fehler im suexec.log:

[2003-07-11 16:00:11]: info: (target/actual) uid: (web2/web2) gid: (ftponly/ftponly) cmd: FormMail.pl
[2003-07-11 16:00:11]: error: directory is writable by others: (/home/www/web2/html/cgi-bin)
[2003-07-11 16:00:14]: info: (target/actual) uid: (web2/web2) gid: (ftponly/ftponly) cmd: FormMail.pl
[2003-07-11 16:00:14]: error: directory is writable by others: (/home/www/web2/html/cgi-bin)
[2003-07-11 16:23:37]: info: (target/actual) uid: (web2/web2) gid: (ftponly/ftponly) cmd: FormMail.pl
[2003-07-11 16:23:37]: error: directory is writable by others: (/home/www/web2/html/cgi-bin)


Eine Idee?

Gruß

mivogt
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: Kann keine cgi Scripte ausführen

Post by sascha »

Sorry falls es patzig klingt aber wie wärs mit lesen?
mivogt
Posts: 64
Joined: 2003-01-22 09:58
Location: Ludwigshafen/Rh.
 

patizger sascha ;-)

Post by mivogt »

Hi Sascha,

patzig darfste gerne sein wenn's angebracht ist.
Ich verstehe in der Fehlermeldung des log durchaus dass irgenwas mit den Zugriffsrechten nicht stimmt.

Leider bin ich mit chmod nie ganz sicher alles richtig zu machen.
Mein letztes CHMOD war auf 755 - dachte das wäre das richtige.

... und nach nochmaliger Kontrolle stelle ich gerade fest, dass bei dem user zwei verzeichnisse cgi-bin bestehen und das falsche auf 755 gesetzt war.

Stimmt also - wer lesen kann ist klar im Vorteil. ;-)

MFG

Michael
Last edited by mivogt on 2003-07-11 17:02, edited 1 time in total.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten
Contact:
 

Re: Kann keine cgi Scripte ausführen

Post by captaincrunch »

Das darüberliegende Directory sollte 755 haben ... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
popper2001
Posts: 35
Joined: 2003-06-28 19:07
 

Re: Kann keine cgi Scripte ausführen

Post by popper2001 »

Hallo zusammen!

Nachdem ich das selbe Problem habe' und hier jetzt schon eine ganze Weile auf der Suche nach der Lösung bin, aber bisher nichts "funktionierendes" finden konnte, hier einmal meine Problembeschreibung:

System: Puretec Rootie SuSE 8.1, Confixx 2.0 Pro...

Die Ursache allen Ã?bels bei mir war das Ausführen von SuSEconfig, nachdem ich einige Pakete installiert hatte. Dabei wurde wohl die httpd.conf von Puretec überschrieben bzw. einige Ã?nderungen an der Datei vorgenommen.

Seit dem bekomme ich bei einem CGI Aufruf, ganz egal, wo das Script im Kundenverzeichnis liegt, den selben Fehler, wie alle anderen auch:

Code: Select all

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@*****.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Das Script scheint OK zu sein, bei:

Code: Select all

perl -wc stat.pl
bekomme ich zumindest ein:

Code: Select all

stat.pl syntax OK
Hab's auch mal mit perldiver versucht:

Hier ein Auszug aus der error_log:

Code: Select all

[Sun Jul 13 15:43:15 2003] [error] [client 217.0.***.***] Premature end of script headers: /home/www/web1/html/cgi-bin/perldiver/perldiver.html
Und aus der suexec.log:

Code: Select all

[2003-07-13 15:43:15]: info: (target/actual) uid: (web1/web1) gid: (ftponly/ftponly) cmd: perldiver.html
[2003-07-13 15:43:15]: error: target uid/gid (636/101) mismatch with directory (0/0) or program (0/0)
suexec -V liefert folgendes:

Code: Select all

 -D DOC_ROOT="/home/www"
 -D GID_MID=96
 -D HTTPD_USER="wwwrun"
 -D LOG_EXEC="/var/log/httpd/suexec.log"
 -D SAFE_PATH="/bin:/usr/bin"
 -D UID_MID=96
 -D USERDIR_SUFFIX="public_html"
scheint also alles richtig konfiguriert zu sein, oder?

Hab' auch mal apache vom Update-Server neu installiert mit:

Code: Select all

rpm -Uvh --force apache-1.3.26-57.i386.rpm apache-devel-1.3.26-57.i386.rpm apache-doc-1.3.26-57.i386.rpm

Allerdings alles ohne Erfolg bisher!

Hat vielleicht irgendjemand noch eine "jungfräuliche" httpd.conf aus einem Puretec-Image mit SuSE 8.1

Glaube nämlich mittlerweile wirklich, dass es an den ScriptAlias(en) liegt, die dort vermerkt sind. Die werden von SuSEconfig nämlich automatisch auf:

Code: Select all

ScriptAlias /perl/          "/srv/www/cgi-bin/"
ScriptAlias /cgi-perl/      "/srv/www/cgi-bin/"
gesetzt, während in der Originaldatei von 1&1 das ganze in etwas so aussehen müsste:

Code: Select all

ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/"
zumindest lauf 1&1 Root FAQ's:

http://server.1und1.com/root_server/conf/9.html

BTW, woher bekomm ich eigentlich schnell und einfach dos2linux und wie installier' ich es?

Hat vielleicht sonst noch irgendjemand eine Idee für das obige Problem? Wär' Euch echt super dankbar für Eure Hilfe, bin nämlich schon "richtig verzweifelt"!

Grüße!
popper2001
momo
Posts: 33
Joined: 2003-08-03 16:35
 

Re: Kann keine cgi Scripte ausführen

Post by momo »

alrad wrote:Hallo,

lade dir doch den Apache vom 1&1 Updateserver runter und installier ihn. Das machst du am besten mit:

w3m update.pureserver.info/local-updates/suse-8.1

Dort lädst du apache-1.3.26-57.i386.rpm, apache-devel-1.3.26-57.i386.rpm und apache-doc-1.3.26-57.i386.rpm runter und installierst mit "rpm -Uvh --force apache-1.3.26-57.i386.rpm apache-devel-1.3.26-57.i386.rpm apache-doc-1.3.26-57.i386.rpm"

Gruß
Albert
Danke für diesen Tipp, war nach einem Update ganz schön am Verzweifeln. 8O
Post Reply