48
A
回答
43
將umask
設置爲0000
(或者只是0
)意味着新創建的文件或創建的目錄將不具有最初被撤銷的特權。換句話說,零的umask
將導致所有文件被創建爲0666
或世界可寫。創建目錄umask
爲0
將爲0777
。
通常,當您看到umask(0)
時,應該直接跟調用chmod()
,以將新創建的文件或目錄所需的權限明確設置爲世界可寫以外的權限。
將umask設置爲零時請謹慎使用!這可能是危險的,並且主要僅用於創建必須稍後由Web服務器寫入的文件,當Web服務器以不同的用戶身份運行時,以及「真實」用戶也需要能夠修改文件由Web服務器創建。否則,系統的默認umask可能類似0022
,可由文件所有者寫入,但不能由其他人寫入。在這種情況下,如果您以正常用戶帳戶登錄到本機,則由PHP服務器創建的文件將由您寫入而不是。
與創建世界可寫文件不同,通常更好的辦法是更明確地管理Web服務器寫入的目錄。如果在目錄內創建的文件應該具有特定的組權限,則可以建議在該目錄上設置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
3
umask基本上是創建文件的默認設置。從本質上講,打開你的默認chmod然後寫入文件比寫它然後chmod它更安全(有人說)。在完成寫入文件和運行chmod之間的時間最多爲毫秒,所以我對此持懷疑態度。
umask() sets PHP's umask to mask & 0777 and returns the old umask
它基本上設置默認寫入權限,不管你把在OS的如Linux,然後返回原來的,所以你可以重新回來。這適用於PHP進程本身。
對doc頁面的評論:http://php.net/manual/en/function.umask.php將通過示例來闡明。
相關問題
- 1. 這是爲什麼返回0?
- 2. 這裏的「= 0」是什麼意思?
- 3. 這個「Image Fetcher 0」是做什麼的?
- 4. 在struct中這個`data [0]`聲明的目的是什麼?
- 5. -0?什麼是-0?
- 6. 與0異或的目的是什麼?
- 7. 緩衝=「\ 0」的目的是什麼
- 8. 退出(0)的目的是什麼?
- 9. 什麼是@的目的PHP
- 10. 這是什麼日期這是在PHP
- 11. 這個切片是什麼意思[:,:,0]?
- 12. 爲什麼這個輸出是0%?
- 13. 這是什麼意思? void * free_me = 0;
- 14. int max =〜0;這是什麼意思?
- 15. Python - 這是什麼語法? my_2d_list [0:20,1]
- 16. switch(!0)這是什麼意思
- 17. glenable(0) - 這是什麼意思?
- 18. Pex和「\ 0」這是什麼名字?
- 19. 什麼是這個標誌{0}的名字,這是什麼意思?
- 20. 這是什麼目錄
- 21. 「formMain entry = new formMain(dt.Rows [0] [0] .ToString());」這是什麼意思?特別是行[0] [0]
- 22. PHP這是什麼意思?
- 23. 這是什麼在PHP -
- 24. 什麼是decltype(0 + 0)?
- 25. 爲什麼os.umask()的參數是倒置的? (umask 0o000使chmod 0o777)
- 26. 這些IIS綁定是什麼?它們的目的是什麼?
- 27. 這是什麼意思/做什麼? 「value <0?-value:value;」
- 28. 「DHT11?0:-40;」這個語法是什麼意思,它叫什麼?
- 29. 這句「decltype(*(T *)(0)**(U *)(0))」是什麼意思?
- 30. 這個PHP代碼的目的是什麼?
http://php.net/manual/en/function.umask.php這應該會把你說出來,它基本上是爲了創建文件。 – Sammaye
@Sammaye他說文檔沒有真正幫助他。 –
umask的php手冊中的文檔非常糟糕。 – Adam