1. 权限基本概述
1.1 什么是权限?
权限: 操作系统对用户能够执行的功能所设立的限制, 主要用于约束用户能对系统所做的操作,
以及内容访问的范围, 或者说, 权限是指某个特定的用户具有特定的系统资源使用权力.
1.2 为什么要有权限?
因为系统中不可能只存在一个root用户, 一定会存在多个用户, 为了保护每个登陆用户的隐私和工作环境, 所以就有了权限.
1.3 权限与用户之间的关系?
在Linux系统中, 针对文件定义了三种身份,
分别是属主(owner)、属组(group)、其他人(others),
每一种身份又对应三种权限, 分别是可读(readable)、可写(writable)、可执行(excutable).

用户对文件资源, 有三种角色, 一个用户访问文件流程如下:
1. 判断用户是否为文件所有者, 如果是, 则按所有者的权限进行访问
2. 判断用户是否为文件所有组成员, 如果是, 则按组的权限进行访问
3. 如果不是所有者, 也不是该文件所属组, 则按匿名权限进行访问
1.4 权限中的rwx分别代表什么含义?
使用ls -l查看一个文件的详细属性时, 能看到每个文件都有一个9位基本权限位,
比如: rwxr-xr-x 其中每三位字符为一组, 分别表示属主权限位, 属组权限位, 匿名权限位.
linux中基本权限位则是使用这9位字符来表示, 主要控制文件属主(User)、属组(Group)、其他用户(Other)
| 字母 | 含义 | 对应权限 |
|---|
| r(read) | 读取权限 | 4 |
| w(write) | 写入权限 | 2 |
| x(execute) | 执行权限 | 1 |
| -(没有权限) | 没有权限 | 0 |
PS: 如果权限位不可读、不可写、不可执行, 则全部使用-作为占位符表示.
文件示例: rwxrw-r– alice hr file1.txt
Q1: alice对file1文件拥有什么权限?
alice是文件的属主对应rwx, 拥有文件读写执行权限.
Q2: jack 对 file1.txt 文件有什么权限? 前提:jack 属于 hr 组
jack 属于 hr, hr属组对应rw-, 拥有文件的读写权限.
Q3: tom 对 file1.txt 文件有什么权限?
tom没有前题条件输入其他用户对应-r–, 对文件只有读的权限.
2. 权限设置方法
Linux下使用chmod命令来变更权限, root用户可以变更所有文件的权限, 而普通用户仅能变更属于自己的文件.
选项: -R递归修改
2.1 文件设置权限方式1
字母缩写含义:
a = all
u = user
g = group
o = other
运算符含义:
= 设置权限 a=rwx 为所有用户设置读写执行权限
+ 添加权限 g+x 为属组设置添加执行权限
- 删除权限 g-x 为属组设置删除执行权限
[root@kid ~]
[root@kid ~]
[root@kid ~]
[root@kid ~]
[root@kid ~]
[root@kid ~]
-rwxrw-r-- 1 root root 0 Apr 13 03:29 file
2.2 文件设置权限方式2
number
[root@kid ~]
[root@kid ~]
[root@kid ~]
[root@kid ~]
-rw------- 1 root root 0 Apr 13 03:29 file
2.3 目录设置权限
[root@kid ~]
[root@kid ~]
[root@kid ~]
[root@kid ~]
drwxr-xr-x 2 root root 6 Apr 13 03:34 dir/
针对 hr 部门的访问目录/home/hr 设置权限, 要求如下:
1. root 用户和 hr 组的员工可以读、写、执行
2. 其他用户没有任何权限
[root@kid ~]
[root@kid ~]
[root@kid ~]
[root@kid ~]
[root@kid ~]
drwxrwx--- 2 root hr 6 Apr 13 03:26 /home/hr
3. 文件权限与目录权限
在Linux中权限对文件和对目录的影响是有不同区别的.
| 权限 | 对文件的影响 | 对目录的影响 |
|---|
| 读取权限(r) | 具有读取阅读文件内容权限 | 具有浏览目录及子目录 |
| 写入权限(w) | 具有新增、修改文件内容的权限 | 具有增加和删除目录内文件 具有增加和删除目录内文件(需要x权限, 单独w屁都没有) |
| 执行权限(x) | 具有执行文件的权限 | 具有访问目录的内容(取决于目录中文件权限) |
3.1 文件权限
[root@kid ~]
[root@kid ~]
-rw-r--r--. 1 root root 5 Aug 31 15:19 filename
[root@kid ~]
s/1
[qq@kid /]$ cat /root/filename
cat: /root/filename: Permission denied
[qq@kid ~]$ cd /
[qq@kid /]$ ll
...
dr-xr-x---. 2 root root 180 Aug 31 15:19 root
...
[qq@kid /]$ su - root
Password:
[root@kid ~]
[root@kid ~]
[qq@kid ~]$ cat /root/filename
date
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
[root@kid ~]
[root@kid ~]
-rw-r--r-x. 1 root root 5 Aug 31 15:19 /root/filename
[root@kid ~]
Wed Aug 31 16:01:39 CST 2022
[root@kid ~]
[root@kid ~]
-rw-r----x. 1 root root 5 Aug 31 15:19 /root/filename
[root@kid ~]
[qq@kid ~]$ /root/filename
bash: /root/filename: Permission denied
[root@kid ~]
[root@kid ~]
-rw-r--rwx 1 root root 5 Jan 24 08:24 /root/filename
[kid@kid ~]$ vim /root/filename
...
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
PS: 总结rwx对文件的影响
读取权限(r)具有读取阅读文件内容权限
1. 只能使用查看类命令cat、head、tail、less、more
写入权限(w)具有新增、修改文件内容的权限
1. 使用vim编辑会提示权限拒绝, 但可强制保存, 会覆盖文件的所有内容
2. 使用echo命令重定向的方式可以往文件内写入数据, >>可以进行追加
3. 不能删除文件, 因为删除文件看的不是文件的属性, 需要看上级目录是否有w的权限
执行权限(x)具有执行文件的权限
1. 执行权限对文本文件没有实际的用处
2. 如果普通用户需要执行文件, 需要配合r权限
文件r权限, 只给用户查看, 无其他操作
文件rw权限, 可以查看和编辑文件内容
文件rx权限, 允许查看和执行文件、但不能修改文件
文件rwx权限, 能读, 能写, 能执行, 但不能删除, 因为删除需要看上级目录的权限有没有w权限
文件的x权限小心给予, 文件通常设定的权限是644
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
3.2 目录权限
创建目录, 并在该目录下创建文件, 匿名用户对目录没有w权限, 所有对文件有777权限
[root@kid ~]
[root@kid ~]
...
drwxr-xr-x. 2 root root 6 Aug 31 16:21 dirname
..
[root@kid ~]
[root@kid ~]
[root@kid ~]
-rwxrwxrwx. 1 root root 5 Aug 31 16:23 filename
[kid@kid ~]$ cat ./dirname/filename
test
[kid@kid ~]$ rm -f /dirname/filename
rm: cannot remove ‘/dirname/filename’: Permission denied
PS: 总结rwx对目录的影响
读取权限(r), 如果目录只有r权限: 仅仅只能浏览目录内的文件名, 无其他操作权限
1. 可以使用ls命令浏览目录及子目录, 但同时也会出现权限提示
2. 使用ls -l命令浏览目录及子目录, 文件属性会带问号, 并且只能看到文件名
写入权限(w), 如果目录只有w权限: 什么权限都没有...
执行权限(x), 如果目录只有x权限: 只能进入目录, 不能进行浏览、复制、移动、删除的操作
目录rx权限, 允许浏览目录内文件以及子目录、 不允许创建、删除文件和目录
目录wx权限, 能进入目录, 能删除内容, 能写入内容, 但就是无法使用ls cat这样的命令
目录rw权限, 能看, 能写, 但无法进入目录
* 目录的 w权限小心给予, 通常目录设定的权限是755
4. 属主属组设置
变更文件属主和属组的意义?
比如:
A出售房子dir进行变现, 将房子dir过户给B, 过户成功房字dir就属于B,
那么此时房子dir的拥有者就属于属于B而不再属于A.

在Linux中如何变更一个文件或者一个资源的属主和属组呢, 可以使用chown、chgrp命令实现.
chown能设置属主和属组, chgrp仅能设置属组.
4.1 测试环境
[root@kid ~]
[root@kid ~]
uid=1009(q1) gid=1017(q1) groups=1017(q1)
4.2 chowm命令
设置属主和属组命令:
chown [属主].[属组] 参数
仅设置属主 chown [属组.] 参数
设置属主 chown [属组] 参数 或chown [.属组]
-R:递归修改
1. 仅修改属主
[root@kid ~]
[root@kid ~]
drwxr-xr-x. 2 q1 root 18 Sep 1 16:58 dir
...
2. 仅修改属组
[root@kid ~]
[root@kid ~]
drwxr-xr-x. 2 q1 q1 18 Sep 1 16:58 dir
...
3. 修改属主与属组
[root@kid ~]
[root@kid ~]
drwxr-xr-x. 2 root root 18 Sep 1 16:58 dir
...
4.3 chgrp命令
设置属组命令: chgrp [属组] 参数
-R:递归修改
[root@kid ~]
[root@kid ~]
drwxr-xr-x. 2 root q1 18 Sep 1 16:58 dir
...