1.文件权限控制
首先我们先搞清一个问题:权限存在的意义?
在我们的印象中文件是用来存放实际数据的,目录是用来存放文件的,但其实目录的主要作用是用来记录文件名列表,文件名与目录有强烈的关联。权限就是用户或者其他人对这些目录以及文件能进行些什么操作。
文件的查看
当我们创建一个文档或者文件,然后先去识别一下它们的权限:
对文件的识别:ls -l file
对目录的识别:ls -ld dir
由上图可以查看新创建的文件和目录的权限,权限就相当于r、w、x,接下来我们再看看权限分别对文件的重要性和对目录的重要性。
1.对文件的查看权限
首先举例一个权限:
- rw-rw-r-- 1 kiosk kiosk 0 Aug 15 17:29 file
我们可以将它分为8段:
1)第一段:”-“
分类 | 文件类型 |
---|---|
- | 代表的是普通文件 |
d | 代表的是目录 |
l | 软链接:就是快捷方式 |
s | socket |
c | 字符设备:就是将字符显示到屏幕上的设备 |
2)第二段:”rw-rw-r- -“
字符 | 作用 |
---|---|
r(Read:读取) | 读取文件内容的权限 |
w(Write:写入) | 修改文件内容的权限 |
X(eXecute:执行) | 执行文件的权限 |
u(user) | 用户 |
g(group) | 组 |
o(other) | 其他 |
3)第三段:”1”
“1”:文件硬链接个数:就是文件那内容被系统记录的次数
4)第四段:“kiosk”
“kiosk”:文件拥有者
5)第五段:“kiosk”
“kiosk”:文件拥有组
6)第六段:“0”
“0”:代表的是文件大小
7)第七段:“Aug 15 17:29”
“Aug 15 17:29”:最后一次修改的时间
8)第八段:“file”
“file”:文件名称
2.对目录查看的权限
例如:
d rwxr-xr-x 144 root root 12288 Aug 15 18:47 etc
这里依旧分为八段:
字符 | 解释 |
---|---|
d | 类型 |
rwxr-xr-x | 权限 |
144 | 目录中子目录的个数 |
root | 用户 |
root | 组 |
12288 | 子文件或子目录的元数据大小(元数据:就相当于文件的属性) |
Aug 15 18:47 | 最后一次被修改的时间 |
etc | 目录名称 |
当查看目录权限的时候
字符 | 作用 |
---|---|
r | 表示读取目录结构列表的权限,就是当你查看一个目录的权限的时候,你可以去查看该目录下的文件名数据 |
w | 表示具有移动该目录结构列表的权限,就是可以创建新的文件目录或删除对该目录下的文件名可以操作 |
x | 记录文件名 |
3.修改文件的用户和用户组
提示:该操作需要用root用户去执行
指令 | 作用 |
---|---|
chown username file/dir | 修改文件或目录的所有者 |
chown -R username dir(这里-R的意思是递归修改) | 修改目录以及目录内所有文件及目录的所有者 |
chown username:group file\dir | 同时修改组和所有者 |
chgrp username file/dir | 修改文件或目录的组 |
chgrp -R username dir | 修改目录内所有文件及目录的组 |
- 修改文件或者目录的所有者:
chown usernamefile/dir
可以从下图看出文件的所有者被修改成student
- 修改目录的所有者(包括目录本身以及该目录中的文件及目录):
chown -R username dir
- 同时修改所属组和所有者:
chown username:group file/dir
提示:当你想同时修改组以及所有者时,首先应该先知道有哪些组
显示所有的组:cat /etc/group
提示:当你想修改一个目录以及该目录下的文件及子目录时,除了“chown -R username:group file/dir”这个方法外,还可以在目录后面加上”/*”,表示目录下的所有内容,不加的话,就只会修改该目录本身
- 修改文件或目录的组
chgrp username file/dir
- 修改目录中所有文件以及目录的组
提示:不论是组还是用户都必须是已经存在的,否则无法修改
2.权限的管理
1)字符形式
chmod <u/g/o> <+/-/=> <r/w/x> file/dir
如下图所示:这里的意思是当你先获取file文件的权限后,根据字符形式可以修改文件file的权限,下图的u代表的就是“rw-“,u+x之后权限就变成了rwx,对于“-”“=”的运算也类似
2)数字形式
r(2) w(1) x(0)
可以这样理解:x等于2的0次方乘以0或者1=0或者1
x=2^0*0|1=0|1
w=2^1*0|1=0|2
x=2^2*0|1=0|4
由此可以得出一些值:
rwx=7
rw-=6
r-x=5
r--=4
-wx=3
-w-=2
--x=1
如下图所示,可以进行对比,我们可以直接根据数字去修改文件或者目录的权限
3.权限列表
特定用户对特定文件有指定权限
rwxr-xr-x+权限位最后一位+的意思是该文件的权限列表被开启
getfacl file:查看文件的权限列表
例如:
[kiosk@foundation8 Desktop]$getfacl file
file:file 文件名
owner:kiosk 文件所有人
group:kiosk 文件所有组
user:rw- 用户权限
user:leo:rwx 特殊指定用户权限
group::rw- 组权限
mask::rwk 权限最大值
other::r-- 其他人权限
设置列表用户权限:
setfacl -m u:username:rwx file
关闭用户权限:
setfacl -b file
提示:当我们没有开启权限列表的时候,可以从下图看出-rw-r–r–后面的是“.”,当我们设置权限列表后,它的后面就变成了“+”,当我们关闭权限列表后,它又变成了“.”,说明“.”代表是权限列表处于关闭状态,“+”表示权限列表处于开启状态
删除权限列表指定用户
setfacl -x u:username file