[i=s] 本帖最后由 dchwlinux 于 2009-7-12 15:31 编辑 [/i]
linux的权限分的很系,它将用户分为三类:拥有者、群组、其它用户。权限分为读、写和执行。当然还有SUID,SGID和Stickybit。
linux下用chmod(change file modebit)改变一个文件的权限一般有两种方式:
1、chmod [ugoa][+-=][rwx] filename
这种方法很直观,u代表拥有者(user),g代表组(group),o代表其它用户(other),a代表所有用户(all)。+-=代表增加、去除、设置为相应的权限。rwx分别代表读(read)、写(write)、执行(exe)。比如chmod a+x filname 表示对所有用户增加对filename的执行权限。
2、chmod 0755 filename
这种方法是对过设定文件的权限位来修改权限的。这里的7=4+2+1=2^2+2^1+2^0=111B (^表示乘方,B表示二进制数)5=4+1
这种方法比上一种方法用得广泛。其它umask就是一种方法。umask是一种文件创建权限掩码,当新文件被创建时,其最初的权限由文件创建掩码决定。权限掩码和777相减得到最初的权限值。
权限的运算:
权限的运算是二进制的运算,而不是十进制的运算。这其中的偶数-奇数就须要注意。6-3=4而不等于3。原因是这样的:
化成二进制:110B
-011B,做的时候是相应位相减。110B(代表rw-)
-011B(代表-wx)
=100B,要注意这个0。因为原来的权限中根本就没有x这一权限。所以最后就变成了0。如果按照6-3=3,反而是增加了x权限而取消了r的权限位。还有SUID,SGID和Stickybit也分别代表了三个位,分别是100B=4,010B=2和001B=1,chmod 0775中0就表示没有SUID、SGID(这两项是非常危险的,尽量不要用)和Stickybit的设置。
hantu 于 2009-07-18 14:28:37发表:
不错,就是有些错别字 ...
hantu 于 2009-07-18 14:28:30发表:
不错,就是有些错别字 ...
balini 于 2009-07-18 14:22:50发表:
学习学习
妻梅子鹤 于 2009-07-12 21:08:01发表:
这个不错,不过稍微有点儿凌乱,恐怕新手一下子无法理解,建议楼主在仔细整理一下不过还是十分感谢楼主了。
tljhl 于 2009-07-12 15:35:27发表:
受教了
bbsytc 于 2009-07-12 15:24:13发表:
学习了 谢谢分享