Rechtemanagement/Dateirechte Shared Hosting

mrtnmueller

New Member
Hallo Community,

gleich vornweg: ich habe gesucht. Aufgrund schlechter Suchworte (ACL, Rechte, Rights Management) oder weils wirklich nichts zu dem Thema gibt bisher habe ich nichts dazu gefunden :o

Ich erkläre mal kurz das Setup, bevor ich zur Frage komme:

Ubuntu Lucid x64
Apache 2.2 (läuft unter User www-data)
proftpd 1.3.1
FTP-Nutzer in /etc/passwd, aber ohne Shell-Zugriff

Was ich gern realisieren möchte ist, dass der Nutzer über FTP volle Lese- und Schreibrechte auf sein Verzeichnis hat und auch www-data (der Nutzer möchte über Joomla Komponenten installieren können). Das funktioniert mittels ACLs auch wunderbar für existierende Dateien und Ordner und per default-ACL auch für neu angelegte. wird jedoch (wie bei joomla components) eine zip-Datei entpackt oder der nutzer lädt etwas über ftp hoch zeigt mit getfacl an, dass die rechte eingeschränkt sind (effektive rechte). ich frage mich ernsthaft, woher das kommt und wie ich nun am besten realisiere, dass 2 nutzer, die nicht in der selben gruppe sind (wäre schlecht wenn ein nutzer dem anderen ins verzeichnis schreiben könnte), immer schreibzugriff erhalten.

Vielen Dank schonmal im Voraus für eure Antworten,
Martin.
 
Verwende PHP als FastCGI mit Suexec und laß es im Kontext des jweiligen "FTP"-Users laufen. Dann gehören die Dateien auch anschließend diesem User und er kommt per FTP problemlos dran. Wie das eingerichtet wird, dazu gibt es diverse Howtos. Dadurch sind die Webs auch rechtemäßig gut trennbar, neben dem User (Schreiben und Lesen) brauch nur noch www-data (lesenden) Zugriff.
 
hm, erstmal danke für den tipp.

php-fcgi und suexec würde ja aber bedeuten, dass ich für jeden Nutzer einen bzw. mehrere eigene PHP-Prozesse habe. das wirkt sich sicherlich nachteilig auf die performance aus, oder?

lässt sich das ganze nicht im Dateisystem lösen? ich meine unter NTFS gehts doch auch, und Linux hatte bei Dateisystemen eigentlich immer die Nase vorn...
 
Solange du PHP also Modul laufen läßt, laufen alle PHP-Prozesse unter dem User www-data - damit können auch alle PHP-Scripte auf die Webverzeichnisse aller User zugreifen, zumindest lesend (und das reicht ja schon, um beispielsweise die MySQL-Zugangsdaten eines anderes Users aus einer config.php auszulesen)!
Wegen der Performance verwendest du ja gerade FastCGI statt CGI, damit die PHP-Prozesse nicht ständig neu gestartet werden. Im ungünstigsten Fall wir bei wenig Betrieb etwas mehr Speicher verbraucht - der Sicherheitsgewinn ist das immer wert! Wenn man dann noch weitere Vorteile wie userbezogene PHP-Konfigurationenen berücksichtigt...
 
Solange du PHP also Modul laufen läßt, laufen alle PHP-Prozesse unter dem User www-data - damit können auch alle PHP-Scripte auf die Webverzeichnisse aller User zugreifen, zumindest lesend (und das reicht ja schon, um beispielsweise die MySQL-Zugangsdaten eines anderes Users aus einer config.php auszulesen)!
stimmt, an diesen umweg habe ich im ersten moment garnicht gedacht aber das ist definitiv ne ziemliche sicherheitslücke.

ok, dann danke ich dir für die beratung und werde mich etwas intensiver mit fcgi auseinandersetzen. falls ich danach noch fragen habe weiß ich ja jetzt, an wen ich mich wenden muss :eek: ;)
 
Back
Top