www-data
é uma conta do sistema, destinada a ser usada como a conta na qual o Apache HTTP Server é executado. É não destinado a ser usado para trabalho interativo.
A resposta técnica direta à pergunta por que su www-data
não funciona é que a conta www-data
está configurada para ter nologin
como seu shell de login ( man nologin
). Isso é feito por padrão para desencorajar o uso dessa conta para trabalhos interativos. Você pode, claro, sempre fazer sudo -u www-data bash
se você absolutamente precisa; mas não vejo por que isso seria necessário.
Em sistemas derivados do Debian, o Apache é executado por padrão sob o usuário www-data
. Para fazê-lo funcionar com outra conta de usuário, você deve editar o arquivo /etc/apache2/envvars
. Procure export APACHE_RUN_USER=www-data
e export APACHE_RUN_GROUP=www-data
e altere-os para atender às suas necessidades.
A execução do servidor da web na sua conta pode ou não ter implicações de segurança, dependendo da configuração específica. Uma maneira melhor pode ser deixar o Apache rodar sob www-data
(para restringir suas permissões) e mudar a propriedade dos diretórios servidos pelo Apache para sua conta. Os diretórios nos quais o apache deve ter acesso de gravação podem ser feitos pelo usuário www-data
e seu grupo, com o bit set-group-id configurado e acesso de gravação para o grupo.
Agora, se você ainda insistir que deseja que sua conta interativa seja chamada www-data
, a maneira mais simples é assumir a propriedade de todos os arquivos pertencentes à conta www-data
ou grupo www-data
, exclua a conta e o grupo www-data
e renomeie sua conta e o grupo principal www-data
. Não vou explicar em detalhes como realizar esse procedimento inútil, complicado e propenso a erros.