ubuntuusers.de

php5-fpm Userberechtigung / Gruppe

Status: Ungelöst | Ubuntu-Version: Server 16.04 (Xenial Xerus)
Antworten |

mcdaniels

Anmeldungsdatum:
15. September 2006

Beiträge: 119

Wohnort: Steiermark

Hallo, ich habe Apache 2.4 mit php als php5-fpm laufen.

Für jeden Webauftritt gibt es einen lokalen User bzw. Gruppe, der im jeweiligen php5-fpm pool verwendet wird.

Nun gibt es einen Apache Alias /webmail,(Anm.: Roundcube) der von allen gehosteten Domains aus aufgerufen werden kann. https://www.domain1.com/webmail

Damit Roundcube jedoch in das Verzeichnis /logs schreiben kann, benötigt der jeweilig aufrufende User Schreibrechte auf den Ordner. Nachdem ich nun schlecht allen Usern Schreibrechte geben kann, hab ich das so gelöst:

Alle User kommen in die Gruppe www-data + in jedem php5-fpm-pool wird als group www-data verwendet.

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = www.domain1.com
group = www-data

der www-data Gruppe werden Schreibrechte auf die notwendigen Ordner gegeben:

Rechte Roundcube-Log:
drwxrw----  2 root www-data   4096 Nov 17 14:03 logs

Ist das ein gangbarer Weg, oder sollte man das anders lösen?

Danke!

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Ich würde nicht die Gruppe www-data nutzen, da damit der Prozess wieder auf alles Zugriff hat, worauf auch die Gruppe www-data Zugriff hat. Ich würde daher eine separate Gruppe anlegen, nur für den Zweck des loggens. Ich würde auch nicht die Default-Gruppe ändern. Sonst können ja alle User die Logs von allen anderen Usern mit "sehen".

mcdaniels

(Themenstarter)

Anmeldungsdatum:
15. September 2006

Beiträge: 119

Wohnort: Steiermark

Hallo, da jedoch die Prozesse immer mit dem User angesteuert werden, der im Pool der Website definiert ist, muss ich die die User ja in einer Gruppe zusammenfassen.

Angenommen ich hätte 10 vhosts, somit 10 User (php5fpm), 10 pools.

Jeder User kann .../webmail aufrufen.

Jeder der 10 User muss ins /log von Roundcube schreiben können.

Du würdest also auch die Gruppe in den Pools nicht vereinheitlichen und die User dort rein werfen? Auch nicht, wenns ne Loggingonly-Gruppe wär?

Edit: oder meinst du eine Gruppe "logging" anlegen ohne Gruppenmitglieder und die dann in jedem Pool als Gruppe verwenden?

Danke!

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

mcdaniels schrieb:

da jedoch die Prozesse immer mit dem User angesteuert werden, der im Pool der Website definiert ist, muss ich die die User ja in einer Gruppe zusammenfassen.

Das muss aber IMHO nicht die Default-Gruppe sein. Das würde dann so aussehen:

insgesamt 2880
drwxrwx---  7 root           apache-logs        4096 Nov 17 18:02 .
drwxr-xr-x 25 root           root               4096 Nov 17 18:02 ..
drwxr-x---  2 www-user-1     www-user-1         4096 Nov 17 18:02 logfile1
drwxr-x---  2 www-user-2     www-user-2         4096 Nov 17 18:02 logfile2
drwxr-x---  2 www-user-3     www-user-3         4096 Nov 17 18:02 logfile3

Die gemeinsame Gruppe wäre apache-logs – damit dürfen die User in das Verzeichnis schreiben. Aber nicht jeder User kann jedes Logfile lesen.

mcdaniels

(Themenstarter)

Anmeldungsdatum:
15. September 2006

Beiträge: 119

Wohnort: Steiermark

Hallo

damit dürfen die User in das Verzeichnis schreiben. Aber nicht jeder User kann jedes Logfile lesen.

D.h. die User sind in der Gruppe apache-logs

und du legst für jeden User ein eigenes Logfile-Verzeichnis an und vergibst die Berechtigungen entsprechend?

ABER: Im Falle von Roundcube loggt das ja in /usr/share/roundcube/logs.

D.h. ich hab hier gar nicht die Möglichkeit, für jeden User ein Logverzeichnis zu erstellen. (Das hab ich wohl im Initialpost unklar ausgedrückt).

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

mcdaniels schrieb:

D.h. die User sind in der Gruppe apache-logs

Richtig.

und du legst für jeden User ein eigenes Logfile-Verzeichnis an und vergibst die Berechtigungen entsprechend?

Nein. Die Logfiles liegen alle im gleichen Verzeichnis, haben aber jeweils die Gruppe des Users. Diese ist aber nicht die Gruppe apache-logs.

ABER: Im Falle von Roundcube loggt das ja in /usr/share/roundcube/logs.

Das ist ok. Du kannst das aber auch ändern.

D.h. ich hab hier gar nicht die Möglichkeit, für jeden User ein Logverzeichnis zu erstellen. (Das hab ich wohl im Initialpost unklar ausgedrückt).

Hättest du, brauchst du aber nicht.

Antworten |