Linux umask限制導致php的mkdir 0777無效

這兩天在寫一個緩存模塊,需要把生成的緩存目錄和文件設置成777權限,好讓ftp用戶可以直接登錄刪除緩存,蛋疼的事也就這麼發生了,明明用了mkdir($path, 0777);用ftp用戶登錄卻刪除不了,爲什麼呢?

 

查看了一下建立的目錄的權限,發現mkdir建立的目錄權限都是755的,我明明用的是777,立馬google了一下,才知道原來是受Linux系統的 umask限制了,Linux的umask默認值是0022,所以php 的 mkdir 函數只能建立出755權限的文件夾出來。  

 

 小Tips查看Linux的umask值直接在終端輸入命令umask就可以看到


解決方法:

    $oldmask = umask(0);  
    mkdir("test", 0777);  
    umask($oldmask);  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章