2 ответов:
задание
umaskto0000(или просто0) означает, что вновь созданные файлы или созданные каталоги не будут иметь привилегий, первоначально отмененных. Другими словами, aumaskнуля приведет к тому, что все файлы будут созданы как0666или с возможностью записи в мире. Каталоги, созданные в то время какumaskи0будет0777.обычно, когда вы видите
umask(0)он должен сопровождаться непосредственно вызовомchmod()чтобы явно задать разрешения, необходимые для вновь созданного файла или каталог не доступен на запись.будьте осторожны при установке umask на ноль! это может быть опасно и в основном полезно только для создания файлов, которые должны быть позже записаны на веб-сервере, когда веб-сервер работает как другой пользователь, что "реальный" пользователь, который также должен быть в состоянии изменить файлы, созданные веб-сервером. В противном случае umask системы по умолчанию, скорее всего, будет чем-то вроде
0022, запись в файл владелец, но не другие. В этом случае, если вы вошли в систему под обычной учетной записью пользователя, файл, созданный веб-сервером под PHP будет не быть доступной для записи.вместо того, чтобы создавать файлы, доступные для записи в мире, обычно лучше управлять каталогами, в которые веб-сервер записывает более явно. Если файлы, созданные внутри каталога, должны иметь определенные разрешения группы, может быть целесообразно установить бит sgid в каталоге так новый файлы внутри него наследуют групповое владение. Пользователи, которым необходим доступ к файлу, должны быть членами группы, имеющей к нему доступ. Это гораздо более безопасно, чем создание файлов, доступных для чтения и записи в мире.
php > umask(0); // Should get created as 666 php > touch('file1.txt'); // "2" perms revoked from group, others, gets created as 644 php > umask(022); php > touch('file2.txt'); // All revoked (2,4) from group, others, gets created as 600 php > umask(066); php > touch('file3.txt'); -rw-rw-rw- 1 me group 0 Aug 24 15:34 file1.txt -rw-r--r-- 1 me group 0 Aug 24 15:35 file2.txt -rw------- 1 me group 0 Aug 24 15:37 file3.txt
umask в основном является настройкой по умолчанию для создания файлов. По сути, безопаснее включить chmod по умолчанию, а затем записать файл, чем записать его, а затем chmod (некоторые говорят). В конце дня время между завершением записи файла и запуском chmod будет в лучшем случае миллисекундами, поэтому я скептически отношусь к этому.
umask() sets PHP's umask to mask & 0777 and returns the old umaskон в основном устанавливает разрешения на запись по умолчанию для всего, что вы вставляете в ОС, такие как Linux, а затем возвращает старый, так что вы можете сбросить он вернулся. Это относится и к самому процессу PHP.
комментарии на странице документа:http://php.net/manual/en/function.umask.php поясню на примере.
Comments