Рекурсивный mkdir () и chmod ()?

При использовании mkdir() с рекурсивным набором флага к истинному все созданные каталоги получают указанный chmod или просто последний? Например:

mkdir('/doesnotExist1/doesnotExist2/doesnotExist3/', 0755, true);

Будут недавно созданные каталоги /doesnotExist1/ и /doesnotExist1/doesnotExist2/ также получите тот же chmod как /doesnotExist1/doesnotExist2/doesnotExist3/ = 0755?

В противном случае там какой-либо путь состоит в том, чтобы вызвать вышеупомянутое поведение?

Я протестировал бы это сам, но у меня нет доступа к *, отклоняют поле ATM.

7
задан Alix Axel 12 January 2010 в 09:29
поделиться

2 ответа

Просто проверено на Gentoo Linux с PHP 5.2.12: все они имеют одинаковые разрешения.

soulmerge@shark-g:~$ php -a
Interactive shell

php > mkdir('asd/def/ghi', 0700, 1);
php > ^C
soulmerge@shark-g:~$ ls -hal asd
total 12K
drwx------  3 soulmerge soulmerge 4.0K 2010-01-12 10:32 .
drwxr-xr-x 79 soulmerge soulmerge 4.0K 2010-01-12 10:32 ..
drwx------  3 soulmerge soulmerge 4.0K 2010-01-12 10:32 def
7
ответ дан 7 December 2019 в 01:21
поделиться

Функция C, отвечающая за MKDIR ('localfileSystem', x true) - php_plain_files_mkdir () в Main / Streams / plan_wrapper.c. И это называет php_mkdir (dir, mode tsrmls_cc); для каталога «Первый», который он должен создавать и VCWD_MKDIR (BUF, (MODE_T) MODE)) для всех подкаталогов. php_mkdir () делает некоторый безопасный режим проверки, а затем звонки vcwd_mkdir Поэтому да, параметр режима используется для всех каталогов, созданных MKDIR (P, X, TRUE).

3
ответ дан 7 December 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: