Для меня это было другое, что привело к этой ошибке
одно и то же имя пользователя с двумя разными UID
У меня есть пользователь "apache", настроенный локально с UID = 123 и в каталоге NIS с тем же именем ("apache"), но с другим UID = 456. В зависимости от порядка запуска и зависимости службы, локальный пользователь может быть использован до того, как пользователь NIS станет доступным. Это также означает, что при отображении имен пользователей это будет сбивать с толку, оба будут отображаться как «apache». Только когда вы посмотрите на числовые идентификаторы UID (например, выполнив, ls -ln
вы увидите разницу. Пример:
[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
посмотрите, что UID отличается для file2 (456 вместо 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
другая группа определена в конфиге Apache
Другая проблема, возникшая у меня из-за несоответствия пользователей и полученной ошибки разрешения, заключалась в том, что я ограничивал доступ к файлам с помощью группы «httpd». Это была основная группа пользователей «apache» (которая отображалась с помощью id
или getent
). Apache запускается от имени пользователя root, затем переключается на настроенного пользователя и удаляет разрешение. Пользователь переключается в определяется с /etc/httpd/conf/httpd.conf
помощью User
параметра. Однако проблема в том, что группа (GID), в которой будет выполняться процесс, НЕ является основной группой этого пользователя. Группа определяется в том же файле конфигурации Group
параметром.
Так в моем случае это было ( /etc/httpd/conf/httpd.conf ):
User apache
Group apache
И каталог был предоставлен доступ, как это:
drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir
Поскольку httpd (GID = 444) была основной группой этого пользователя:
[root@somemachine]# id apache
uid=48(apache) gid=444(httpd) groups=444(httpd)
Это привело к некоторому времени, потраченному на отладку, пока я не понял, что Group
в конфигурационном файле есть «apache», а не «httpd».
Ошибка из / 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
Надеюсь, это поможет.