PHP用mkdir 新建立目錄無寫的許可權的問題

2021-05-22 07:01:57 字數 982 閱讀 7400

函式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。

PHP用mkdir 新建立目錄無寫的許可權的問題

函式mkdir有兩個引數,目錄路徑和訪問許可權 例mkdir tmp test 0777 然後要得到的許可權碼,不一定是上邊設定的,當前系統的umask將會與設定的值 與 這樣子才是真正的許可權碼,例如,如果umask為022,那碼上邊得到的權許可權碼為0755,沒有寫的許可權 所以如果我們想要真正...

php利用mkdir建立多級目錄

先介紹一下 mkdir 這個函式 mkdir path,0777,true 第乙個引數 必須,代表要建立的多級目錄的路徑 第二個引數 設定目錄的許可權,預設是 0777,意味著最大可能的訪問權 第三個引數 true表示允許建立多級目錄。舉例 支援建立中文目錄 header content type ...

linux系統之設定賬號新建立目錄或檔案的預設許可權

在unix或者linux中,每建立乙個檔案或者目錄時,這個檔案或者目錄都具有乙個預設的許可權,比如目錄755,檔案644,那麼這些預設許可權是怎麼控制的呢?答案是 umask 許可權掩碼。一般預設的umask值為022,其最終效果就是新建立的目錄許可權為755,檔案許可權為644。所以只要修改了使用...