多用户、多任务环境。每个用户都有自己较为保密的文件数据,为此文件的权限管理就变得很重要。Linux一般将文件可存取访问的身份分为:owner、group、others,文件权限分为:read、write、execute.
一、用户与用户组
提供健全又好用的安全防护。
1、文件所有者(owner)
owner通常为文件的创建者,文件相当于自己的“私人空间”,可以把文件设置成只有owner可查看与修改这个文件的内容,其他用户无法知道该文件的内容。
2、用户组(group)
可以通过文件权限设置限制非团队组员阅览文件内容,同组团队用户可修改自己创建的文件数据。同时,若有隐私文件也可以设置同组成员看不到。注:每个账号可以有多个用户组的支持,即同一用户可以加入多个用户组。
3、其他人(other)
不是文件所有者也不属于文件的用户组,就是其他人。
4、超级用户(root)
root是系统中唯一的超级用户,具有系统中所有的权限。如启动或停止一个进程,ADSL拨号,删除或增加用户,增加或者禁用硬件等等。注意:建议初学者不要轻易使用root权限,容易因错误操作导致系统瘫痪。
二、用户与用户组记录的文件
账号(包括一般身份用户和root用户的相关信息)都记录在/etc/passwd文件内,密码信息记录在/etc/shadow文件内,所有的组名记录在/etc/group文件内。所以不能随意删除这三个文件。
三、文件属性
对于上图的七列信息,我们将依次进行详细的讲解。(月、日和具体时间看成一列)
第一列包含10个字符,代表文件的类型和权限。第一个字符代表文件类型(具体参考上一篇博客),接下来的字符每3个一组,共有三组,均为“rwx”参数的组合。其中r代表可读,w代表可写,x代表可执行,三个权限的位置固定,若没有相应权限会用“-”表示。比如文件SSD的第一列为[-rw-rw-r--],说明SSD是一个目录文件,owner的权限是可读可写,所属用户组的权限是可读可写,其他人只有可读权限。
- 第一组为“文件所有者权限”
- 第二组为“同用户组的权限”
- 第三组为“其他非本用户组的权限”
第二列表示连接到该文件节点的个数。在Linux系统中,每个文件名都会连接到一个i-node,该属性记录的就是有多少不同的文件名连接到相同的一个i-node。
第三列表示文件所有者的名称
第四列表示文件所属用户组的名称
第五列表示文件容量的大小,默认单位是B
第六列表示文件创建时间或者最近修改的时间(包含三列,分别代表月/日/具体时间)
第七列表示文件名
四、如何改变文件属性和权限
- chmod:改变文件的权限
- chown:改变文件所有者
- chgrp:改变文件所属用户组
1、chmod的用法
作用:修改文件权限,方法有两种:分别可以使用数字或者符号来进行文件权限的设置。
- 数字类型改变文件权限
r=4,w=2,x=1
每种身份(owner、group、other)分别用字母u、g、o表示,其权限需要各自的[rwx]对应分数累加。比如文件SSD的第一列为[-rw-rw-r--],其对应权限的数字表示如下:
u=rw-=4+2+0=6,g=rw-=4+2+0=6,o=r--=4+0+0=4,故该文件权限的数字表示为664。
格式:chmod [-R] xyz 文件或者目录
参数:
-R:进行递归的更改,即连同子目录下的所有文件都会更改权限。
xyz:数字类型的权限属性,为rwx相应属性的数值相加。
举例:
- 符号类型改变文件权限
chmod | u(文件所有者) g(所属组) o(其他人) a(所有用户) | +(增加权限) -(减去权限) =(设置权限) | r(可读权限) w(可写权限) x(可执行权限)
| 文件或者目录 |
举例:
2、chown的用法
作用:change owner 改变文件所有者,需注意的是,用户必须是已经存在于系统的账号(在/etc/passwd文件中有记录的用户)。
格式:chown [-R] 账号名称 文件或者目录
参数:
-R:同上
3、chgrp的用法
作用:change group 改变用户组。
格式:chgrp [-R] dirname/filename
参数:
-R:同上
举例:
注意,要被改变的组名必须存在于/etc/group文件内,否则会显示错误。