O que é o usuário www-data?

Respostas:

36

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 chownpara 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-datana 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-dataconfiguração como padrão.

LD James
fonte
2
Isso é ótimo, obrigado por tentar explicar a imagem global também.
precisa saber é o seguinte
11
btw, o que é um 'id específico'?
user61629
11
É 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.
LD James
A inserção www-datacomo proprietário também pode ser um risco à segurança, conforme mencionado na base-passwddocumentaçã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-dataproprietário ou usar um proprietário diferente. www-datadefinitivamente 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.
Yuval
18

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-datapossa ser acessado. Não tem outra importância.

A partir da base-passwddocumentaçã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.

muru
fonte
3
exceto a discussão sobre por que você não deve fornecer acesso a dados www em arquivos webroot;)
kitingChris
11
Apenas para tornar isso mais concreto para mim, posso perguntar quais serviços um servidor da web precisa acessar ao exibir uma página?
user61629
2
@ serviços user61629? O servidor da web é ele próprio um serviço, pelas definições usuais de serviço.
Muru
11
@kitingChris sim, eu estava apenas desenterrar os base-passwddocs para que
Muru
11
www-dataé o usuário (e também o grupo) com o qual o serviço httpd (apache) está atuando no seu sistema.
kitingChris