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ć?


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;
}

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).


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.