Ошибка 403 запрещенного доступа на статическом файловом сервере Lighttpd

Ошибка 403 запрещенного доступа на статическом файловом сервере Lighttpd

Я установил lighttpd на Debian Jessie для обслуживания статических файлов, у меня есть USB-накопитель, смонтированный в /media/storage, с /media/storage/www в качестве корневого каталога документов, а мой lighttpd.conf выглядит следующим образом:

server.modules = (
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_redirect",
#       "mod_rewrite",
)

server.document-root        = "/media/storage/www/"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80


index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

Я хочу иметь возможность редактировать веб-сайт под своим обычным пользователем "jurre". Поэтому я сделал "sudo chown jurre:www-data /media/storage/www" и "sudo chmod 740 /media/storage/www" (чтобы я мог читать, писать и выполнять файлы, но веб-сервер может только читать). Конечно, я вышел из системы и снова вошел в нее, а затем перезапустил lighttpd после этого. Я добавил простой index.html с "Hello World!", чтобы проверить настройку, но я продолжаю получать ошибку 403 denied при переходе на

ls -l в /media/storage/www :

total 8
-rw-r--r-- 1 jurre www-data 58 May 16 16:43 index.html

Я также проверил журнал ошибок lighttpd, но он показывает только то, что веб-сервер был выключен и запущен снова, никаких ошибок в журнале нет.

решение1

Вы не можете получить доступ к своей wwwпапке, так как www-dataу пользователя есть только 4 права (пользователь:группа jurre:www-dataи права 740), что означает отсутствие права на выполнение для wwwпапки, только право на чтение (чтение имени папки и атрибутов).

Вам нужно выполнение справа от папки, потому что выполнение папки означает ее открытие (для просмотра списка файлов или входа в нее). Вы можете сделать это с вашим собственным пользователем jurre(право 7), но www-dataне имеет установленного бита выполнения.

Измените права на эту папку на 750 и повторите попытку.

решение2

Еще одной частой проблемой является активный SELinux на машине.

Даже при наличии правильных прав доступа к дереву каталогов вы все равно получите ошибку 403, если каталог не зарегистрирован в SELinux.

chcon -R -h -t httpd_sys_content_t /absolute/path

исправлю это.

решение3

Суперпеликан,

В дополнение к комментарию выше. Может стоит попробовать "sudo chown -R www-data:www-data * " или"sudo chown -R www-data:www-data /media/storage/www/* " В этой папке или вложенных папках изнутри/медиа/хранение/www Таким образом, владельцем папок и файлов внутри него будет веб-сервер, а не вы как пользователь.

Что касается chmod.. Также попробуйте что-то вроде"sudo chmod -R 755 /media/storage/www/* " Худший случай "chmod -R 775"Существуют различные уровни безопасности файлов между веб-сервером и самой физической ОС. chown/chmod больше на уровне ОС. Также повлияет на получение файлов и веб-страниц на сервере.

Надеюсь, это немного поможет.. Ура..

Связанный контент