Tach!
Mit PHP als Apache-Modul hat man keine systemseitige Trennung zwischen den Anwendungen/Anwendern. Alles läuft unter demselben Benutzer (dem des Webservers)
Könntest du bitte ein wenig genauer erläutern, wie oder wann sowas in der Praxis angewendet wird?
Ein Apache-Modul läuft im Rahmen des Apachen und unter dem dafür konfigurierten User. Das betrifft alle Anwendungen, die auf diesem Apachen laufen. Unter diesem einen User laufen auch alle Dateioperationen. Als eine Anwendung unter vielen kann man also alles lesen, was andere Anwendungen so produzieren und was ihnen gehört (Codedateien mit (Datenbank-)Passwörtern beispielsweise). Diesem Manko hat man versucht mit dem Safe Mode zu begegnen. Das war aber eine Krücke mit mehr Nach- als Vorteilen und aus sicherheitstechnischer Sicht kein guter Ansatz.
Mit PHP als (F)CGI kann man über suEXEC konfigurieren, die Verarbeitung unter einem jeweils eigenen User laufen zu lassen. Und dabei können die bereits vorhandenen Möglichkeiten des darunterliegenden Betriebs- und Dateisystems verwendet werden, ohne dass man noch eine weitere Sicherheitsschicht (Safe Mode) einziehen muss. Einem separaten User kann man über die Dateiberechtigungen Zugriff gewähren oder verweigern - natürlich nur, wenn man bei der Rechte-Vergabe mit Bedacht vorgeht und nicht alles auf 777 stellt.
Wie kann ich mir so eine Trennung zwischen den Anwendungen/Anwendern vorstellen, und was bringt so eine Trennung?
Du kannst dir das so vorstellen wie die Trennung von "ganz normalen" Usern unter Unix (oder auch Windows mit NTFS). In der Tat ist es genau das. Solch eine Trennung bringt ein access denied schon von Seiten des Betriebssystems her.
dedlfix.