php文件:
boolchmod( string filename, int mode)
嘗試將 filename
所指定檔案的模式改成 mode
所給定的。
注意 mode
不會被自動當成八進位制數值,而且也不能用字串(例如 "g+w")。要確保正確操作,需要給 mode
前面加上 0:
<?php
chmod
("/somedir/somefile"
, 755
);
// 十進位制數,可能不對
chmod
("/somedir/somefile"
, "u+rwx,go+rx"
); // 字串,不對
chmod
("/somedir/somefile"
, 0755
);
// 八進位制數,正確的 mode 值
?>
mode
引數包含三個八進位制數按順序分別指定了所有者、所有者所在的組以及所有人的訪問限制。每一部分都可以通過加入所需的許可權來計算出所要的許可權。數字 1 表示使檔案可執行,數字 2 表示使檔案可寫,數字 4 表示使檔案可讀。加入這些數字來制定所需要的許可權。
chmod是php中乙個函式,不過,似乎在程式中還比較少用到
更多的是在ftp上使用。
在ftp上,可以看到,其實chmod只有三個組
[說明一下,此函式用8進製代數字表許可權]
三個組按順序分別是:所有權,組,公共
比如,764,意思是所有權7,組6,公共4,代表三組的許可權
而各組的數字是這樣的演算法:
7=1+2+4=1*2^0+1*2^1+1*2^2
每組的屬性,是1 2 4的互相組合而成
下面是三個數字代表的許可權
讀取[read]:4
寫入[write]:2
執行[execute]:1
現在大家知道,乙個字代表的許可權了吧?
當然,也會有出現 0的時候,0,當然是沒任何許可權了
777不用說了,全權。
其實,現在看來,為使程式安全一點,設定屬性,應該766就夠了
一些空間要求使用者要把cgi程式許可權設定為755
因為上傳後的預設許可權是沒這麼高的
僅僅是644,顯然,其中是不包括執行權的,所以每組都必須 加上1,為755
在程式中使用chmod的時候,建議在前面補0,如:chmod(/"filename/",0777) ;
溫習下各中進製的轉換:
2進製只有0、1兩個數,遇到2就進1,比如二進位制裡的10就等於10進製裡的2。8進製就是遇8進一,16進製制就是遇16進一。
2進製到10進製,個位是2的0次冪,十位是2的1次冪,以此類推,最後結果相加就是所要的10進製數,例
如:1010110=64*1+32*0+16*1+8*0+4*1+2*1+1*0=86。同樣的方法,8進製、十六進製制,就是將2的幾次冪換成8的幾
次冪或16的幾次冪。
10進製到2進製,採用短除法,比如25換成二進位制數,首先用25除以2,商12餘1,先不管餘數,繼續除則有以下結果,商6餘0,商3餘0,商1餘1,商0餘1。這個二進位制數就是倒著書寫這些餘數,即11001。8進製、16進製制方法雷同,不再敘述。
最後,給出個進製數的組成:
2進製:0,1
8進製:0,1,2,3,4,5,6,7
10進製:0,1,2,3,4,5,6,7,8,9
16進製制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
PHP chmod 函式改變檔案模式
chmod 函式改變檔案模式。如果成功則返回 true,否則返回 false。chmod file,mode 引數 描述file 必需。規定要檢查的檔案。mode 可選。規定新的許可權。mode 引數由 4 個數字組成 可能的值 如需設定多個許可權,請對下面的數字進行總計 所有者可讀寫,其他人沒有任...
mod函式詳解
我們知道,mod函式是乙個求餘函式,其格式為 mod nexp1,nexp2 即是兩個數值表示式作除法運算後的餘數。那麼 兩個同號整數求餘與你所知的兩個正數求餘完全一樣 即兩個負整數與兩個正整數的演算法一樣 一 兩個異號整數求餘 1.函式值符號規律 餘數的符號 mod 負,正 正 mod 正,負 負...
mod函式用法
我們知道,例如 9 3,9是被除數,3為除數.mod函式 是乙個求餘函式,其格式為 mod nexp1,nexp2 即是兩個數值表示式作除法運算後的餘數。那麼 兩個同號整數求餘與你所知的兩個正數求餘完全一樣 即兩個 負整數與兩個正整數的演算法一樣 一 兩個異號整數求餘 1.函式值符號規律 餘數的符號...