PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechte richtig vergeben



LuMa
15.02.16, 23:09
Hallo,
ich bin kein blutiger Anfänger im Linux-Bereich, allerdings habe ich das Thema Rechte bis jetzt immer gekonnt umschifft. Ich besitze einen CentOS 7 Root-Server im lokalen Netzwerk. Dort läuft seit neustem (also ganz frisch installiert) Apache mit PHP7 und MariaDB. Nun möchte ich 2 Dinge vollbringen: Eine Laravel-Anwendung und eine statische Website hosten. Dazu habe ich für die beiden Webseiten eine Virtualhosts Konfiguration angelegt.

Das mit der statischen Website klappt schonmal, bis auf ein kleines Problem, aber dazu später mehr. Was mich mehr beschäftigt ist die Installation der Laravel Anwendung. Konkret geht es um die Rechte. Der "apache" Benutzer selbst sollte ja soweit ich weiß möglichst eingeschränkte Rechte haben, also am besten nur lesen. Allerdings benötigt meine Laravel Anwendung auch Schreibrechte für eigene Log- und Sessiondateien in einem Unterordner. Jetzt kommt noch dazu, das ich mich irgendwie verhaspelt habe. Die Ordner in /var/www/html gehören alle dem root Benutzer. Daher muss ich alle Befehle mit sudo ausführen. Das fühlt sich irgendwie nicht richtig an. Wie kriege ich es also hin mit meinem "non-root sudo Benutzer" Dateien unter /var/www/html zu erstellen/bearbeiten/löschen und Befehle auszuführen, allerdings OHNE sudo und ohne meinem "apache" Benutzer in die Quere zu kommen.

MfG und schönen Abend noch,
Lukas :)

fork
15.02.16, 23:33
Hi,

die Besitz- und Eigentumsrechte richten sich nach dem Modus, in dem Du PHP ausführst. Ich gehe mal davon aus, dass Du php per mod_php ausführst(Andere Möglichkeiten wären noch CGI / FastCGI / php_fpm / suPHP wahrscheinlich nicht mehr).

Bei mod_php steht der Benutzer und Gruppe in /etc/httpd/conf/httpd.conf. Das kannst Du herausfinden mit:



grep -E "(User|Group)" /etc/httpd/conf/httpd.conf


Danach kannst Du die Eigentümer in /var/www/html wieder korrigieren(httpduser/group entsprechend ersetzen):



chown -R HTTPDUSER:HTTPDGROUP


Jetzt kannst Du die Vorgabe-Rechte auf sicher setzen:



find /var/www/html -type d -exec chmod 550 {} \; # Auf Verzeichnisse lesen und ausfuehren(=betreten des Verzeichnisses) fuer Benutzer und Gruppe
find /var/www/html -type f -exec chmod 440 {} \; # Auf Dateien lesen fuer Benutzer und Gruppe


Jetzt kannst Du noch Schreibrechte auf einzelne Verzeichnisse setzen, wo dein PHP-Programm reinschreiben möchte:

Siehe:
https://wiki.ubuntuusers.de/Rechte/

LuMa
16.02.16, 17:23
Danke für die Erklärung, hat geholfen :)