Für mich war es etwas anderes, was zu diesem Fehler führte
gleicher Benutzername mit zwei verschiedenen UIDs
Ich habe den Benutzer "Apache" lokal mit UID = 123 und im NIS-Verzeichnis mit demselben Namen ("Apache"), aber unterschiedlicher UID = 456 konfiguriert. Abhängig von der Startreihenfolge und der Serviceabhängigkeit kann ein lokaler Benutzer verwendet werden, bevor ein NIS-Benutzer verfügbar ist. Das bedeutet auch, wenn Sie Benutzernamen anzeigen, ist dies verwirrend, beide werden als "Apache" angezeigt. Nur wenn Sie sich numerische UIDs ansehen (zum Beispiel, wenn Sie dies tun ls -ln
, werden Sie den Unterschied sehen. Beispiel:
[root@mymachine]# ls -l
drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1
drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2
Sehen Sie, dass die UID für Datei2 unterschiedlich ist (456 statt 123):
[root@mymachine]# ls -ln
drwxr-x--- 4 123 48 88 May 31 17:12 file1
drwxr-x--- 4 456 48 88 May 31 17:12 file2
andere Gruppe in der Apache-Konfiguration definiert
Ein weiteres Problem, das ich mit der Nichtübereinstimmung der Benutzer und dem daraus resultierenden Berechtigungsfehler hatte, war, als ich den Zugriff auf Dateien mithilfe der Gruppe "httpd" einschränkte. Dies war die primäre Gruppe von Benutzern "Apache" (die mit id
oder angezeigt wurde getent
). Apache wird als Root gestartet, wechselt dann zum konfigurierten Benutzer und löscht die Berechtigung. Der Benutzer, zu dem es wechselt, wird /etc/httpd/conf/httpd.conf
durch User
Parameter definiert . Hier ist jedoch das Problem - die Gruppe (GID), die der Prozess ausführen wird, ist NICHT die primäre Gruppe dieses Benutzers. Die Gruppe wird in derselben Konfigurationsdatei nach Group
Parametern definiert.
In meinem Fall war es also ( /etc/httpd/conf/httpd.conf ):
User apache
Group apache
Und dem Verzeichnis wurde folgender Zugriff gewährt:
drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir
Weil httpd (GID = 444) die primäre Gruppe dieses Benutzers war:
[root@somemachine]# id apache
uid=48(apache) gid=444(httpd) groups=444(httpd)
Es führte einige Zeit zum Debuggen, bis mir klar wurde, dass Group
in der Konfigurationsdatei "Apache" und nicht "httpd" war.
Fehler aus / var / log / httpd / error_log :
[Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted
[Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted
[Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt
Ich hoffe das hilft.