Dla mnie było to coś innego, co skutkowało tym błędem
ta sama nazwa użytkownika z dwoma różnymi identyfikatorami UID
Mam użytkownika „apache” skonfigurowanego lokalnie z UID = 123 oraz w katalogu NIS o tej samej nazwie („apache”), ale innym UID = 456. W zależności od kolejności uruchamiania i zależności od usługi, użytkownik lokalny może być używany, zanim użytkownik NIS będzie dostępny. Oznacza to również, że kiedy wyświetlasz nazwy użytkowników, będzie to mylące, oba pojawią się jako „apache”. Tylko gdy spojrzysz na numeryczne identyfikatory UID (na przykład ls -ln
zobaczysz różnicę. Przykład:
[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
zobacz, że identyfikator UID jest inny dla pliku 2 (456 zamiast 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
inna grupa zdefiniowana w konfiguracji Apache
Innym problemem, który miałem z niedopasowaniem użytkownika i wynikającym z niego błędem uprawnień, było ograniczenie dostępu do plików za pomocą grupy „httpd”. To była podstawowa grupa użytkowników „Apache” (która była wyświetlana przy użyciu id
lub getent
). Apache uruchamia się jako root, następnie przełącza się na skonfigurowanego użytkownika i upuszcza uprawnienia. Użytkownik przełącza się definiuje się /etc/httpd/conf/httpd.conf
przez User
parametr. Oto jednak problem - grupa (GID), którą proces będzie działał, NIE jest podstawową grupą tego użytkownika. Grupa jest zdefiniowana w tym samym pliku konfiguracyjnym za pomocą Group
parametru.
Tak więc w moim przypadku było to ( /etc/httpd/conf/httpd.conf ):
User apache
Group apache
A katalogowi przyznano dostęp w następujący sposób:
drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir
Ponieważ httpd (GID = 444) był podstawową grupą tego użytkownika:
[root@somemachine]# id apache
uid=48(apache) gid=444(httpd) groups=444(httpd)
Spowodowało to trochę czasu debugowania, dopóki nie zdałem sobie sprawy, że Group
w pliku konfiguracyjnym jest „apache”, a nie „httpd”.
Błąd z / 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
Mam nadzieję, że to pomoże.