Подтвердить что ты не робот

Разрешение Apache 13 запрещено в домашнем каталоге пользователя

Мой сайт дружбы работал нормально, пока он не переместил корень документа с /var/www/xxx до /home/user/xxx.

Apache дает 13 разрешенных сообщений об ошибках при попытке доступа к сайту через веб-браузер.

Сайт настроен как виртуальный каталог. Все конфигурации Apache не изменились (кроме изменения каталога).

Мы попытались chmod 777 /home/user/xxx, chown apache/home/user/xxx. Но они не сработали.

Есть ли какой-либо набор функций безопасности в домашних каталогах пользователей? ОС сервера - CentOS (Godaddy VPS).

Любая помощь приветствуется!

Спасибо!

4b9b3361

Ответ 1

Оказывается... нам пришлось также chmod 755 родительский каталог, пользователь, в дополнение к xxx.

Ответ 2

im, используя CentOS 5.5, и для меня это было SElinux, и я забыл это проверить. вы можете временно отключить его, выполнив root

echo 0 > /selinux/enforce

надеюсь, что это поможет кому-то

Ответ 3

selinux является причиной этой проблемы.....

TException: Ошибка: TSocket: Не удалось подключиться к localhost: 9160 (Permission denied [13]) Чтобы решить эту проблему, вам нужно изменить логическое значение SELinux (которое будет автоматически сохраняться при перезагрузке). Вы также можете перезапустить httpd для reset прокси-работника, хотя это не требуется строго.

setsebool -P httpd_can_network_connect 1

или

(13) Разрешение отклонено

Ошибка 13 указывает на проблему с разрешениями файловой системы. То есть Apache был лишен доступа к файлу или каталогу из-за неправильных разрешений. В общем, это не означает проблемы в файлах конфигурации Apache.

Чтобы обслуживать файлы, Apache должен иметь надлежащее разрешение, предоставляемое операционной системой для доступа к этим файлам. В частности, пользователь или группа, указанные в httpd.conf, должны иметь возможность читать все файлы, которые будут обслуживаться, и искать каталог, содержащий эти файлы, вместе со всеми родительскими каталогами до корня файловой системы.

Типичные разрешения для unix-подобной системы для ресурсов, не принадлежащих пользователю или группе, указанным в httpd.conf, будут 644 -rw-r-r-- для обычных файлов и 755 drwxr-xrx для каталогов или CGI-скриптов, Вам также может потребоваться проверить расширенные разрешения (например, разрешения SELinux) на операционных системах, которые их поддерживают.

Пример

Допустим, что вы получили ошибку с разрешением отказа при доступе к файлу /usr/local/apache 2/htdocs/foo/bar.html в unix-подобной системе.

Сначала проверьте существующие разрешения на файл:

cd/usr/local/apache2/htdocs/foo ls -l bar.htm

При необходимости исправьте их:

chmod 644 bar.html

Затем выполните то же самое для каталога и каждого родительского каталога (/usr/local/apache2/htdocs/foo,/usr/local/apache2/htdocs,/usr/local/apache2,/usr/local,/usr)

ls -la chmod + x. cd..

повторить до корня

В некоторых системах имя утилиты можно использовать для поиска проблем с разрешениями путем перечисления разрешений по каждому компоненту пути:

namei -m/usr/local/apache2/htdocs/foo/bar.html

Если все стандартные разрешения правильные, и вы по-прежнему получаете ошибку с разрешением отказа, вы должны проверить наличие расширенных разрешений. Например, вы можете использовать команду setenforce 0, чтобы отключить SELinux и проверить, не исчезла ли проблема. Если это так, ls -alZ можно использовать для просмотра разрешения SELinux и chcon для их исправления.

В редких случаях это может быть вызвано другими проблемами, такими как проблема с правами доступа к файлам в другом месте вашего файла apache2.conf. Например, директива WSGIScriptAlias ​​не сопоставляется с фактическим файлом. Сообщение об ошибке может быть неточным о том, какой файл не читается.

НЕ устанавливайте файлы или каталоги в режим 777, даже "просто проверить", даже если "это просто тестовый сервер". Цель тестового сервера - это правильно разобраться в безопасной среде, а не избегать делать это неправильно. Все, что вам скажет, это проблема с файлами, которые на самом деле существуют.

Ответ 4

Не уверен, что вы исправили его, но в своем httpd.conf

Проверьте настройки пользователя/группы. Обычно он будет установлен на

Пользователь www Группа www

Если это изменить его имя/группу

Пользователь Greg персонал группы

Ответ 5

Ошибка Apache объяснит, почему вы получили отказ в доступе. Кроме того, serverfault.com является лучшим форумом для такого вопроса.

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

sudo -s
su - nobody
cd /
cd /home
cd user
cd xxx
cat index.html

Обратите внимание, если одна из них дает вам ошибку с разрешением отказа.

Ответ 6

Не можете ли вы установить Loglevel в httpd.conf для отладки? (Я использую FreeBSD)

ee usr/local/etc/apache22/httpd.conf

изменить loglevel:

'LogLevel: контроль количества сообщений, зарегистрированных в файле error_log. Возможные значения: debug, info, notice, warn, error, crit, предупреждение, выступить. '

Попробуйте перейти на отладку и повторную проверку журнала ошибок после этого.

Ответ 7

Может быть SELinux. Проверить соответствующий файл журнала (/var/log/messages?) Было некоторое время, так как я использовал производную RedHat), чтобы увидеть, блокирует ли этот доступ.

Ответ 8

Ошибка:

[error] [client 127.0.0.1] (13)Permission denied: Could not open password file: /home/XXX/svn/svn_password

информация:

##SELinux Security Context File Labels
#httpd_sys_content_t  The type used by regular static web pages with .html and .htm extensions.
#httpd_sys_script_ro_t  Required for CGI scripts to read files and directories.
#httpd_sys_script_ra_t  Same as the httpd_sys_script_ro_t type but also allows appending data to files by the CGI script.
#httpd_sys_script_rw_t  Files with this type may be changed by a CGI script in any way, including deletion.
#httpd_sys_script_exec_t  The type required for the execution of CGI scripts 

Решение:

[[email protected]]# perror 13
OS error code  13:  Permission denied
[[email protected]]# chown apache.apache /home/XXX/svn/ -R
[[email protected]]# semanage fcontext -a -t httpd_sys_script_rw_t  "/home/XXX/svn(/.*)?"
[[email protected]]# restorecon -R -v /home/XXX/svn/
[[email protected]]# restorecon reset /home/XXX/svn/ context
[[email protected]]# ls -dZ /home/XXX/svn/
drwxr-xr-x. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 /home/XXX/svn/
[[email protected]]# ls -dZ /home/XXX/svn/svn_password 
-rwxr-xr-x. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 /home/XXX/svn/svn_password
[[email protected]]# 

Ответ 9

Вы изменили разрешения для отдельных файлов, а также только для каталога?

chmod -R 777 /home/user/xxx