Michael Schröpl: WWWBoard Permission denied

Beitrag lesen

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.