一、权限的概述
1、什么是权限
主要用于约束用户能对系统所做的操作,以及内容访问的范围,或者说,权限是指某个特定的用户具有特定的系统的使用权力。
2.为什么要有权限
因为系统中不可能只存在一个root用户,一定会存在多个用户(普通用户),为了保护每个登陆用户的隐私和工作环境,所以就有了权限。
3.权限与用户之间的关系
在Linux系统中,针对文件定义了三种身份,分别是属主、属组(group)、其他人(others),每一种身份又对应三种权限,分别是可读(r)、可写(w)、可执行(x)。
!示例图
用户对文件资源,当一个用户访问文件流程如下:
- 1)判断用户是否为文件所有者(属主),如果是则按所有者的权限进行访问
- 2)判断用户是否为文件所有组成员(属组),如果是则按组的权限进行访问
- 3)如果不是所有者,也不是该文件所属组,则按匿名权限(其他组‘附加组’)进行访问
4.权限中 rwx 的含义
当我们使用 ls -l 查看一个文件的详细属性时,能看到每个文件都有一个9位基本权限位,比如: rwxr-xr-x其中每三位字符为一组,分别表示属主权限位,属组权限位,匿名权限位(其他用户的权限 ——如附加组)。
linux中基本权限位则是使用这 9 位字符来表示,主要控制文件属主(User)、属组(Group)、其他用户(Other)
字母 | 含义 | 数字对应权限 |
---|---|---|
r(read) | 读取权限 | 4 |
w(write) | 写入权限 | 2 |
x(execute) | 执行权限 | 1 |
-(没有权限) | 没有权限 | 0 |
如果权限位不可读、不可写、不可执行,则全部使用 - 作为占位符表示。
二、设置权限
1.为什么设定权限
方便以赋于某个 用户或 组 能够以 何种 权限 访问某个 文件
2.设定(变更)权限 —— 命令 :chmod
Linux中root用户可以 变更 所有文件的权限,普通用户仅能变更属于自己的文件。
1) 变更权限示例——利用数字(number)
(1)变更权限——只针对文件
设定属主(读写权限),属组(读权限),其他用户无权限 : -rw-r-----
[root@oldboy ~]# ll
-rw-r--r--. 1 root root 0 Aug 7 17:43 1.txt
[root@oldboy ~]# chmod 640 1.txt
[root@oldboy ~]# ll
-rw-r-----. 1 root root 0 Aug 7 17:43 1.txt
[root@oldboy ~]#
(2)变更权限——只针对目录
参数:-R 递归 可以将目录下面的文件可以全部设为和目录相同的权限
设置wode目录的权限位 764 rwxrw-r--
[root@oldboy ~]# ll
drwxr-xr-x. 2 root root 6 Aug 7 17:59 wode
[root@oldboy ~]# chmod 764 wode/
[root@oldboy ~]# ll
drwxrw-r--. 2 root root 6 Aug 7 17:59 wode
[root@oldboy ~]#
利用递归 -R 将wode的目录及下面的文件的权限全部设为 777 rwxrwxrwx
[root@oldboy ~]# chmod -R 777 wode/
[root@oldboy ~]# ll -d wode/
drwxrwxrwx. 2 root root 19 Aug 7 19:21 wode/
[root@oldboy ~]# ll -d wode/1.txt
-rwxrwxrwx. 1 root root 0 Aug 7 19:21 wode/1.txt
[root@oldboy ~]#
2)利用ugo (注:u=user, g=group, o=other, a=all=ugo)
[root@oldboy ~]# touch file 创建file文件
[root@oldboy ~]# chmod a=rwx file 给所有人(ugo)添加读写执行权限
[root@oldboy ~]# chmod a=-rwx file 取消所有的权限
[root@oldboy ~]# chmod u=rwx,g=rw,o=- file 属主读写执行,属组读写,其他人无权限
[root@oldboy ~]# chmod ug=rwx,o=r file 属主属组读写执行,其他人读权限
[root@oldboy ~]# ll file
-rwxrw-r-- 1 root root 0 Apr 13 03:29 file
ugo 的方式基本不用,用起来不如数字规定权限方便
3.权限验证
1)针对文件:
权限 | 执行结果 |
---|---|
r | 能读取文件内容 w: 能写入文件 (不能看) vim x: 能执行文件(如果没有 r 权限,单有 x 没有用) |
rw | 能查看文件,能编辑文件. 不能执行.不能删除,不能移动,不能复 制 (常用1) |
rx | 能查看文件,不能编辑,能执行. 不能删除,不能移动,不能复制 (常用2) |
rwx | 能查看文件,能编辑文件,能执行. 不能删除\移动\复制 --->使用 较少 |
2)针对目录的权限:
权限 | 执行结果 |
---|---|
r | 具有浏览目录的权限,无法进入目录,使用ls 查看目录下的文件会 报错,但会显示文件名称, 如果使用 ls-l 只能看到文件名称,其他的 全部无法查看. |
w | 什么权限也没有 x: 能进入目录,其他什么也没有 |
rx | 能进入目录,能查看目录下的文件,至于操作文件,需要看文件本 身的权限. (常用1) |
rwx | 如果目录赋予了w权限,则该目录下的文件可以复制\删除\移 动\修改\ |
三、属主和属组变
chown 更改属主以及属组 -R:递归修改
准备环境,创建文件和目录
[root@oldboy ~]# mkdir dir/test1 && touch dir/file
示例1: 修改所属主为bin
[root@oldboy ~]# chown bin dir/
示例2: 修改所属组为adm
[root@oldboy ~]# chown .adm dir/
示例3: 递归修改目录及目录下的所有文件属主和属组
[root@oldboy ~]# chown -R root.root dir/
四、总结
今天主要学了什么是权限?、权限就是一种约束解释 、为什么要有权限、 权限和用户之间的关系、权限如何设定、 变更权限chmod、怎样通过命令改变属主和属组。