Este é o comportamento pretendido do recurso umask
do UNIX, que é usado para controlar as permissões de arquivos recém-criados.
Por exemplo, com um umask
de 0022
, os bits de gravação do grupo e do mundo serão mascarados. Isso provavelmente explica os resultados que você viu nos diretórios criados pelo seu script.
Você pode ajustar o umask
no PHP para 0000
, mas como essa é uma configuração global de processo e o interpretador PHP está embutido no Apache, pode ter implicações de segurança além do seu script. A alternativa é emitir uma chamada chmod()
depois de criar o diretório, que deve ser um pouco mais seguro e não depende da configuração umask
.
Você também pode querer considerar se realmente precisa tornar esses diretórios mundiais graváveis. Se os arquivos precisarem ser graváveis pelo servidor da Web e por algum outro script, talvez você possa configurar o diretório para pertencer a um grupo comum para esses dois ambientes e torná-lo apenas gravável em grupo.