一. 为什么引入用户权限
linux 系统为 “多人多任务环境”。引入文件权限管理使得文件的保密性能更佳。
二. 引入使用者和群组的概念
在现实世界中,可以简单地把人分成三类:你自己,你认识的,你不认识的。自己称为 “ user ”,你认识的人按圈子分类便成为 “ group ”,你不认识的便称为其他人 “ others ”。
另外,linux 中存在 “神”,称为 root,root 是万能的,可以任意分配文件权限。
引入使用者的概念后,多人多任务变得极其方便。
三. 权限的种类
权限有 rwx 三种。
- 对于文件来说,r 是可读取文件内容,w 是可向文件写入内容,x 是文件可被执行
- 对于目录来说,r 是可读取目录下文件,w 是能对目录下文件进行操作(新建,删除,移动,重命名等),x 是可进入该目录
Tips:用户对文件没有任何权限,但对该目录有权限的话,可以删除目录下的文件。
四. 文件权限
使用 ls -al
查看文件或目录权限,假设显示如下
-rwxr-x--- 1 ming minghome 文件大小 修改日期 文件名
其中 -rwxr-x---
为文件权限,后面的数字为 链接,此处不做重点。后面跟的两个英文单词第一个是文件所有者,第二个是所属群组。最后是文件大小(KB),修改日期,文件名。
对 -rwxr-x---
进行研究,将其分为四组:
- 第一个字符
-
。此处-
指文件,其他常见的有 -
d
指目录。最后的名字为目录名 -
l
类似 windows 下的快捷方式 -
b
外置储存装置 -
c
串行端口设备,如鼠标键盘 - 此后连续三个字符
rwx
分为一组。其代表 user 的权限,则该位置的rwx
代表文件所有者 ming 有读写执行该文件的权限。 - 再此后连续三个字符
r-x
分为一组。其代表文件所属 group 的权限,-
出现在 w 的位置上说明没有 w 的权限。则该串字符代表文件所属群组 minghome 内所有成员有读取内容和执行的权限。 - 最后三个字符
---
分为一组。其代表 others 的权限。-
出现在 rwx 的位置上,说明没有 rwx 的权限。则该串字符代表其他人对此文件没有读取修改执行的权限。
五. 修改所有者和权限
- 修改所有者和群组: chown new_user:new_group filename
- 修改权限 chmod 763 filename
Tips:
若想对整个文件夹下所有文件进行修改,可以添加递归命令 -R
数字 763 的含义:定义 r 为 4, w 为 2, x 为 1,
- 数字第一位 7 代表 user 的权限,7 = 4 + 2 + 1,意思为修改 user 权限为 rwx
- 数字第二位 6 代表 group 的权限,6 = 4 + 2,意思为修改 group 权限为 rw-
- 数字第三位 3 代表 others 的权限,3 = 2 + 1,意思为修改 others 权限为 -wx
Example:
问:chmod -R 777 test
的含义?
答:将文件夹test下所有文件的权限修改为 rwx
六. 其他
刚开始折腾 VPS 的时候经常遇到 permission denied 的问题,每次都要从为知笔记找命令来修改权限。太烦啦,于是下定决心把这里搞明白。本文做《鸟哥的 linux 的私房菜基础学习篇·第三版》第六章的笔记,耗时一个半小时完成。