Hallo!
Das Brett Sicherheit habe ich gewählt, weil mein Problem mit dem Rechtekonzept von Linux zusammenhängt bzw. dadurch verursacht ist.
Apache 2, mySQL, php5 usw. sind installiert und scheinen zu laufen. Außerdem habe ich den tar-Ball von phprojekt Version 5.2 nach /var/www/phprojekt52 kopiert (als root). Wenn ich in der URL-Zeile meines Browsers "localhost" eingebe, sehe ich
Index of /
[DIR] apache2-default/ 26-Jul-2006 19:50 -
[DIR] phpmyadmin/ 30-Aug-2006 03:05 -
[DIR] phprojekt52 20-Dec-2006 12:00 -
Das Rechtesystem von Linux habe ich nach knapp 10 Jahren noch immer nicht begriffen, auch wenn ich hin und wieder glaubte, dass dies endlich der Fall sei. Aber die Praxis belehrt mich leider immer wieder eines frustrierenden Besseren. ☹
1) IDer Eigentümer von /var/www und allem darunter ist root. Die Gruppe ist ebenfalls root. Da ich unter diesem Pfad die Berechtigungen der Dateien und Verzeichnisse nicht wechseln wollte, habe ich meinen normalen User zur Gruppe root hinzugefügt, um nicht immer als root an HTML-Seiten arbeiten zu müssen. Aber auch wenn mein normaler User der Gruppe root angehört kann ich dennoch im Pfad /var/www keine ["eine" war ein Tippfehler] Datei anlegen, obwohl das nach meinem - offensichtlich falschen - Verständnis für die Angehörigen der Gruppe root zulässig sein sollte, wenn die Rechte auf 0774 bzw. rwxrwxr-- lauten. Was mache ich falsch?
2) Darum habe ich mit sudo chown -R delcour:delcour /var/www/* und chmod delcour:delcour /var/www die Berechtigungen geändert. Damit hatte ich zwar Schreibrecht, aber die Setuproutine von phprojekt blieb ohne Fehlermeldung einfach stehen. An phprojekt wird es nicht liegen; denn auf meinem Webserver, wo ich zum Kopieren der Dateien nur einen FTP-Zugang habe, die Datenbank mit phpmyadmin bereitstelle und die übrige Installation über den Browser geschieht klappt. Nur lokal zum Testen klappt es nicht. Was hat mein Provider im Gegensatz zu Ubuntu mit meinen Modifikationen anders eingestellt?
3) Ich habe alles mit apache, php usw. deinstalliert und das komplette Verzeichnis /var/www gelöscht. Dann habe ich alles wieder installiert. Es ist also wieder in einem jungfräulichen Zustand. Das Phprojekt habe ich als root mit mc aus dem tar heraus nach /var/www/phprojekt52 extrahiert. Jetzt will ich das setup.php über http://localhost/phprojekt/setup.php starten und bekomme die Meldung:
Alert: Cannot create file config.inc.php!
The webserver needs the permission to write the file config.inc.php in the PHProjekt root directory.
Die Meldung ist klar. Die Lösung leider nicht. Google liefert unzählige Fundstellen, wo die Frage gestellt wird. Falls darauf jemand geantwortet hat, lautete die Antwort unisono etwa "Das steht doch dort: Gib dem Webserver Schreibrechte!".
Das ist zwar eine formal richtige, aber nicht hilfreiche Antwort. Das wusste der jeweilige Fragesteller und weiß ich auch.
Wie macht man das?
Ein Schreibrecht kann man nach meiner Kenntnis entweder über chmod oder indirekt über den Eigentümer setzen. Außerdem sollte es über die Gruppenzugehörigkeit gehen, wobei mir die Bedeutung der Gruppenzugehörigkeit schleierhaft ist, weil - siehe 1) - ein Schreibrecht für eine Gruppe anscheinend noch lange nicht ein Schreibrecht für die Angehörigen der Gruppe bedeutet - warum eigentlich nicht?
Es wird doch einen Grund haben, dass Ubuntu, das Verzeichnis /var/www dem User und der Gruppe root zuordnet und es für einen User Apache (wie immer der auch heißen mag: www? nobody?) kein Schreibrecht eingerichtet hat.
Gruß
Delcour