文章目录
一、文件访问者的分类
1.文件和文件目录的所有者: User(即u)
2.文件和文件目录的所有者所在的组的组员:Group(即g)
3.其他用户:Other(o)
二、文件类型和访问权限
1.文件类型
d:文件夹
-: 普通文件
l: 软链接(类似Windows的快捷方式)
b: 块设备文件(例如硬盘、光驱等)
p: 管道文件
c: 字符设备文件(例如屏幕等串口设备)
s: 套接口文件
如下图中,三个文件的前面都是 - ,因此三个文件都为普通文件。
2.基本权限
1.读(Read):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限。(r)
2.写(Write):对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。(w)
3.执行(execute):对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。(x)
3.文件权限的表示
1.字符表示
在Linux中,我们发现文件最左侧有一些字符,他们是r、w、x的组合,分别与读、写、执行对应。
注意看,他们占据了九个字符。
前三个代表的是所有者的权限,中间三个是所有者的组员的权限,后三个是其他用户的权限。
若有rwx,则有对应的权限,若为 - ,则表示没有这项权限。
如上图中,被选中的字符中的r-x,表示其他用户没有写的权限。
2.八进制数表示
我们知道用户的权限使用三个字符表示的,要么有,要么没有。
因此可以用1和0来表示。
比方说,1 1 1就代表拥有这三个权限,对应r w x,也即八进制的数字7,
0 0 0就代表一个权限都没有,对应- - -。
由于我们需要配置9个字符的1或者0,我们可用三个八进制数表示。
给拥有者、所在组组员、其他用户都配置读、写、执行,则可用7 7 7表示。
3.文件访问权限的相关设置方法
1.chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
① 用户表示符 +/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
例:chmod u+w 【文件名】
表示给所有者加上“写”的权限
②三位8进制数字
例:chmod 777 【文件名】
表示给拥有者、所在组组员、其他用户都配置读、写、执行的权限。
2.chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
3.chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
4.umask
功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
~为取反符号,我们来看这题。
如果系统的umask设置为244,创建一个新文件后,它的权限:
A.–w-r–r–
B.-r-xr–r–
C.-r—w–w-
D.-r-x-wx-wx
由上文我们知道,普通文件默认权限为666,
则实际文件权限为mask & ~umask,即666 & ~244
运用“与”运算,
可得出答案为C。
4.目录的权限
1.可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
2.可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
3.可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
由于用户写权限的人可以删除目录中的文件,倘若两个用户在一个目录中工作,为了防止误删对方的文件,可使用chmod +t 【目录名】来设置粘滞位。
这样该文件 就只能由 该文件的所有者 或者 更高一级的用户 删除了。