Está dando uma boa ideia a todas as permissões para www-data group?

4

Eu constantemente tenho problemas com a leitura & escrever & executar permissões pelo Apache / me. Existe um usuário "konrad" (sou eu) no grupo "konrad", e existe um usuário "www-data" no grupo "www-data" usado pelo Apache. Quando eu ("konrad") cria um diretório, o Apache não tem direitos para gravar nesta pasta, o que causa problemas.

Então agora eu tenho a seguinte "idéia": eu adicionarei a mim mesmo (usuário "konrad") ao grupo "www-data" (onde também o usuário do Apache pertence) e então faço todos os meus projetos www, para que eles pertencerá ao usuário "konrad" mas grupo: "www-data". E vou chmod os projetos para que este grupo tenha todas as permissões para arquivos e diretórios (acho que seria 770).

Então eu mudarei meu grupo primário de "konrad" para "www-data", então toda vez que eu criar um novo diretório / arquivo, o Apache também terá acesso total a ele.

A pergunta é: esta é uma boa ideia? Eu não tenho uma ótima experiência com permissões ou mesmo com o próprio Unix. Então talvez eu esteja perdendo alguma coisa. Mas parece razoável para mim.

    
por konrad_firm 10.03.2016 / 13:57

3 respostas

2

O Apache é executado como um usuário não privilegiado, conhecido como www-data nas distribuições Debian, por uma razão muito boa: segurança.

Ela é considerada uma boa prática de segurança ao lidar com daemons desistindo dos direitos de privilégio, evitando ao máximo criar arquivos de configuração ou arquivos de dados com a propriedade do usuário não privilegiado que executa o daemon - assim, se o O usuário do Apache está comprometido, os invasores terão muito mais dificuldade para mexer nas coisas ou desfigurar um site.

Como possível, recomendo criar sites com usuários diferentes e conceder direitos de leitura somente ao grupo www-data; e ter apenas acesso de escrita a www-data nos diretórios que realmente precisam deles. No entanto, mesmo isso pode ser evitado usando o mod-ruid2.

mod-ruid2 permite realmente rodar cada site / vhost com seu dono, e lidar com o modelo de segurança das páginas é muito mais fácil. Elimina a necessidade de criar diretórios graváveis do mundo. Ele também garante que, em caso de comprometimento de um vhost, o invasor não poderá instalar malware nos outros vhosts.

mod-ruid2 também é recomendado para pessoas com um modelo de hospedagem, e nós o usamos aqui para rodar algumas centenas de sites, com bastante sucesso.

Infelizmente, a documentação sobre mod-ruid2 é um pouco escassa, e eu tive que escrever um post mais elaborado para descrevê-la. -access-file-while-is-has-permission "> aqui no Unix e no Linux .

    
por 10.03.2016 / 14:46
2

Acho que você errou o apache configurado. Eu realmente teria meus projetos e arquivos com konrad de permissões, para que meu código fique seguro em caso de vulnerabilidade em algum script " CGI ". Seu servidor web deve estar bem lendo seus arquivos (se eles forem legíveis). Você precisa do superusuário apenas para configurar o apache para ler um diretório de sua propriedade ou para criar / alterar o proprietário de um diretório servido pelo apache.

Você precisa eventualmente de um ou dois diretórios graváveis pelo servidor web / www-data , mas esse é outro problema.

    
por 10.03.2016 / 14:30
1

Eu aprendi que você deve sempre usar usuários separados para o Webserver. Foi isso que aprendi com meu professor - Por motivos de segurança, você deve sempre usar usuários diferentes para coisas diferentes. BTW, ich chown www-data: www-data é digitado em segundos: P

Mas quais arquivos você está criando como "konrad" e por que o www-data tem acesso a ele? Eu corro 2 webserver e quando eu estou criando alguns arquivos que são destinados a www-data, eu su - www-data e depois criá-los.

Portanto, é uma situação muito atípica que você tem aqui: P

    
por 10.03.2016 / 14:13