php目的,php umask(0)的目的是什么
將umask設(shè)置為0000 (或僅為0 )意味著新創(chuàng)build的文件或目錄將不具有最初被撤銷的特權(quán)。 換句話說,一個零的umask將導(dǎo)致所有文件被創(chuàng)build為0666或世界可寫。 在umask為0時創(chuàng)build的目錄將是0777 。
通常,當(dāng)你看到umask(0) ,應(yīng)該直接跟chmod()調(diào)用,以明確地將新創(chuàng)build的文件或目錄所需的權(quán)限設(shè)置為世界可寫以外的權(quán)限。
設(shè)置umask為零時要小心! 這可能是危險的,并且主要僅用于創(chuàng)build必須稍后由web服務(wù)器寫入的文件,當(dāng)web服務(wù)器作為不同的用戶運行時,“真正的”用戶也將需要能夠修改所創(chuàng)build的文件由networking服務(wù)器。 否則,系統(tǒng)默認(rèn)的umask很可能是像0022這樣的文件,而不是文件所有者可寫的。 在這種情況下,如果您以正常的用戶帳戶login到本機,則由PHP下的Web服務(wù)器創(chuàng)build的文件將不會被您寫入。
而不是創(chuàng)build世界可寫的文件,通常更好的辦法是更明確地pipe理Web服務(wù)器正在寫入的目錄。 如果在目錄中創(chuàng)build的文件應(yīng)該具有特定的組權(quán)限,則可以build議在該目錄上設(shè)置sgid位,以便其中的新文件inheritance組的所有權(quán)。 需要訪問文件的用戶應(yīng)該是有權(quán)訪問的組的成員。 這比創(chuàng)build世界可讀的世界可寫文件要安全得多。
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
總結(jié)
以上是生活随笔為你收集整理的php目的,php umask(0)的目的是什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 樱花开了发朋友圈说说150个
- 下一篇: 有关回忆的优美句子239个