参考文章:http://www.linuxidc.com/Linux/2014-10/108114.htm
Linux文件访问权限分为可读,可写和可执行三种。 可用ls -l命令查看,例: ls -l 显示 -rwxr-xr-x 1 root root 6444 09-22 15:33 shmwrite -rw-r--r-- 1 root root 1443 09-22 15:33 shmwrite.c drwxr-xr-x 2 root root 4096 09-22 17:19 test 第一个字符代表文件类型。d代表目录,-代表非目录。 接下来每三个字符为一组权限,分为三组,依次代表所有者权限,同组用户权限,其它用户权限 每组权限的三个字符依次代表是否可读,是否可写,是否可执行 r 表示拥有读的权限 w 表示拥有写的权限 x 表示拥有可执行的权限 - 表示没有该权限 修改权限 可用chmod命令来修改文件权限。 例如: chmod 754 test 4代表读权限,2代表写权限,1代表执行权限 7=4 + 2 + 1,表示拥有可读可写可执行权限 5=4 + 1,表示拥有可读可执行权限,但是没有写权限 0 代表没有任何权限 以此类推 思考下为什么是4,2,1分别代表读写执行权限,而不是其它数字? 我们知道计算机最底层编码都是二进制,即0,1。要表示一个文件读写执行权限,底层只需一个字节,即8位即可。 约定从右数起第3位为1,代表拥有读权限;第2位为1,代表拥有写权限;第1位为1,代表拥有可执行权限。为0,则没有相应的权限。 即二进制转换成十进制,0000 0100 = 4, 0000 0010 = 2, 0000 0001 = 1。即4,2,1分别代表相应二进制位为1,也即拥有相应权限。这也是上面所提问题的原因所在,这样说大家就更容易记住这些数字代表的含义了
ls -l中显示的内容如下: -rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc - 10个字符确定不同用户能对文件干什么 - 第一个字符代表文件(-)、目录(d),链接(l) - 其余字符每3个一组(rwx),读(r)、写(w)、执行(x) - 第一组rwx:文件所有者的权限是读、写和执行 - 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行 - 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行 也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7 - 1 表示连接的文件数 - root 表示用户 - root表示用户所在的组 - 1213 表示文件大小(字节) - Feb 2 09:39 表示最后修改日期 - abc 表示文件名 改变权限的命令 chmod 改变文件或目录的权限 chmod 755 abc:赋予abc权限rwxr-xr-x chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限 chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限 chmod a+r abc:给所有用户添加读的权限
chmod -R a+r abc;给abc文件夹及其子文件夹所有用户添加读权限