Existe uma permissão de arquivo do Linux que permite que o aplicativo leia um arquivo, mas não um usuário?

4

Eu preciso de /var/www/config/config.json para ser lido pelo meu aplicativo, mas não pelos usuários que chamam myapp.com/config/config.json . Como eu faria isso?

    
por James Vince 02.02.2013 / 15:16

2 respostas

3

Existem dois métodos principais. Uma delas é executar seu aplicativo como um usuário diferente do servidor da Web, alterar as permissões nos arquivos para que eles possam ser lidos apenas pelo usuário que está executando o aplicativo e, em seguida, fazer proxy usando o servidor da Web. Você pode usar nginx como proxy, por exemplo:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass        http://localhost:1234;
        proxy_set_header  X-Real-IP  $remote_addr;
    }
}

Se isso não for bom para você, configure uma regra como essa para que seu servidor da web os bloqueie diretamente:

location ~ /config\.json$ {
    deny all;
}

Isso também pode ser feito com o Apache usando algo assim em seu .htaccess :

<Files ~ "config\.json$">
    Order allow,deny
    Deny from all
</Files>
    
por 02.02.2013 / 15:36
1

Se você usar o SELinux, poderá definir o contexto para impedir que httpd e seus subprocessos acessem o arquivo. Eu acidentalmente faço isso comigo mesmo o tempo todo .

    
por 02.02.2013 / 16:54