nginx 403 Erro Proibido hospedagem no Diretório Inicial do Usuário

6

Instalei o nginx 1.1.19 no Ubuntu 12.04 na minha máquina local e mantive o padrão /etc/nginx/nginx.conf , exceto para alterar a diretiva do usuário.

/etc/nginx/nginx.conf

user nginx www-data;
worker_processes 4;
pid /var/run/nginx.pid;
...

Eu quero fazer um site simples e estático funcionar com a raiz da web no meu diretório de usuários (vamos dizer que meu nome de usuário é 'ubuntu'). Aqui está a configuração para o meu site de teste.

/ etc / nginx / sites-disponíveis / site de teste

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
    }

}

Agora, obviamente, coloca todos os meus arquivos na raiz da web, então eu não colocaria isso em um servidor real, mas isso ilustra o meu ponto. Se eu criar uma página da Web simples em /home/index.html (não dentro da minha pasta de usuário do ubuntu), posso acessar a página em http://localhost/

Isso funciona muito bem. Agora eu quero simplesmente colocar a raiz da web INSIDE pela pasta do usuário. Então, em / etc / nginx / sites-available / test-site eu mudo a diretiva root para ser 'root / home / ubuntu ;. Eu recrio o symlink para test-site, movo /home/index.html para /home/ubuntu/index.html e paro e inicio o servidor nginx. Agora eu recebo o erro 403 Proibido.

Minha primeira suspeita foi de que esse era um problema de permissão. No entanto, quando executo ls -al index.html , vejo

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

qual parece certo para mim? Mesmo executando o chmod 777 /home/ubuntu/index.html para que as permissões sejam

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

não ajuda. /etc/init.d/nginx configtest também não produz erros e tenho certeza que o symlink em /etc/

Então, eu estou nisso há algumas horas e agora estou me perguntando o que há de tão especial no meu diretório de usuários que eu não posso servir nada dentro dele? O Ubuntu criptografa diretórios pessoais nos dias de hoje? Esse poderia ser o problema? Eu também tenho esse problema em uma instância do EC2 Ubuntu 12.04 (não sei se os diretórios do usuário estão criptografados lá)

    
por dgh 12.08.2012 / 23:58

1 resposta

12

Permissões de diretório inicial do usuário padrão

Portanto, parece que as permissões padrão nos diretórios home do usuário no Ubuntu 12.04 é 700. O Nginx precisa ter permissão de leitura dos arquivos que devem ser atendidos E ter permissão de execução em cada um dos diretórios pai ao longo do caminho da raiz até o arquivos veiculados.

Você pode dar ao seu diretório de usuários essas permissões executando

chmod 701 user_home

Você também pode usar 755, que é a configuração de permissão padrão no diretório inicial em muitos sistemas.

Os diretórios / arquivos em sua raiz web podem pertencer ao usuário www-data ou a seu usuário pessoal regular desde que o usuário / grupo que nginx execute como (como definido em nginx.conf) tenha permissão READ em todos os arquivos para ser servido e executar a permissão em todos os diretórios raiz da web.

Acabei de definir todos os diretórios na minha raiz da web para serem de propriedade da minha conta de usuário e ter permissões 755 e configurei todos os arquivos a serem fornecidos da raiz da web para ter permissões 664, já que esses eram os padrões em minha máquina.

Nota sobre a conversão de números de permissão para o repositório de cadeias.

Ex. drwxr-x--x becomes 751.

Ignore o primeiro caractere (d para diretório, - para arquivo, etc). Os 9 caracteres restantes formam um trio binário em que qualquer caractere sem traço é 1 e um traço é 0.

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

Eu precisava de uma atualização sobre isso quando estava lidando com permissões.

    
por 12.08.2012 / 23:58