Tobias: WWWBoard Permission denied

Hallo,

Kann einer mir hier weiter helfen ??
Ich würde gerne das cgi-WWWBoard.pl laufen lassen, welches im Verzeichnis: D:\User\sac-baselland\cgi-bin\ ist. Mein Provider hat mir mittgeteilt, dass meine Webuser auf diesem Verzeichniss schreibberechtigungen haben.
Ich bekommen folgende Meldung nachdem ich das cgi gestartet habe: Permission denied at D:\User\sac-baselland\cgi-bin\wwwboard.pl line 157.

Die Linie 157 in meinem CGI-Scrippt sieht wie folgt aus: 157 open(NEWFILE,">$basedir$mesgdir$num.$ext") die $!;
     158 print NEWFILE "<html>\n";
     159 print NEWFILE "  <head>\n";

das Verzeichnis auf dem Server sieht so aus:

cgi-bin\ Files: WWWBOARD PL         17'272  19.12.99  13:16 wwwboard.pl
ADMIN_~1             7'527  27.02.97  13:54 ADMIN_~1
ALPHA-2                767  27.02.97  13:54 ALPHA-2
DATA     TXT             2  30.05.96  14:01 DATA.TXT
FAQ~1    HTM         1'954  30.05.96  14:01 FAQ~1.HTM
PASSWD   TXT            22  30.05.96  14:01 PASSWD.TXT
README              14'900  13.07.96  18:37 README
WWWADMIN PL         27'281  30.05.96  14:01 WWWADMIN.PL
WWWBOA~1 BAK         1'085  30.05.96  14:01 WWWBOA~1.BAK
WWWBOA~1 HTM         1'092  18.12.99  14:17 WWWBOA~1.HTM
MESSAGE        <DIR>        18.12.99  14:19 MESSAGE

Kann mir jemand weiterhelfen, da ich nicht der beste Hirsch in CGI bin.

Vielen Dank

Tobias

  1. welches im Verzeichnis: D:\User\sac-baselland\cgi-bin\ ist. Mein Provider hat mir mittgeteilt, dass meine Webuser auf diesem Verzeichniss schreibberechtigungen haben.

    "Deine Webuser"? Wer ist das?

    Relevant ist, ob der Prozeß, der Dein CGI-Skript ausführt, Schreibrecht auf dieses Verzeichnis hat.
    Und das ist normalerweise *nicht* die Benutzerkennung, unter welcher Du Dein Board installiert hast.
    (Hatte ich nicht schon mal geschrieben, daß Board-Daten im CGI-Verzeichnis keine gute Idee seien?)

    Ich bekommen folgende Meldung nachdem ich das cgi gestartet habe: Permission denied at D:\User\sac-baselland\cgi-bin\wwwboard.pl line 157.
    Die Linie 157 in meinem CGI-Scrippt sieht wie folgt aus: 157 open(NEWFILE,">$basedir$mesgdir$num.$ext")

    Wenn nur Deine Benutzerkennung Schreibrecht auf dieses Verzeichnis hat, dann nützt das nicht viel - normalerweise laufen CGI-Anwendungen unter einer spezifischen Benutzerkennung Deines Providers, die ganz bewußt wenig Rechte hat (damit Dein CGI-Skript möglichst wenig Schaden anrichten kann).

    Um nun also Deinem Board Schreibrecht auf seine Dateien zu geben, sollte das Verzeichnis, in welches das Board schreiben will, am besten derselben Benutzerkennung gehören.
    Das geht aber nicht, denn erstens bist Du nicht befugt, den owner des Verzeichnisses zu ändern (das darf nur der Systemverwalter), und zweitens hättest Du selbst danach nicht mehr das Recht, Dateien dort zu installieren (insbesondere keine weiteren CGI-Anwendungen).

    Um trotzdem beides zu können, kannst Du die Zugriffsbits dieses Verzeichnisses auf 777 setzen. Dann kann *jeder* Benutzer dort lesen und schreiben.
    Insbesondere kann aber auch jeder Dein Board löschen, Viren dort installieren und andere nette Sachen!

    Vielleicht ist Dir jetzt klar, wieso Du Daten (read-wrote) und Programme (read-only) Deines Boards strikt trennen solltest.
    Und genau deshalb sind im Konfigurationsabschnitt der Skripts entsprechende Variablen vorgesehen, wo man - gemäß der Verzeichnisstruktur des eigenen Servers - passende Einstellungen treffen kann.

    1. Danke danke,

      langsam wird mir die Sache klar, doch ich würde gern das ganze mal zum laufen bringen, in dem nächsten Schritt, werde ich dann die Files in die entsprechenden Verzeichnise kopieren und die entsprechenden Berechtigungen vergeben.

      Apropos Berechtigungen, kann ich diese selbst vergeben ??
      Mein Provider ist kein UNIX-Server, kann ich dann selbst auch über remote die Berechtigungen verändern ??

      Mit welchem FTP-Programm lässt sich das am besten erledigen ??

      Ich benütze WS_FTP und mit diesem Programm kann ich die Berechtigungen nicht selbst vergeben.

      Vielen Dank
      Tobias

      1. langsam wird mir die Sache klar, doch ich würde gern das ganze mal zum laufen bringen, in dem nächsten Schritt, werde ich dann die Files in die entsprechenden Verzeichnise kopieren und die entsprechenden Berechtigungen vergeben.

        Genau das kann aber länger dauern, als es gleich "richtig" zu machen ...

        Apropos Berechtigungen, kann ich diese selbst vergeben ??
        Mein Provider ist kein UNIX-Server, kann ich dann selbst auch über remote die Berechtigungen verändern ??

        Hm, bei Windows-Servern muß ich passen.

        Mit welchem FTP-Programm lässt sich das am besten erledigen ??
        Ich benütze WS_FTP und mit diesem Programm kann ich die Berechtigungen nicht selbst vergeben.

        Mit keinem (FTP-Client), weil es nicht am Client liegt, wenn der Server die Kommandos zum Setzen von Berechtigungen nicht unterstützt.
        Täte er das, dann würde es mit WS_FTP funktionieren.