A razão pela qual os diretórios criados por sudo são de propriedade root: root é porque o sudo literalmente permite executar comandos como um usuário diferente , neste caso como root (já que você não especificou um diferente nome de usuário).
Coloque o desenvolvedor1 no grupo www-data, então certifique-se de que o diretório no qual você deseja que este usuário crie arquivos / diretórios pertence ao grupo www-data e é gravável pelo dito grupo.
Agora, o desenvolvedor1 pode criar arquivos e diretórios lá, porque suas participações em grupo permitem que ele faça isso.
Mas você notará que esses novos diretórios / arquivos são de propriedade de developer1: developer1 (ou, alternativamente, developer1: users ou algo parecido). Para corrigir isso, você pode criar o grupo primário www-data do desenvolvedor1, caso em que tudo o que ele criar será de propriedade do grupo www-data.
Se seu objetivo for fazer com que esse usuário crie arquivos em outro lugar em um grupo diferente (por exemplo, usuários ou desenvolvedores), crie-os como www-data em, por exemplo. / var / www, bem, isso é uma coisa que eu ainda não descobri. Até agora, eu fui preso com um dos dois (bem, três, na verdade: o terceiro é apenas viver com isso) soluções alternativas:
- Faça com que o (s) usuário (s) manualmente
chgrp
arquivos e diretórios quando eles são criados. Pode ser feito recursivamente e / ou em um lote, assim você pode, por exemplo faça o upload de um grande número de arquivos e, em seguida,chgrp
de uma só vez. - Configure um cron job que seja executado de tempos em tempos (por exemplo, a cada 5-10 minutos) e recursivamente
chgrp
s tudo sob sua raiz da Web (ou seja o que for que você esteja tentando controlar) para www-data. Como alternativa, você pode usar essa tarefa cron parachown -R www-data:www-data /var/www
para garantir que todos os arquivos / diretórios pertençam ao usuário www-data, bem como ao grupo www-data.
Sei que nenhum desses é ideal, embora, depois que um arquivo é criado, ele retenha sua propriedade, independentemente de quem o edite.