Не могу получить доступ к каталогу, членом которого я являюсь

На моем веб-сервере у меня есть каталог «www», который имеет разрешение drwxrwxr-- и user: group root:www-data, чтобы Apache мог получить к нему доступ.

Теперь я добавил свой аккаунт в группу www-data с

sudo usermod -g www-data myuser

, и если я сделаю groups, то среди них будет www-data, но когда я пытаюсь просто войти в него, получить «Отказано в доступе».

Если я изменю пользователя на «myuser» или назначу группу другой группой, членом которой я являюсь, я могу войти.

Я что-то упустил?

9
задан 23 November 2017 в 14:58

2 ответа

Для вашего процесса список групп установлен во время входа в систему, поэтому вам нужно будет снова войти в систему, чтобы изменения вступили в силу.

Я бы также предложил добавить www-data в качестве дополнительной группы, а не основной группы (которая настроена на группу, членом которой вы являетесь. Вы должны быть в состоянии сделать это с помощью следующих команд:

]
# Reset to your original primary group
sudo usermod -g myuser myuser
# Add an extra supplementary group
sudo usermod --append -G www-data group

Если вы хотите, чтобы файлы, которые вы создаете, были доступны для чтения другим членам группы www-data, настройте ваш umask соответствующим образом:

umask 002

Поскольку ваша основная группа - это личная группа, это не должно влиять на безопасность создаваемых вами файлов.

Также стоит установить бит setgid для каталогов, в которых вы будете создавать файлы: это приведет к тому, что файлы будут наследовать владение группой родительского элемента каталог:

chmod g+s www/
0
ответ дан 23 November 2017 в 14:58

Для меня это была другая вещь, приводящая к этой ошибке

то же имя пользователя с двумя различными UIDs

Мне настроили пользователя "апач" локально с UID=123 и в каталоге NIS с тем же именем ("апачский") но другой UID=456. В зависимости от порядка запуска и сервисной зависимости, мог бы использоваться локальный пользователь, прежде чем пользователь NIS avaiable. Это также означает при отображении имен пользователей это будет сбивать с толку, оба появятся как "апач". Только, когда Вы смотрите на числовой UIDs (например, путем выполнения 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". Это было основной группой пользователя "апач" (который был отображен с помощью id или getent) Apache запускается как корень, затем переключается на настроенного пользователя и отбрасывает разрешение. Пользователь, на которого это переключается, определяется в /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 в файле конфигурации было "апачским" не "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

Я надеюсь, что это помогает.

0
ответ дан 23 November 2019 в 04:56

Другие вопросы по тегам:

Похожие вопросы: