一、权限概述
1. 什么是权限
权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利。
软件资源:Linux系统中,一切皆文件!SO,这里的软件资源就是文件资源。
所以,我们今天所讲的权限,指的就是:文件资源所拥有的相关权限,即文件权限。
2. 权限设置目的
文件权限的设置目的:是想让某个用户有权利操作文件.
3. 文件权限的分类
㈠ 普通权限
用户正常情况去操作文件所具有的权限
㈡ 高级权限
用户对某个文件操作有特殊需求,而普通权限不能满足,需要给文件设置高级权限
㈢ 默认权限
用户在系统中创建一个文件,该文件默认都会有一个权限,该权限是默认有的
时刻谨记:
权限是设置在文件上的,目的是让某个用户拥有操作文件的权利。
二、普通权限
1. 理解普通权限rwx含义
㈠ 读权限—r(read)
针对目录
一个目录拥有r权限,说明可以查看该目录里的内容,如(ls命令列出)
针对普通文件
一个普通文件拥有r权限,说明可以查看该文件的内容,如(cat/head/tail/less/more等命令查看)
读权限r(read)用数字表示是4
㈡ 写权限—w(write)
针对目录
一个目录拥有w权限,说明可以在该目录里创建、删除、重命名等操作(mkdir/touch/mv/rm等)
针对普通文件
一个普通文件拥有w权限,说明可以修改该文件的内容(vi/vim编辑器编辑文件)
写权限w(write)用数字表示是2
㈢ 执行权限—x(execute)
针对目录
一个目录拥有x权限,说明可以进入或切换到该目录里(cd命令)
针对普通文件
一个普通文件拥有x权限,说明可以执行该文件(一般程序文件、脚本文件、命令都需要执行权限)
执行权限x(execute)用数字表示是1
㈣ 没有权限—横杠-
没有任何权限用横杠-表示,数字表示是0
2. 理解UGO的含义
㈠ UGO指的是什么
UGO,指的是用户身份,每个字母代表不同的用户身份。
U(the user who owns it)
文件的拥有者(owner)或者创建者
G(other users in the file’s group)
在文件的所属组(默认是创建文件的用户的主组)里的用户
O(other users not in the file’s group)
既不是文件的创建者,也不在文件属组里的用户,称为其他人
注意:
除了上面ugo以外,还有一个字母a(all users),表示所有用户。
㈡ 如何判断不同身份的用户对文件的权限
3. 修改文件的普通权限
㈠ 通过字母形式更改权限
㈡ 通过数字形式更改权限
4. 总结
用户是否可以删除目录里的文件,看的是目录的权限!!!
对于正常能够操作的目录来说,应该默认具备r-x。
三、高级权限
1. 高级权限有哪些
㈠ 冒险位(SETUID)
冒险位,指文件操作者(用户)临时拥有文件拥有者的权限
冒险位,一般针对的是命令或者脚本文件
冒险位,用字母表示是s或S;数字表示是4
冒险位的设置:chmod u+s 文件名或者chmod 4xxx 文件名
㈡ 强制位(SETGID)
强制位,一般针对的是目录
如果一个目录拥有强制位,那么任何用户在该目录里所创建的任何文件的属组都会继承该目录的属组。
强制位,用字母表示是s或S;数字表示是2
强制位的设置:chmod g+s 文件名或者chmod 2xxx 文件名
㈢ 粘滞位(STICKY)
粘滞位,一般针对的是公共目录
如果一个公共目录拥有粘滞位,那么该目录下的文件,只有root和文件的创建者可以删除,其他人只能自己管理自己。(A用户不能删除B用户创建的文件)
粘滞位,用字母表示是t或T;数字表示是1
粘滞位的设置:chmod o+t 文件名或者chmod 1xxx 文件名
2. 高级权限设置
㈠ 冒险位举例
需求:
给一个vim命令设置冒险位,目的是任何人拿vim去修改文件可以临时获得文件拥有者的权限
㈡ 强制位举例
需求:
给dir2设置一个强制位,测试是否任何人在该目录里创建的文件属组都是该目录的属组。
㈢ 粘滞位举例
需求:
在创建一个公共目录/tmp/dir3,要求所有人都可以在该公共目录里创建、删除文件;但是只能自己管理自己,不能删除别人的文件
四、默认权限
1. 什么是默认权限
所谓文件的默认权限(遮罩权限),是指用户创建文件后,文件天生就有的权限,不需要设置。
2. 文件默认权限由谁来控制
文件默认权限由一个叫做umask的东西来控制。
3. umask如何控制文件默认权限
㈠ 临时控制
临时控制,指的是用命令umask临时设置,只在当前终端当前进程中生效。
如何通过umask计算文件的默认权限?
Linux系统中,默认创建目录的最大权限是0777;文件的最大权限是0666
umask=文件的最大权限-文件的默认权限
临时设置用户的umask
[root@localhost ~]# umask 0007
计算用户的默认权限
㈡ 永久控制
永久设置,指的是通过修改配置文件设置,对用户的所有终端所有进程生效。
① 针对所有用户生效
② 针对某个用户生效
五、总结
对于运维工程师来说,掌握Linux系统权限是必备的技能,除了以上介绍的普通权限、高级权限、默认权限外,如果需要更加细致的控制用户对文件的权限,还可以通过ACL策略来控制。