PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache Verzeichnisberechtigungen



jinx
15.04.09, 13:30
Hallo werte Pinguin-Fans!

Eine kleine Frage für zwischendurch:

Habe unter Ubuntu einen Apache installiert, mit /var/www als DocumentRoot. Dieses Verzeichnis gehört standardmäßig root:root. Jetzt möchte ich gerne als Benutzer (jinx) per sftp bzw. scp Dateien und Verzeichnisse hochladen und damit ins Internet stellen. Natürlich habe ich dazu keine Rechte, da das Verzeichnis root:root gehört.

Was ist die beste Vorgehenssweise um dieses "Problem" zu lösen? Besitzer von /var/www in jinx ändern, DocumentRoot komplett in das Homeverzeichnis des Users verschieben, mit SetGUID-Bits irgendwie oder ganz was anderes? Würde mich mal interessieren, wie Ihr das so handhabt und auf Euren Servern betreibt oder was Ihr für "elegant" haltet.

Freue mich auf Eure Anregungen und Ideen!

Schöne Grüße
jinx

HirschHeisseIch
15.04.09, 13:43
Da gibts mehrere Ansätze.
Wenn es nur der eine User ist, kann man den Besitzer ändern, ansonsten über Gruppen-Rechte.
Wenn viele User was hochlanden können sollen, könntest Dir mal mod_userdir angucken.

marce
15.04.09, 13:46
gern genommen wird auch SVN-Integration, WebDAV, getrennte Live- und Deploy-Systeme, ein CMS, ...

jinx
15.04.09, 14:14
Danke erstmal für die Antworten. Es geht momentan nur um einen Benutzer.

Angenommen zwei Benutzer sollen doch noch schreibenden Zugriff auf das /var/www bekommen, sollten dann lieber die Rechte auf g+rwx gesetzt und beide Benutzer in eine entsprechende Gruppe geschubst werden oder doch lieber anders?

Bisher sah das so aus, dass sich zwei Benutzer einen FTP-Account "geteilt" haben, aber das ist ja nun sehr.. naja.. unschön. :)

HirschHeisseIch
15.04.09, 14:29
Das wäre wohl das einfachste...

jinx
15.04.09, 15:05
Hab die Möglichkeit der ACLs (über setfacl) ganz außen vor gelassen... Spricht da was gegen?

HirschHeisseIch
15.04.09, 15:11
Da spricht nicht wirklich was gegen...
Ich find nur den Gruppen-Ansatz bei 2 Usern einfacher. ;)

solarix
15.04.09, 15:18
Leg eine gruppe an beispielsweise: webuser
dann weisst Du der Gruppe die User haumichblau1 haumichblau2 usw zu. den Directorys entsprechende Rechte geben.

In den Vhost Einstellungen
Z.B. so



VirtualHost 1.0.0.0:80>
ServerName haumichblau.de:80
SuexecUserGroup haumichblau1 webuser
DocumentRoot /usr/local/www/data/vhost/haumichblau/



Das wäre ein Ansatz der funktioniert und sich bei mir im Zusammenspiel mit suexec bewährt hat.
Ach ja und immer schön die hervorragende Apache
Doku lesen. ;)

jinx
15.04.09, 15:21
Vielleicht kommen ja noch ein paar User dazu, dann will ich es gleich einigermaßen vernünftig machen. SVN für Webseiten klingt interessant, doch dachte ich eher an etwas "einfacheres". :)
Hmm, schade, hab eigentlich auf eine Antwort wie "Das schreit nach Methode $X, das ist genau das richtige für sowas" gehofft.. ;-)

solarix
15.04.09, 15:31
Vielleicht kommen ja noch ein paar User dazu, dann will ich es gleich einigermaßen vernünftig machen. SVN für Webseiten klingt interessant, doch dachte ich eher an etwas "einfacheres". :)
Hmm, schade, hab eigentlich auf eine Antwort wie "Das schreit nach Methode $X, das ist genau das richtige für sowas" gehofft.. ;-)

DU willst scp en... also was spricht gegen die Suexec Lösung, oder wegen mir das ganze auch mit Webdav in Verbindung mit SSL ? Du könntest das ganze ja auch noch in Verbindung mit einem chroot machen. ;)

Doku zum Thema Vhosts (http://httpd.apache.org/docs/2.2/de/vhosts/)

Apache Doku generell (http://httpd.apache.org/docs/2.2/de/)

jinx
15.04.09, 16:04
Es muss nicht SCP/SFTP sein, wenn es besser gehen sollte. Auch möchte ich die Dateisystemberechtigungen nicht lockerer konfigurieren als sie sein müssten (es heißt doch immer, dass man damit aufpassen sollte).

Ich könnte /var/www ja wie beschrieben der Gruppe webusers (in der sich alle zugriffsbedürftigen User befinden :)) zuordnen, die Verzeichnisse erhalten 775 und die Dateien 664. Der Apache-User übernimmt nun also die Berechtigungen aus dem other-Teil, womit er aber nun auch keinen Schreibzugriff mehr auf die Daten hat, es sei denn, ich füge ihn ebenfalls der webusers Gruppe hinzu oder setze 777 bzw. 666 Berechtigungen, was aber nicht empfehlenswert ist, oder? Andererseits hat er die Rechte ja eh noch nie besessen, da das Verzeichnis /var/www ja root gehört hat nach der Apache-Installation.

Vielleicht denke ich auch einfach falsch, denn immerhin sind die Rechte ja gerade dazu da, um (in diesem Fall) Gruppen den gemeinsamen Dateizugriff zu ermöglichen. Es interessiert mich einfach wie das anderswo (falls überhaupt) gehandhabt wird.

Freue mich, schon so viele gute Antworten mit Ideen und Anregungen bekommen zu haben. Danke! :)

PS.: Wirkt sich SuEXEC denn nicht nur auf ausgeführte Skripte (z.B. Perl oder PHP) aus?

John W
16.04.09, 14:39
Ich würd da eine Gruppe webadmin erstellen, zu root:webadmin chownen und zu 775 (Verzeichnisse) und 664 (Dateien) chmodden, das sollte eig. kein Problem sein.