函數mkdir有兩個參數,目錄路徑和訪問權限
例mkdir(/tmp/test,0777)
然後要得到的權限碼,不一定是上邊設定的,當前系統的umask將會與設定的值‘與’,這樣子才是真正的權限碼,例如,如果umask為022,那碼上邊得到的權權限碼為0755,沒有寫的權限
所以如果我們想要真正的得到0777的權限,代碼
<?PHP
$oldumask=umask(0);
mkdir(test,0777);
umask($oldumask);
?>
umask()檢查並修改當前的umask碼,並返回當前的umask碼
umask 是什麼?
我們創建文件的默認權限是怎麼來的?如何改變這個默認權限呢?
當我們登錄系統之後創建一個文件總是有一個默認權限的,那麼這個權限是怎麼來的呢?這就是 umask 干的事情。umask 設置了用戶創建文件的默認權限,它與 chmod 的效果剛好相反,umask 設置的是權限“補碼”,而 chmod 設置的是文件權限碼。一般在 /etc/profile、$HOME/.bash_profile 或 $HOME/.profile 中設置 umask 值。
如何計算 umask 值?
umask 命令允許你設定文件創建時的缺省模式,對應每一類用戶(文件屬主、同組用戶、其他用戶)存在一個相應的 umask 值中的數字。對於文件來說,這一數字的最大值分別是 6。系統不允許你在創建一個文本文件時就賦予它執行權限,必須在創建後用 chmod 命令增加這一權限。目錄則允許設置執行權限,這樣針對目錄來說,umask 中各個數字最大可以到 7。
該命令的一般形式為:umask nnn,其中 nnn 可為 000 - 777。
我們只要記住 umask 是從權限中“拿走”相應的位即可。
如:umask 值為 022,則默認目錄權限為 755,默認文件權限為 644。