Eu acredito que este é o comportamento correto. Olhando para info mkdir:
'-p'
'--parents'
Make any missing parent directories for each argument, setting
their file permission bits to the umask modified by 'u+wx'. Ignore
existing parent directories, and do not change their file
permission bits.
To set the file permission bits of any newly-created parent
directories to a value that includes 'u+wx', you can set the umask
before invoking 'mkdir'. For example, if the shell command
'(umask u=rwx,go=rx; mkdir -p P/Q)' creates the parent 'P' it sets
the parent's permission bits to 'u=rwx,go=rx'. To set a parent's
special mode bits as well, you can invoke 'chmod' after 'mkdir'.
*Note Directory Setuid and Setgid::, for how the set-user-ID and
set-group-ID bits of newly-created parent directories are
inherited.
Então, mkdir -p terá o valor umask (modificado por u+rw
) para criar quaisquer diretórios que não estejam na árvore, o que faz sentido se você considerar o problema de como você endereçaria as permissões nos diretórios pais que já existe?
Como o trecho diz, você pode mudar o umask antes de executar o comando, embora provavelmente seja muito mais fácil executar um chmod recursivo no diretório pai depois que tudo for criado.