www-data
é o usuário que o servidor apache2
executa como no Ubuntu. (Normalmente, esse usuário tem um UID de 33, o número que você vê.) Portanto, os arquivos criados usando o servidor da Web são de propriedade desse arquivo. Quando você cria um arquivo, o umask do servidor entra em jogo e quaisquer permissões que você definir são controladas pela umask.
Você pode solucionar isso de três maneiras:
- Use a função
chmod
do PHP para definir a permissão após a criação. - Use a função
umask
do PHP para definir o umask antes de criar. Esteja avisado, isso definirá o umask para todos os encadeamentos em um servidor multiencadeado e pode ter consequências indesejadas. - Defina o
umask
para o próprio servidor da web. Isso é pior que (2), pois todo processo e todo site configurado no servidor é afetado.
A melhor opção é usar (1). Dê uma olhada em esta resposta SO para um exemplo de (1), esta pergunta SO para uma discussão de (2) e esta questão do SF para um exemplo de (3).