您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關PHP項目中mkdir()無寫權限如何解決,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。
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。
所以,如果用戶umask是022(一般默認是這個),即:000 010 010 在于mkdir指定的777 ,即:111 111 111 位“與”后,得到的真實權限為:022。
如果想讓新建文件夾權限最大,有兩種方法可以實現:(當然,是在當前用戶能賦予最高權限的條件下)
1、修改用戶umask,php提供有umask函數:
復制代碼 代碼如下:
$oldumask=umask(0);
mkdir('test',0777);
umask($oldumask);
這種方法看起來一勞永逸,在腳本開頭文件里指定下umask值,后面直接用mkdir就可以控制權限,需要注意的是:在多線程服務器上使用umask函數時,多個線程會公用一個umask,所以可能會造成混亂。
2、使用chmod函數,這也是最常用的方法:
復制代碼 代碼如下:
mkdir('文件地址', 0777);
chmod('文件地址', 0777);
以上就是PHP項目中mkdir()無寫權限如何解決,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。