Em geral, quando alguém deve criar uma nova conta de usuário para executar um software voltado para a Internet em um servidor?
Por exemplo, suponha que eu esteja usando um servidor Debian compartilhado (por exemplo, via Dreamhost) e queira executar alguns sites usando WordPress, alguns usando Redmine, outros usando Ruby on Rails, talvez alguns usando Django, e eu gostaria de servir a Mercurial repositórios também.
Nos servidores Dreamhost e em muitos outros servidores de configuração semelhante, tudo isso pode ser feito em uma única conta de usuário , mas posso ver algumas desvantagens dessa abordagem:
- Um arquivo .bashrc mais longo
- Se essa conta ficar comprometida, todos os sites serão executados nela.
Por outro lado, ter muitas contas de usuário pode ser um pouco difícil de acompanhar, especialmente se algumas delas tiverem requisitos idênticos em termos de software instalado. Por exemplo, ter uma conta para cada site executando o WordPress pode ser um exagero.
Qual é a melhor prática? É simplesmente uma questão de reduzir o número de sites hospedados (ou repositórios hospedados, etc) por conta de usuário proporcionalmente ao nível de paranóia de alguém?
Por favor, poste suas opiniões sobre o assunto, apresentando suas razões.
Além disso, se você tiver algum motivo para pensar que a abordagem adotada em um servidor privado ou VPS deve diferir da abordagem adotada em um servidor compartilhado, descreva o que são e, novamente, seus motivos para eles.
fonte
mod_suexec
é que "solicitações não CGI ainda são processos com o usuário especificado na diretiva Usuário" - portanto, se o PHP é um módulo, ele ainda está sendo executado como o usuário apache "principal". É uma ótima solução se tudo que você estiver executando for CGI.Geralmente, o que faço é ter um usuário para serviços externos que não têm permissão para fazer login ("ninguém" por exemplo) e uma conta que tem permissão para fazer login e su ou sudo. Naturalmente, verifique se os nomes de usuário são diferentes e não são fáceis de adivinhar.
Não vejo como necessário um usuário por serviço, a menos que você esteja executando um ambiente de hospedagem compartilhada em que cada cliente tenha um login. Se você realmente se considera um alvo muito atraente para hackers, é possível isolar o máximo possível. No entanto, a menos que você esteja fazendo algo muito controverso ou hospedando dados financeiros, não é realmente um alvo tão atraente.
fonte