Maneira segura de permitir que os usuários façam chgrp para www-data

1

Eu tenho um pequeno servidor usado por alguns amigos para hospedar sites pessoais. Ocasionalmente, eles precisam criar uma pasta para uploads que podem ser gravados pelo servidor da Web (www-data). Existe uma maneira segura de permitir que um usuário regular (não em sudoers) defina um grupo específico do qual não é membro?

Para mim, isso parece ser uma opção perigosa para permitir, mas que eu posso ter que permitir. Então, estou interessado em formas seguras de fazer isso. Escrevendo meu próprio script & permitir que os usuários façam o sudo é provável que não seja seguro. Eu quero tentar usar as melhores práticas, não apenas permitir o sudo chgrp, a menos que isso seja realmente seguro.

Alguns requisitos  * Só pode alterar arquivos em uma área específica do servidor  * Só pode mudar dois e de grupos específicos  * Não pode ser hackeado para permitir escalonamento de privilégios ou outros problemas de segurança.

A execução do PHP FastCGI como um usuário específico pode ser uma boa solução, mas como eu garantiria essa configuração com segurança & com segurança?

    
por Rob 14.10.2010 / 04:34

2 respostas

2

Se os sites dos seus usuários estiverem separados em virtualhost, na maioria dos casos, uma maneira simples e segura seria usar o apache2-mpm-itk, que permite restringir cada vhost individual a um usuário / grupo específico do sistema.

Após instalar o apache2-mpm-itk, adicione essas linhas em parte da configuração do apache:

<virtualhost foobar.com:80>
        ...
        <IfModule mpm_itk_module>
        AssignUserId USERID GROUPID
        </IfModule>
</virtualhost>

Desta forma, os scripts php / perl / python em vhosts também são executados com permissões e usuários regulares.

    
por 13.12.2011 / 21:49
1

Uma coisa que você pode fazer, e eu, é usar suexec para especificar que os scripts PHP de cada pessoa sejam executados sob sua própria conta de usuário ou grupo.

Para fazer isso, você também precisará executar o PHP como um módulo FastCGI e executar o mod_fcgid no Apache (dica: você também pode usar o Worker MPM do Apache). A instalação é um pouco complicada - você precisa de scripts wrapper (você pode conseguir contornar isso usando o suphp, mas eu não tentei).

Eu tenho isso para que o PHP (e todos os processos CGI) sejam executados como www-data:<username> . Então, se os usuários quiserem poder fazer o upload do PHP para sua própria pasta, eles podem apenas definir o próprio sinalizador de gravação do grupo.

Ou apenas execute o PHP como <username>:<username> e eles nem precisarão fazer isso.

    
por 14.10.2010 / 05:34

Tags