现在的位置: 首页 > 综合 > 正文

文件权限(umask, chmod, read, write, execute)之新手教程

2012年12月28日 ⁄ 综合 ⁄ 共 1493字 ⁄ 字号 评论关闭

Unix文件和目录访问权限可以看成是一个3*3矩阵的形式。

也就是三个访问对象(owner,groups,others 即 拥有者,用户组,其他),每个对象有三种访问权限(read,write,execute 即 读,写,执行)。 

111的二进表示就是7,100就是4如果你让它可读也可写就是110 (6)你可以通过ls -l 命令来查看文件或目录的权限设置,输出中的第二个字符到第十个字符,这九个字符表示三种用户类型分别的三种访问权限。

-rw-r--r-- 1 sathiya sathiya 272 Mar 17 08:22 test.txt上面的例子中: * 用户即拥有者(sathiya) 具有读写权限(r代表read,w代表write,x代表execute [译者注])

 * 用户组里的其他用户有读(read)权限 * 其他用户具有读(read)权限三种文件访问权限:

 * 读(read): 具有读取文件内容的权限 * 写(write): 具有写入文件的权限 * 执行(execute): 具有将文件作为程序或脚本执行的权限三种目录访问权限: * 读(read):具有读取目录内容的权限 (显示此目录下的文件和子目录). 

 * 写(write): 具有写入目录的权限 ( 在此目录下创建文件和子目录 ) * 执行(execute): 具有打开此目录的权限读(read), 写(write) 和执行(execute)权限的数值表示: * 读(read) 4 * 写(write) 2 * 执行(execute) 1如果想得到多种权限的组合,只需要将对应数值相加。

例如:需要读写权限(read,write),那么就是 4+2 = 6。使用 Chmod 改变文件或目录的权限你可以使用八进制数字表示或者字符表示来改变一个文件或目录的权限。 权限的八进制表示法(顺序从左向右): * 第一位数字针对拥有者(owner) * 第二位数字针对用户组 * 第三位数字针对其他用户如果要赋予拥有者(owner)读写(read 4 ,write 2, 4+2=6 )权限,并赋予用户组(group)和其他用户(others)读(read 2)权限:$ chmod 644 文件名如果要赋予拥有者(owner)读和执行(read
4 ,execute 1,4+1=5)权限,并赋予用户组(group)读(read 4 )权限,并赋予其他用户零权限 ( 0 ):$ chmod 540 文件名如果要赋予拥有者读写(read 4, write 2, 4 + 2 = 6 )权限,并赋予用户组零权限( 0 ), 并赋予其他用户读(read 4 )权限:$ chmod 604 文件名Umask 022 代表一个文件的默认权限默认的umask值是0022,这个值代表一个新文件或目录的默认具有的权限。

目录的默认权限是0777,文件的默认权限是0666,新建文件或目录的权限就是默认权限减去umask值0022。

最终文件默认权限计算方法如下: * 默认文件权限: 666 * 默认umask值: 022 * 最终文件默认权限: 644最终目录默认权限计算方法如下: * 默认目录权限:777 * 默认umask:022 * 最终默认目录权限: 755你可以根据以上计算方法来将umask改为需要的数值。例如,如果你想让除了拥有者(owner)以外的任何人对文件或目录都具有零(0)权限,你就可以设置umask值为0077。

$ umask 0077然后,如果你创建了一个新文件或者目录,用户会具有以下所示权限:$ > testfile$ ls -l testfile-rw------- 1 sathiya sathiya 0 Mar 17 08:23 testfile

原文地址:http://bbs.weiphone.com/read-htm-tid-1311002.html

抱歉!评论已关闭.