Linux文件权限概念
Linux一般讲文件可存取访问的身份分为3个类别,分别是owner、group、others,且3中身份各有read、write、execute等权限。
1、Linux文件属性
1.1、 第一列代表这个文件的类型与权限
第一个字符代表这个文件是“目录、文件或链接文件等”。
- 若是[d]则是目录。
- 若是[-]则是文件。
- 若是[l]则是链接文件。
- 若是[b]则表示设备文件里面的可供存储的接口设备。
- 若是[c]则表示设备文件里面的串行端口设备。
接下来的字符中,以3个位一组,且均为rwx的三个参数的组合。其中[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute)。需要注意的是,这3个权限的位置不会改变,如果没有权限,就会出现减号[-]而已。
- 第一组为“文件所有者的权限”
- 第二组为“同用户组的权限”。
- 第三组为“其他非本用户组的权限”
1.2、第二列表示有多少文件名链接到此节点(i-node)
每个文件都会讲它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node。这个属性记录的就是有多少不同文件名连接到相同的一个i-node号码。
1.3、其他列含义
- 第三列表示这个文件(或目录)的“所有者账号”。
- 第四列表示这个文件的所属用户组。
- 第五列为这个文件的容量大小,默认单位为B。
- 第六列为这个文件的创建文件日期或者是默认的最近修改日期。
- 第七咧为该文件名。
2、如果改变文件属性与权限
chgrp:改变文件所属用户组。
chown:改变文件所有者。
chamod:改变文件的权限。
2.1、改变所属用户组:chgrp
注:要被改变的组名必须在/etc/group文件内存在才行,否则就会显示错误。
[root@www ~]# chgrp [-R] groupname dirname/filename
选项与参数:
-R:进行递归的持续更改。
2.2、改变文件所有者:chown
注:用户必须是/etc/passwd这个文件中有记录的用户名才能改变。
[root@www ~]# chown [-R] ownname dirname/filename
[root@www ~]# chown [-R] ownname:groupname dirname/filename
选项与参数:
-R:进行递归的持续更改。
2.3、改变权限:chmod
权限的设置有两种方法,分别可以使用数字或者是符号来进行权限的更改。
数字类型改变文件权限
LInux文件的基本权限有9个,分别是owner、group、others三种身份各有自己的read、write、execute权限,使用数字来代表各个权限,各权限的分数对照如下:
- r:4
- w:2
- x:1
每种身份(owner、group、others)各自的三个权限(r、w、x)分数是需要累加的,例如,当权限为[-rexrwx—],分数则是:
- owner=rwx=4+2+1=7
- group=rwx=4+2+1=7
- others=rwx=4+2+1=7
所以当我们设置权限的时候,该文件的权限数字就是770,更改权限的命令chmod的语法如下:
[root@www ~]# chmod [-R] xyz dirname/filename
选项与参数:
xyz:就是上文的数字类型权限属性,为rwx属性数值相加。
-R:进行递归的持续更改。
符号类型改变文件权限
可以通过u、g、o来代表3中身份的权限。此外a代表all,也即全部的身份。那么读写的权限就可以写成r,w,x,也就是可以使用下面方式:
例如:我们要设置一个一个文件的权限为“-rwxr-xr-x”时,基本上就是:
- user(u)具有可读、可写、可执行的权限;
- group和others(g/o):具有可读与执行的权限。
[root@www ~]# chmod u=rwx,go=rx .bashrc
如果,只想要增加.bashrc这个文件的每个人均可写入的权限,那么:
[root@www ~]# chmod a+w .bashrc
如果,要去掉全部人的可执行权限,则:
[root@www ~]# chmod a-w .bashrc