chmod()函数 mode参数

php文档:

bool   chmod( string filename, int mode)

尝试将filename所指定文件的模式改成mode所给定的。

注意mode不会被自动当成八进制数值,而且也不能用字符串(例如 "g+w")。要确保正确操作,需要给mode前面加上 0:


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Linux指令大全 1.cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help...
    muyang_js的简书阅读 2,848评论 0 12
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,761评论 25 709
  • Linux 系统命令及其使用详解( 大全) 名称: cat 使用权限:所有使用者 使用方式:cat [-AbeEn...
    小向资源网阅读 1,529评论 0 3
  • 有一个地方,有着一个美丽的公主,美丽 而又善良善良的公主 ,看见黑暗笼罩人间 ,于是她决心化成月亮为人类照...
    高姝阅读 356评论 0 0
  • 看了一会王者荣耀的八进四电竞比赛,正好看了最后一场决胜局,WE(中国队)对LSP(不知道哪个国家的),尽管没玩过王...
    老祝读书阅读 113评论 0 0