Estou trabalhando no artigo Como Servir Aplicativos Django com o uWSGI e o Nginx no Ubuntu 16.04 . No final de "Criar um arquivo de unidade do sistema para uWSGI" no artigo, eles discutem o www-data
usuário. O que é isso e por que é importante?
Estou trabalhando no artigo Como Servir Aplicativos Django com o uWSGI e o Nginx no Ubuntu 16.04 . No final de "Criar um arquivo de unidade do sistema para uWSGI" no artigo, eles discutem o www-data
usuário. O que é isso e por que é importante?
Respostas:
Para segurança.
Os arquivos não podem ser gravados no mundo. Eles são restritos ao proprietário dos arquivos para gravação.
O servidor da web deve ser executado sob um usuário específico. Esse usuário deve existir.
Se ele fosse executado no root, todos os arquivos teriam que ser acessíveis pelo root e o usuário precisaria ser root para acessar os arquivos. Com o root sendo o proprietário, um servidor da Web comprometido teria acesso a todo o sistema. Ao especificar um ID específico, um servidor da Web comprometido teria apenas acesso total a seus arquivos e não a todo o servidor.
Se você decidir executá-lo com um ID de usuário diferente, esse usuário precisará ser o proprietário efetivo dos arquivos para obter os privilégios adequados. Pode ser confuso ter propriedade pessoal de arquivos de todo o sistema em sua conta pessoal.
A criação de um usuário específico tornaria mais fácil o reconhecimento dos arquivos e consistente o reconhecimento do ID chown
para novos arquivos e pastas adicionados ao site.
O ID do usuário ou o nome do proprietário não importa. O que for escolhido ou decidido terá que ser configurado nos arquivos de configuração do servidor da web.
Por padrão, a configuração do proprietário está www-data
na configuração do Ubuntu do Apache2. Como essa é a configuração padrão, você conhece convenientemente a propriedade necessária para seus arquivos da web. Se você o alterar, será necessário alterar os arquivos no seu site para corresponder.
Não executo o Nginx , mas como ele está no repositório Ubuntu, tenho certeza de que foi testado com a www-data
configuração como padrão.
www-data
. É por isso que, como na sua pergunta, eles pediram para você criar o ID do usuário e o ID do grupo, se ele não existir. A instalação do Apache2 cria automaticamente o usuário. Não tenho certeza sobre o Nqinx . Você pode verificar para ver se ele existir com: iid -u www-data&&id -g www-data
. Se existir, mostrará o número de identificação do usuário e grupo. Por padrão no Ubuntu, os números de usuário e grupo são 33
.
www-data
como proprietário também pode ser um risco à segurança, conforme mencionado na base-passwd
documentação (consulte a resposta da @ muru), pois os proprietários normalmente têm acesso de leitura / gravação a todo o conteúdo de serviço da Web. Você pode remover o acesso de gravação ao www-data
proprietário ou usar um proprietário diferente. www-data
definitivamente precisa de acesso de leitura a todos os dados a serem veiculados, mas, se você der apenas as permissões necessárias para cada arquivo e diretório, e não mais, estará mais seguro.
www-data
é o usuário que os servidores Web no Ubuntu (Apache, nginx, por exemplo) usam por padrão para operação normal. O processo do servidor da web pode acessar qualquer arquivo que www-data
possa ser acessado. Não tem outra importância.
A partir da base-passwd
documentação ( /usr/share/doc/base-passwd/users-and-groups.txt.gz
):
Alguns servidores web são executados como www-data. O conteúdo da Web não deve pertencer a esse usuário, ou um servidor comprometido poderá reescrever um site. Os dados gravados pelos servidores da Web pertencem à www-data.
base-passwd
docs para que
www-data
é o usuário (e também o grupo) com o qual o serviço httpd (apache) está atuando no seu sistema.