php文檔:
bool ??chmod( string filename, int mode)
嘗試將filename所指定文件的模式改成mode所給定的睡腿。
注意mode不會被自動當(dāng)成八進(jìn)制數(shù)值折欠,而且也不能用字符串(例如 "g+w")。要確保正確操作它抱,需要給mode前面加上 0:
chmod("/somedir/somefile",755);// 十進(jìn)制數(shù)陌粹,可能不對
chmod("/somedir/somefile","u+rwx,go+rx");// 字符串憔晒,不對
chmod("/somedir/somefile",0755);// 八進(jìn)制數(shù)偎箫,正確的 mode 值
?>
mode參數(shù)包含三個八進(jìn)制數(shù)按順序分別指定了所有者创千、所有者所在的組以及所有人的訪問限制缰雇。每一部分都可以通過加入所需的權(quán)限來計(jì)算出所要的權(quán)限。數(shù)字 1 表示使文件可執(zhí)行追驴,數(shù)字 2 表示使文件可寫械哟,數(shù)字 4 表示使文件可讀。加入這些數(shù)字來制定所需要的權(quán)限殿雪。
CHMOD是PHP中一個函數(shù)暇咆,不過,似乎在程序中還比較少用到
更多的是在FTP上使用。
在FTP上爸业,可以看到其骄,其實(shí)CHMOD只有三個組
[說明一下,此函數(shù)用8進(jìn)制代數(shù)字表權(quán)限]
三個組按順序分別是:所有權(quán)扯旷,組拯爽,公共
比如,764钧忽,意思是所有權(quán)7毯炮,組6,公共4耸黑,代表三組的權(quán)限
而各組的數(shù)字是這樣的算法:
7=1+2+4=1*2^0+1*2^1+1*2^2
每組的屬性桃煎,是1 2 4的互相組合而成
下面是三個數(shù)字代表的權(quán)限
讀取[read]:4
寫入[write]:2
執(zhí)行[execute]:1
現(xiàn)在大家知道,一個字代表的權(quán)限了吧大刊?
當(dāng)然为迈,也會有出現(xiàn) 0的時候,0奈揍,當(dāng)然是沒任何權(quán)限了
777不用說了曲尸,全權(quán)。
其實(shí)男翰,現(xiàn)在看來另患,為使程式安全一點(diǎn),設(shè)置屬性蛾绎,應(yīng)該766就夠了
一些空間要求用戶要把CGI程式權(quán)限設(shè)置為755
因?yàn)樯蟼骱蟮哪J(rèn)權(quán)限是沒這么高的
僅僅是644昆箕,顯然,其中是不包括執(zhí)行權(quán)的租冠,所以每組都必須 加上1鹏倘,為755
在程式中使用chmod的時候,建議在前面補(bǔ)0顽爹,如:chmod(/"filename/",0777) ;
溫習(xí)下各中進(jìn)制的轉(zhuǎn)換:
2進(jìn)制只有0纤泵、1兩個數(shù),遇到2就進(jìn)1镜粤,比如二進(jìn)制里的10就等于10進(jìn)制里的2捏题。8進(jìn)制就是遇8進(jìn)一,16進(jìn)制就是遇16進(jìn)一肉渴。
2進(jìn)制 到10進(jìn)制公荧,個位是2的0次冪,十位是2的1次冪同规,以此類推循狰,最后結(jié)果相加就是所要的10進(jìn)制數(shù)窟社,例 如:1010110=64*1+32*0+16*1+8*0+4*1+2*1+1*0=86。同樣的方法绪钥,8進(jìn)制灿里、十六進(jìn)制,就是將2的幾次冪換成8的幾 次冪或16的幾次冪昧识。
10進(jìn)制到2進(jìn)制钠四,采用短除法,比如25換成二進(jìn)制數(shù)跪楞,首先用25除以2缀去,商12余1,先不管余數(shù)甸祭,繼續(xù)除則有以下結(jié)果缕碎,商6余0,商3余0池户,商1余1咏雌,商0余1。這個二進(jìn)制數(shù)就是倒著書寫這些余數(shù)校焦,即11001赊抖。8進(jìn)制、16進(jìn)制方法雷同寨典,不再敘述氛雪。
最后,給出個進(jìn)制數(shù)的組成:
2進(jìn)制:0耸成,1
8進(jìn)制:0报亩,1,2井氢,3弦追,4,5花竞,6劲件,7
10進(jìn)制:0,1约急,2寇仓,3,4烤宙,5,6俭嘁,7躺枕,8,9
16進(jìn)制:0,1拐云,2罢猪,3,4叉瘩,5膳帕,6,7薇缅,8危彩,9,A泳桦,B汤徽,C,D灸撰,E谒府,F(xiàn)