参考博客: 内容均整合自以下博客
Linux下用户组、文件权限详解
Linux 入门记录:十二、Linux 权限机制
一、权限
- 权限是操作系统用来限制资源访问的机制,权限一般分为读、写、执行。
- 系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
二、文件权限
权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
r(读取) | 可读取文件内容 | 可列出目录内容 |
w(写入) | 可以修改文件内容 | 可在目录创建、删除文件 |
x(执行) | 可以作为命令执行 | 可访问目录内容 |
- 很多时候,执行权限 “x” 对于目录而言也叫浏览权限。仅有 “r” 权限是无法查看目录内容的(因为连访问都做不到)。
三、UGO模型
1、Linux 权限基于 UGO 模型进行控制:
- U 代表 User,是文件或文件夹所属用户的权限;(所有者,一般为文件的创建者)
- G 代表 Group,是文件或文件夹所属组的权限;(所在组:创建者所在的组就是文件所在组)
- O 代表 Other,是其他用户对文件或文件夹的权限(其他组:除了文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组)
- 每一个文件的权限基于 UGO 模型进行设置,权限三个一组(rwx),对应 UGO 分别设置(总共有 3 个组 9 个权限)
2、命令 ls -l
可以查看当前目录下所有文件的详细信息:
其中每一行的内容如下:
-
第一列 (-rw-rw-r–) 表示文件权限:
-
第1位是文件类型描述符,“d"表示目录,”-"表示文件,"l"表示链接(截图这里没有)
-
第2-4位"rwx"是U模型权限(所有者),可读可写可执行
-
第5-7位"rw"是G模型权限(所在组),可读可写,不可执行
-
第8-10位"r-x"是O模型权限(其他组),可读可执行,不可写
-
也可用数字表示:r=4,w=2,x=1 因此rwx=4+2+1=7
-
-
第二列 表示链接数(可以参考这里)
-
第三列 所有者
-
第四列 所在组
-
第五列 大小
-
第六列 最后修改日期
-
第七列 文件名或目录名
三、权限修改
命令 chmod 用以修改文件的权限:
chmod mode filename
mode 参数格式如下:
u、g、o 分别代表用户、组、其他
a 代表ugo
+、- 代表加入或删除对应权限
r、w、x 代表三种权限
-R 递归地修改
示例:
chmod u +rw test.md 给文件的所属用户添加rw权限
chmod g -x test.md 给文件的所属组移除x权限
chmod go +r test.md 给文件的所属组和其他用户添加r权限
chmod a -x test.md 给文件的所属UGO三个模型均移除x权限
命令 chmod 也支持以三位八进制数值的方式修改权限,rwx 权限值分别由数字表示如下:
r = 4 (2 ^ 2)
w = 2 (2 ^ 1)
x = 1 (2 ^ 0)
使用数字表示权限时,每组权限分别为对应数字之和:
rw = 4 + 2 = 6
rwx = 4 + 2 + 1 = 7
r-x = 4 + 1 = 5
所以,使用数字表示 UGO 权限时,可以用如下方式表示:
chmod 660 test.md 设置 UGO 权限为 rw-rw----
chmod 775 test.md 设置 UGO 权限为 rwxrwxr-x
四、用户、组修改
命令 chown 用以改变文件的所属用户:
chown username filename
常用参数:
-R 归地修改目录下所有文件的所属用户
命令 chgrp 用以改变文件的所属组:
chgrp groupname filename
常用参数:
-R 递归地修改目录下所有文件的所属组
示例
chown zhangsan test1 改变test1这个文件的所有者为zhangsan
chown root ./test2:改变test2这个目录的所有者是root
chown ‐R root ./test3:改变test3这个目录及其下面所有的文件和目录的所有者是root
chgrp root test3 改变test3这个文件的所在组为root
...