Ein Setzen der Berechtigung 0777 mittels mkdir führt somit zur Berechtigung 0755 - ein Setzen von 0777 ist somit nicht möglich (auch nicht mit 0799 *g*).
So schon (alte umask sichern, oft 022 und dann wieder setzen):
$verzeichnis="xyz";
$umaskvorher=umask(0);
mkdir($verzeichnis,0777);
umask($umaskvorher);
Dem Fragesteller sollte aber 0755 reichen, denn er moechte ja schreiben und andere sollen lesen/ausfuehren.
MfG, Thomas