Jakie uprawnienia do plików należy ustawić w katalogu głównym?

53

Używam Ubuntu Server 10.10 i zainstalowałem serwer WWW Nginx apt-get install nginx. Tworzy domyślną stronę internetową pod /var/www/nginx-default/tym adresem i ten katalog ma uprawnienia drwxr-xr-x 2 root root.

Gdy uzyskuję dostęp do domyślnej witryny, http://localhost/pojawia się ten komunikat na stronie 403 Forbidden.

Jak ustawić uprawnienia do plików w katalogu głównym www, aby mieć bezpieczny dostęp do stron internetowych? Czy jest coś jeszcze, co muszę zmienić?

Jonas
źródło
UWAGA: cały pełną ścieżkę do ostatecznego folderu musi być dostępny! Ani jednego folderu na środku.
Lucio

Odpowiedzi:

33

Zwykle trzymam się 755(lub rwxr-xr-x) w moim katalogu głównym, ale nie sądzę, że jest to problem, na który napotykasz, ponieważ twój katalog jest już ustawiony. nginxpowinien mieć dostęp do twojego katalogu. Pytanie staje się następnie uprawnieniami (lub istnieniem) pliku, do którego próbujesz uzyskać dostęp. Pliki w twoim katalogu będą musiały być czytelne dla użytkownika nginxdziałającego jako. Zazwyczaj zostawiam te pliki ustawione na 755(takie same jak katalog). W ten sposób możesz zmienić cały katalog sudo chmod -R 755 /var/www/nginx-default/.

Jeśli jednak w katalogu nie ma pliku indeksu, nadal pojawia się ten sam błąd. Plik indeksu jest używany, gdy żądasz katalogu, w którym nie ma włączonych list katalogów. Najpopularniejszym plikiem indeksu jest index.html. To ustawienie domyślne można jednak edytować w konfiguracji, używając czegoś takiego:

location / {
    index index.php;
}

Jeśli chcesz nginxwygenerować listę plików w tym katalogu, po prostu włącz indeksowanie katalogów w następujący sposób:

location  /  {
  autoindex  on;
}
Jack M.
źródło
Nie, mam index.htmlw tym katalogu.
Jonas
Jakie index.htmlmasz zatem uprawnienia ?
Jack M.
Dzięki, plik konfiguracji faktycznie wskazywał, /var/www/a wygenerowany index.htmlzostał umieszczony, /var/www/nginx-default/więc musiałem skopiować ten plik, cp /var/www/nginx-default/index.html /var/www/po czym mogłem odwiedzić witrynę za pomocą mojej przeglądarki internetowej.
Jonas
56

Proponuję zmienić grupę twojego webroota na www-data, użytkownika używanego przez nginx, a także php5-fpm.

Na przykład:

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

gdzie mój-użytkownik jest twoim własnym kontem (co pozwala ci na łatwe umieszczanie plików w twoim katalogu głównym bez sudo).

Peter Smit
źródło
Dzięki, polecenia wykonano bez żadnych problemów, ale wciąż dostaję, 403 Forbiddenkiedy uzyskuję do nich dostęp za pomocą przeglądarki internetowej.
Jonas
@Jonas, proponuję sprawdzić dziennik błędów nginx, aby zobaczyć, na czym polega problem.
Peter Smit,
Dzięki, znalazłem błąd, był w dzienniku błędów. Zobacz mój komentarz do odpowiedzi Jacka.
Jonas
4
Co z nowymi plikami?
mcont
Wykorzystaj @MatteoContrini, chmod 2755 webdirectory/aby były przechowywane z tymi samymi uprawnieniami i prawami
rhand