Какие права доступа к файлам я должен установить для веб-корня?

53

Я использую Ubuntu Server 10.10 и установил веб-сервер Nginx с apt-get install nginx. Он создает веб-страницу по умолчанию, /var/www/nginx-default/и этот каталог имеет разрешения drwxr-xr-x 2 root root.

Когда я захожу на сайт по умолчанию, http://localhost/я получаю это сообщение на странице 403 Forbidden.

Как мне установить права доступа к файлам в корне www, чтобы обеспечить безопасный доступ к веб-страницам? Или есть что-то еще, что я должен изменить?

Jonas
источник
Примечание: весь полный путь к вашей последней папке должен быть доступен! Ни одна папка посередине.
Лусио

Ответы:

33

Я обычно придерживаюсь 755(или rwxr-xr-x) в своем веб-корне, но я не думаю, что это проблема, с которой вы сталкиваетесь, так как ваш каталог уже настроен на это. nginxдолжен иметь доступ к вашему каталогу. Тогда возникает вопрос о правах доступа (или наличии) файла, к которому вы пытаетесь получить доступ. Файлы в вашем каталоге должны быть доступны для чтения пользователю nginx, работающему как. Я обычно оставляю эти файлы равными 755(так же, как каталог). Вы можете изменить весь каталог, выполнив sudo chmod -R 755 /var/www/nginx-default/.

Однако если в каталоге нет индексного файла, вы все равно получите ту же ошибку. Индексный файл используется, когда вы запрашиваете каталог, в котором не включены списки каталогов. Наиболее распространенным индексным файлом является index.html. Это значение по умолчанию может быть отредактировано в вашей конфигурации, однако, используя что-то вроде:

location / {
    index index.php;
}

Если вы хотите nginxсоздать список файлов в этом каталоге для вас, просто включите индексирование каталога , например, так:

location  /  {
  autoindex  on;
}
Джек М.
источник
Нет, у меня есть index.htmlв этом каталоге.
Джонас
Какие разрешения у вас index.htmlесть?
Джек М.
Спасибо, файл конфигации фактически указал, /var/www/и сгенерированный файл index.htmlбыл помещен в него, /var/www/nginx-default/поэтому мне пришлось скопировать этот файл, cp /var/www/nginx-default/index.html /var/www/после чего я смог посетить сайт с помощью моего веб-браузера.
Джонас
56

Я бы предложил изменить группу вашего webroot www-dataна пользователя, используемого nginx, а также php5-fpm.

Например:

sudo chown -R "$USER":www-data /webdirectory
sudo chmod -R 0755 /webdirectory

где my-user - это ваша собственная учетная запись (которая позволяет легко помещать файлы в ваш корень без sudo).

Питер Смит
источник
Спасибо, команды выполняются без проблем, но я все равно получаю 403 Forbiddenпри доступе к нему через веб-браузер.
Джонас
@Jonas, я бы посоветовал проверить твой журнал ошибок nginx, чтобы увидеть, в чем проблема.
Питер Смит
Спасибо, я нашел ошибку, она была в журнале ошибок. Смотрите мой комментарий к ответу Джека.
Джонас
4
А как насчет новых файлов?
mcont
@MatteoContrini использование chmod 2755 webdirectory/поэтому они сохраняются с теми же правами и правами
rhand