CentOs6 - Apache funktioniert plötzlich nicht mehr

Gr3g

Enthusiast
Thread Starter
Mitglied seit
20.03.2008
Beiträge
752
Ort
Karlsruhe
//EDIT
Problem vom ersten Post gelöst - HIER geht die neue Frage los

Hallo zusammen,

ich lerne mich grad ein wenig mit einem LINUX Webserver (mit MySQL, Apache2, PHP und Tomcat6 auf CentOs 6) ein. Läuft auch alles ganz gut, allerdings bin ich jetzt auf ein par Probleme gestoßen die ich bisher nicht lösen konnte und dringend die Hilfe von eingefleischten Linux Nutzern benötige :fresse:

Ich habe vsftp installiert und anhand der Anleitung hier konfiguriert. Ich habe den root Zugang über SSH gesperrt und zwei User für SSH und einen für FTP angelegt. Alle user sollen vollen Zugriff auf mein /var/www/ Verzeichnis bekommen. Desshalb habe ich sie in eine Gruppe namens hosting gesteckt (in dem Tutorial das ich oben verlinkt habe entspricht das der Gruppe ftpusers) und dem FTP User das /var/www Verzeichnis als Homeverzeichnis festgelegt (in der vsftp Konfiguration habe ich ihn dann in seinem root Verzeichnis eingeschlossen).

Jetzt dachte ich das ich mit chmod g+w /var/www einfach der Gruppe die rechte geben kann. Das geht ja aber nur wenn ich mit einem User dieser Gruppe eingeloggt bin, der schon Vollzugriff darauf hat.
Deshalb habe dann meinen SSH Benutzer als Besitzer festgelegt und dann die Rechte mit chmod festgelegt. Dann kann ich mich aber nicht mehr per FTP anmelden, weil dem User ja sein Verzeichnis Fehlt :/ Irgendwie hab ich mir da verzettelt und sehe die Lösung vor lauter schwarzem Terminal Fenster nicht mehr :d


Dann noch eine ganz allgemeine Hosting Frage: Unter welchem Benutzer läuft standardmäßig Apache, MySql usw? Wie sollte man das bezüglich der Sicherheit am besten einrichten?

Besten dank im Voraus!
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Apache, MySQL und andere Dienste haben normalerweise eigene Nutzer oder laufen unter dem Benutzer "nobody". Bei allen verbreiteten Server-Distributionen (Ubuntu-Server, Debian, CentOS, etc.) braucht man sich um die Dienste selbst im Allgemeinen keine Sorgen zu machen, aber man sollte sich mit der Konfiguration vertraut machen, da unter Umständen nicht benötigte Dienste/Module aktiviert sind, die man aus Ressourcen- und Sicherheitsgründen abschalten sollte.

Des Weiteren solltest du dir unseren Einsteiger-Leitfaden: http://www.hardwareluxx.de/communit...ichere-ich-meinen-linux-server-ab-434977.html mal zu Gemüte führen, dürfte für dich sehr interessant sein.


Zu deinem eigentlichen FTP / Berechtigungsproblem:

Von Debian kenne ich es so, dass der Webserver Teil der Gruppe "www-data" ist. Somit müssen Berechtigungen von Verzeichnissen und Dateien auf die Gruppe www-data und mindestens R+X (lesen und ausführen, oktal: 5) gesetzt werden, damit der Webserver darauf zugreifen kann.
Du solltest nun am Besten recherchieren ob ein solches Szenario auch bei CentOS gibt, bzw. welche Systemgruppe entscheident für den Webserver ist.
Anschließend fügst du deine FTP-Benutzer dieser Gruppe hinzu und ändert den Gruppen-Eigentümer auf diese Gruppe ("chown :GRUPPENNAME -R /var/www"). Da deine FTP Nutzer sicherlich auch Schreibzugriff haben sollen, änderst du die Rechte auf: 775 ("chmod 775 /var/www"). Der Eigentümer des Verzeichnisses ist prinzipiell egal und kann daher auf "root" gesetzt werden, um es vor ungewollten Änderungen zu "beschützen".
Mit rekursivem Ändern von Berechtigungen (-R Paramater) solltest du sehr vorsichtig sein, da es in der Webentwicklung durchaus Verzeichnisse und Dateien gibt, die nicht von jedermann gelesen werden dürfen.

Die FTP-Konfiguration ist sonst in Ordnung: Home-Verzeichnis auf /var/www setzen und im Home-Verzeichnis einsperren, damit verhinderst du den Zugriff auf übergeordnete Verzeichnisse.


Ich hoffe ich konnte dir erstmal weiterhelfen, ansonsten frag einfach weiter ;)


mfg
foxxx :wink:
 
danke für deine Antwort. Leider hänge ich immernoch fest. CentOs hat für den apache eine Gruppe apache und einen Benutzer apache.
Ich habe ja einen FTP User und zwei SSH Nutzer. Alle sollen Zugriff auf das Verzeichnis haben und darin arbeiten dürfen. Also habe ich jetzt alle Nutzer in die apache Gruppe.

Dann habe ich mein /var/www/ der Gruppe apache zugeordnet aber jetzt hat niemand mehr die Berechtigung in das Verzeichnis zu schreiben. Ich komme noch per FTP drauf aber kann nichts ändern und meine SSH benutzer auch nicht.
 
Könntest du mal die Ausgabe posten von:

Code:
grep -i apache /etc/group

und

Code:
ls -la /var/www

hier posten ?


:wink:
 
langsam bin ich am durchdrehen :d ich habe vsftp nochmal neu aufgesetzt damit ich mir sicher sein kann das die Konfiguration nicht verballert wurde. Das funktioniert ja perfekt!

Code:
apache:x:48:user1,user2,user3

Code:
total 24
drwxrwxr-x  6 user3 apache 4096 Dec 20 10:16 .
drwxrwxr-x 21 root   root   4096 Dec 20 10:20 ..
drwxr-xr-x  2 user3 apache 4096 Feb 13  2012 cgi-bin
drwxr-xr-x  3 user3 apache 4096 Dec 18 11:21 error
drwxr-xr-x 15 user3 apache 4096 Dec 20 09:27 html
drwxr-xr-x  3 user3 apache 4096 Dec 18 15:11 icons

user3 entspricht dem user der FTP Zugriff haben soll. user1 und user2 sind SSH user. Jetzt sollen ja "einfach" nur noch user1 und user2 die erlaubnis erhalten in dem Verzeichnis Files anzulegen und/oder zu bearbeiten
 
Zuletzt bearbeitet:
Kurze Erklärung für die Ausgabe von "ls -la":

Links die 10 Zeichen bedeuten folgendes:
1. Zeichen = Verzeichnis (d) oder Datei (-)
nächsten 3 Zeichen beschreiben die Eigentümer-Rechte (rwx)
nächsten 3 Zeichen beschreiben die Gruppe-Rechte (rwx)
nletzten 3 Zeichen beschreiben die Jedermann-Rechte (rwx)

Nur wenn r, w bzw. x gesetzt sind, erscheint der Buchstabe, sonst wird ein Minus (-) angezeigt.

Unter Linux/Unix werden Rechte oktal gesetzt, dabei gilt:
4 = lesen (r)
2 = schreiben (w)
1 = ausführen (x)

Die 3 Zahlen beim "chmod" Befehl entsprechen den 3 Gruppen der Rechte: Eigentümer, Gruppe, Jedermann. Eine 7 bedeutet somit lesen+schreiben+ausführen (4+2+1 = 7).

Das Verzeichnis "." ist das aktuelle Verzeichnis, in diesem Fall /var/www. Das Verzeichnis ".." ist eine Ebene höher, somit also "/var".


Somit lässt sich erkennen, dass deine Nutzer in das Verzeichnis "." (/var/www) einen Schreibzugriff (w) haben, aber keine Schreibrechte auf die Unterverzeichnisse.
Dies kannst du dementsprechend mit "chmod 775 {cgi-bin,error,html,icons}" korrigieren.
Sollte es bereits weitere Unterverzeichnisse geben, kannst du ein rekursives chmod (chmod 775 -R) in Erwägung ziehen, aber wie bereits gesagt sollte man damit vorsichtig sein ;)


mfg
foxxx :wink:
 
Zuletzt bearbeitet:
ouh mann das war ja dann doch einfacher als gedacht wenn man sich schon mehr mit linux beschäftigt hätte :-D vielen tausend dank für die ausführliche erklärung! :wink:

hab jetzt noch eine andere Frage:
ich habe einen public key generiert (ssh-rsa) und würde diesen gerne für einen nutzer hinterlegen, damit dieser sich in zukunft damit über SSH anmelden kann.
Wie macht man das denn?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh