文章目录
- Linux权限的概念
- Linux文件权限
- 文件访问者分类
- 文件类型和访问权限
- 文件权限值的表示方法
- 文件权限的设置
- Linux目录权限
- 粘滞位
- 权限的总结
Linux权限的概念
Linux下有两种用户:超级用户(root)和普通用户(user)
- 超级用户:可以在Linux下做任何事
- 普通用户:权限有限
- 超级用户的命令提示符为**#,普通用户的命令提示符为$**
普通用户->超级用户:su / su -
超级用户->普通用户:su user_name

Linux文件权限
文件访问者分类
- 文件和文件目录所有者:u—User
- 文件和文件目录的所有者所在组的用户:g—Group
- 其他人:o—Others
文件类型和访问权限
(1)文件类型
- d 文件夹
- - 普通文件
- l 软连接(类似windows的快捷方式)
- b 块设备文件(例如硬盘、光驱等)
- p 管道文件
- c 字符设备文件(例如屏幕等串口设备)
- s 套接口文件
(2)基本权限
- 读(r/4):对文件而言,具有读取文件内容的权限;对于目录而言,具有浏览该目录信息的权限
- 写(w/2):对文件而言,具有修改文件内容的权限;对于目录而言,具有删除和移动目录内文件的权限
- 执行(x/1):对文件而言,具有执行文件的权限;对于目录而言,具有进入目录的权限
- - 表示不具有任何权限
文件权限值的表示方法
(1)字符表示方法
| Linux表示 | 说明 | Linux表示 | 说明 |
|---|---|---|---|
| r– | 只读 | -w- | 只写 |
| –x | 只执行 | rw- | 可读可写 |
| r-x | 可读可执行 | -wx | 可读可执行写 |
| rwx | 可读可写可执行 | — | 无权限 |
(2)8进制数值表示方法
| 权限符号 | 二进制 | 八进制 |
|---|---|---|
| r | 100 | 4 |
| w | 010 | 2 |
| x | 001 | 1 |
| rw | 110 | 6 |
| rx | 101 | 5 |
| wx | 011 | 3 |
| rwx | 111 | 7 |
| --- | 000 | 0 |
文件权限的设置
(1) chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
- R 递归修改目录文件的权限(只有root用户可以修改权限)
chmod命令权限值的格式:
① 用户标识符 +/- 权限字符
- + 向权限范围增加权限代号所表示的权限
- - 向权限范围取消权限代号所表示的权限
- = 向权限范围赋予权限代号所表示的权限
- u 拥有者
- g 拥有者同组用
- o 其它用户
- a 所有用户
实例:

② 三位8进制数字
实例:

(2)chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例:

此时运行chown显示权限不够,每次切换root用户非常麻烦,因此此时介绍一个新方法——sudo

这里有些小伙伴无法执行sudo命令,因为还没有将用户添加进root的sudoers文件中,方法:
- su
- echo ‘username ALL=(ALL) ALL’ >> /etc/sudoers
username为要加入sudoers的用户

(3)chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:
- -R 递归修改文件或目录的所属组
实例:

(4)umask
功能:查看或修改文件掩码
格式:umask 权限值
说明:
- 新建文件夹默认权限 = 0666
- 新建目录默认权限 = 0777
- 假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
- 将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
实例:

Linux目录权限
- 可执行权限:如果目录没有可执行权限,则无法cd到目录中
- 可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
- 可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
实例:

但是问题来了,只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.
结论:
- 如果目录对other具有w权限,other可以删除目录下任何一个文件
- 如果目录对other没有w权限,other不可以删除目录下的任何文件
需求:
- other可以在特定目录下创建文件,但不可以删掉自己的文件。
由此引入粘滞位的概念。
粘滞位
通过sudo chmod o+t 设置目录的粘滞位

当一个目录被设置为粘滞位,该目录下的文件只能被超级管理员、该目录所有者、该文件所有者删除。
权限的总结
- 目录的可执行权限是表示你可否在目录下执行命令
- 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录, 即使目录仍然有读权限
- 如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限,所以即使可以执行ls命令,但仍然没有权限读出目录下的文档

















