Moin Thomas,
On Tue 19.11.2013 16:20:24, Thomas Schmidt wrote:
Apache2 mit mod_itk (unter Debian).
Vielen Dank Andre! Das funktioniert super.
Ich erstelle die User der Webseiten so:
useradd -d /www/blog -U blog
Wenn ich will, dass der User SSH-Zugriff hat, mache ich einfach
passwd blog
Ist das so weit richtig?
Das ist eine Möglichkeit, wobei ich nicht direkt den Apache-User zum login freigeben würde. Damit eröffnest du dir die Möglichkeit, das dein User via SSH ankommt und z.B. einen gerade für seine Seite Requests abarbeitenden Apache tötet oder ähnliches.
Ich würde daher ein weiteres Set User anlegen, die für den menschlichen Login bestimmt sind, aber dieselbe Gruppe wie der Apache-User haben. Dann musst du nur noch mit chmod g+rw(x)s sicherstellen das die Dateien für deinen Login-User bearbeitbar sind und es sollte alles gehen.
Jeder Apache-Request läuft mit seinem eigenen User und Gruppe, aber du bist einfach in allen Gruppen. Umask muss dann nur passend gesetzt sein.
Wie funktioniert das genau? Welche Rechte und User müssen vergeben werden? Der Blog liegt in /www/blog/html. Nur der User 'blog' soll in /www/blog lesen und schreiben können. Außerdem soll 'thomas' in /www/blog/html als 'blog' schreiben können, damit die Seite in einem Guss nur einem User gehört und ich trotzdem mit einem SSH-Zugang alles administrieren kann.
Das folgende sollte dafür reichen:
chown blog:blog-owners -R /www/blog chmod g+rws -R /www/blog find /www/blog -type d -exec chmod g+x {} ; adduser thomas blog-owners
Damit darf der Apache (user "blog") alles mit den Dateien anstellen, da er Eigentümer ist, und der "einfache User" (du, aka "thomas") auf Grund deiner Gruppenmitgliedschaft alles ändern usw (g+rw(x)), sowie sollten alle Dateien unterhalb von /www/blog automatisch "blog:blog-owners" gehören.
Ein kleiner Fallstrick ist aber noch dabei: manche FTP/SFTP/SCP-Clients scheinen das SetUID-Bit zu ignorieren, dann musst du das händisch wieder gerade ziehen.
Desweiteren sollte in dem Verzeichnis nichts liegen, was als Binary taugt, und von "blog" nicht ausgeführt werden sollte, denn das SetUID-Bit würde jedem User des Systems erlauben dieses Binary auch als Blog auszuführen. Aber da wir über eine WWW-Root reden sollten da wohl eh keine Binaries zu finden sein, oder?
Gruß, Andre