Я только что установил centos и виртуальный мин на VPS (VPS установлен на Proxmox). Я думал, что все правильно настроил, пока не попытаюсь получить доступ к первому загруженному мной сайту. Это дает мне 403 Forbidden. У вас нет разрешения на доступ к этому серверу.
error_log выглядит следующим образом:
[Sun Sep 20 13:24:20.963516 2015] [mpm_prefork:notice] [pid 5042] AH00170: caught SIGWINCH, shutting down gracefully
[Sun Sep 20 13:24:22.079077 2015] [core:notice] [pid 1178] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Sun Sep 20 13:24:22.080101 2015] [suexec:notice] [pid 1178] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Sep 20 13:24:22.110637 2015] [auth_digest:notice] [pid 1178] AH01757: generating secret for digest authentication ...
[Sun Sep 20 13:24:22.111244 2015] [lbmethod_heartbeat:notice] [pid 1178] AH02282: No slotmem from mod_heartmonitor
Я попытался передать файл нужному пользователю, но ничего не изменилось. На данный момент я понятия не имею, как начать искать.
Я попытался
# restorecon -Rv /home/mysite/public_html/
как уже упоминалось, но это ничего не изменит
# grep avc /var/log/audit/audit.log
последняя строка приводит к:
type=AVC msg=audit(1442837687.255:16918): avc: denied { signal } for pid=22714 comm="httpd" scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:system_r:httpd_suexec_t:s0 tclass=process
и
# tail -20 /var/log/audit/audit.log
type=CRED_REFR msg=audit(1442840401.448:581): pid=4324 uid=0 auid=0 ses=17 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=USER_START msg=audit(1442840401.449:582): pid=4325 uid=0 auid=41 ses=15 msg='op=PAM:session_open grantors=pam_loginuid,pam_keyinit,pam_limits,pam_systemd acct="mailman" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=CRED_REFR msg=audit(1442840401.449:583): pid=4325 uid=0 auid=41 ses=15 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="mailman" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=CRED_DISP msg=audit(1442840401.586:584): pid=4325 uid=0 auid=41 ses=15 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="mailman" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=USER_END msg=audit(1442840401.589:585): pid=4325 uid=0 auid=41 ses=15 msg='op=PAM:session_close grantors=pam_loginuid,pam_keyinit,pam_limits,pam_systemd acct="mailman" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=USER_AUTH msg=audit(1442840401.871:586): pid=4347 uid=0 auid=0 ses=16 msg='op=PAM:authentication grantors=pam_rootok acct="postgres" exe="/usr/bin/su" hostname=? addr=? terminal=? res=success'
type=USER_ACCT msg=audit(1442840401.871:587): pid=4347 uid=0 auid=0 ses=16 msg='op=PAM:accounting grantors=pam_succeed_if acct="postgres" exe="/usr/bin/su" hostname=? addr=? terminal=? res=success'
type=CRED_ACQ msg=audit(1442840401.872:588): pid=4347 uid=0 auid=0 ses=16 msg='op=PAM:setcred grantors=pam_rootok acct="postgres" exe="/usr/bin/su" hostname=? addr=? terminal=? res=success'
type=USER_START msg=audit(1442840401.873:589): pid=4347 uid=0 auid=0 ses=16 msg='op=PAM:session_open grantors=pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_xauth acct="postgres" exe="/usr/bin/su" hostname=? addr=? terminal=? res=success'
type=USER_END msg=audit(1442840401.878:590): pid=4347 uid=0 auid=0 ses=16 msg='op=PAM:session_close grantors=pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_xauth acct="postgres" exe="/usr/bin/su" hostname=? addr=? terminal=? res=success'
type=CRED_DISP msg=audit(1442840401.878:591): pid=4347 uid=0 auid=0 ses=16 msg='op=PAM:setcred grantors=pam_rootok acct="postgres" exe="/usr/bin/su" hostname=? addr=? terminal=? res=success'
type=CRED_DISP msg=audit(1442840401.971:592): pid=4326 uid=0 auid=0 ses=16 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=USER_END msg=audit(1442840401.972:593): pid=4326 uid=0 auid=0 ses=16 msg='op=PAM:session_close grantors=pam_loginuid,pam_keyinit,pam_limits,pam_systemd acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=USER_ACCT msg=audit(1442840461.975:594): pid=4357 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:accounting grantors=pam_access,pam_unix,pam_localuser acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=CRED_ACQ msg=audit(1442840461.975:595): pid=4357 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=LOGIN msg=audit(1442840461.975:596): pid=4357 uid=0 old-auid=4294967295 auid=0 old-ses=4294967295 ses=18 res=1
type=USER_START msg=audit(1442840461.978:597): pid=4357 uid=0 auid=0 ses=18 msg='op=PAM:session_open grantors=pam_loginuid,pam_keyinit,pam_limits,pam_systemd acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=CRED_REFR msg=audit(1442840461.978:598): pid=4357 uid=0 auid=0 ses=18 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=CRED_DISP msg=audit(1442840462.084:599): pid=4357 uid=0 auid=0 ses=18 msg='op=PAM:setcred grantors=pam_env,pam_unix acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
type=USER_END msg=audit(1442840462.085:600): pid=4357 uid=0 auid=0 ses=18 msg='op=PAM:session_close grantors=pam_loginuid,pam_keyinit,pam_limits,pam_systemd acct="root" exe="/usr/sbin/crond" hostname=? addr=? terminal=cron res=success'
Решение, прошу прощения, было довольно простым:
chmod -R 755 / главная / сайт / public_html /
вместо того
chmod -R 755 / главная / сайт / public_html
Проверьте, нет ли отказов SELinux в /var/log/audit.log, вы можете обнаружить, что ваш недавно загруженный веб-сайт не имеет правильно помеченных контекстов файлов, позволяющих процессу httpd читать.
Если вы не уверены, вы можете опубликовать последние записи, показанные с помощью команды:
grep avc /var/log/audit/audit.log
Ты мог бежать restorecon -Rv /path/to/webroot
, он может быть правильно помечен.
Кроме того, apache должен иметь как минимум доступ для чтения к файлам и каталогам. Это потребует от вас права собственности как пользователя: apache и разрешений для файлов / каталогов как 640/750, или, если вы настроены на пользователя, владеющего этими файлами, вам потребуется 644/755 для файлов и каталогов соответственно.