nginx 403 errore proibito ospitato nella home home user

Ho installato nginx 1.1.19 su Ubuntu 12.04 sulla mia macchina locale e ho mantenuto il predefinito /etc/nginx/nginx.conf tranne per la modifica della direttiva utente.

/etc/nginx/nginx.conf

  • È un tentativo di hacking? (CENTOS, file di registro NGINX)
  • Impostazione di phpmyadmin, ha ottenuto un errore di syntax MySQL
  • Come bloccare le istruzioni di accesso di Nginx da agenti di utente specifici
  • Nginx - Inoltra HTTP AUTH - Utente?
  • Come get statistiche Postfix di seconda istanza?
  • Quando wherete utilizzare le virgolette nella configuration?
  •  user nginx www-data; worker_processes 4; pid /var/run/nginx.pid; ... 

    Vorrei fare un semplice lavoro statico con la radice web nella mia directory utente (dichiaro che il mio nome utente è 'ubuntu'). Ecco la configuration per il mio sito di test.

    / Etc / nginx / sites-available / test-site

     server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 root /home; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to index.html try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } } 

    Ora, ovviamente, mette tutti i miei file nella radice web in modo da non mettere questo su un vero server, ma questo mi illustra il mio punto. Se creo una pagina web semplice a /home/index.html (non nella mia cartella utente ubuntu), posso accedere alla pagina all'indirizzo http://localhost/

    Questo funziona bene. Ora voglio semplicemente mettere la radice web INSIDE dalla cartella utente. Così in / etc / nginx / sites-available / test-site cambio la directory radice come `root / home / ubuntu ;. Ricrei il simbolo al test site, spostare /home/index.html a /home/ubuntu/index.html e interrompere e avviare il server nginx. Ora ho l'errore 403 Proibito.

    Il mio primo sospetto era che questo era un problema di permissioni. Tuttavia, quando ho eseguito ls -al index.html vedo

     -rw-r--r-- 1 nginx www-data 183 Aug 12 13:13 index.html 

    che mi sembra giusto? Anche eseguire chmod 777 /home/ubuntu/index.html in modo che le autorizzazioni siano

     -rwxrwxrwx 1 nginx www-data 183 Aug 12 13:13 index.html 

    non aiuta. /etc/init.d/nginx configtest non produce alcun errore e sono sicuro che il collegamento in symlink in /etc/

    Così sono stato a questo per poche ore e sto ora chiedendo cosa è così speciale nella mia directory utente che non posso servire nulla all'interno di esso? Oggi Ubuntu cifra le home directory? Potrebbe essere il problema? Ho anche questo problema su un'istanza EC2 Ubuntu 12.04 (non so se le directory utente sono criptate lì)

  • nginx: nessun permesso di bind la port 8090 ma si lega a 80 e 8080
  • Configurazione di nginx da utilizzare con Tomcat e SSL
  • nginx: radici multiple di documento con fastcgi
  • Nginx user / group config
  • Come riscrivere la parte di dominio di Set-Cookie in un proxy inverso di nginx?
  • nginx come proxy e richieste "fuoco e dimenticare"
  • One Solution collect form web for “nginx 403 errore proibito ospitato nella home home user”

    Autorizzazioni predefinite di directory utente predefinite

    Pertanto, sembra che le autorizzazioni predefinite nelle home home di utenti in Ubuntu 12.04 siano di 700. Nginx deve avere l'authorization di lettura i file che devono essere serviti e avere l'authorization di eseguire in ognuna delle directory genitori lungo il path dal root al file servito.

    Puoi dare la tua directory utente queste autorizzazioni eseguendo

     chmod 701 user_home 

    È anche ansible utilizzare 755, che è l'impostazione predefinita di authorization nella directory di casa in molti sisthemes.

    Le directory / file della tua radice web possono appartenere all'utente www-data o all'utente personale regolare finché l'utente / gruppo che nginx esegue come (come definito in nginx.conf) ha l'authorization di READ su tutti i file da submit eseguire l'authorization in tutte le directory di root web.

    Ho appena impostato tutte le directory nella mia radice web per essere posseduto dal mio account utente e avere le autorizzazioni 755 e ho impostato tutti i file da submit dalla radice web per avere permessi 664 in quanto questi erano i valori predefiniti sulla mia macchina.

    Nota sulla conversione dei numbers di authorization in String Rep.

     Ex. drwxr-x--x becomes 751. 

    Ignorare il primo carattere (d per la directory, – per il file, ecc). I restanti 9 caratteri formano un tripletto binario in cui qualsiasi carattere non trattato è un 1 e un trattino è un 0.

     So drwxr-x--x becomes rwxr-x--x becomes 111 101 001 which is converted to a decimal 751 

    Avevo bisogno di un aggiornamento su questo quando avevo a che fare con le autorizzazioni.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.