目录
1.Linux权限管理
1.1文件访问者的分类
1.2文件的类型和访问权限
1)文件类型
2)文件访问权限
3)chmod指令
4)chown指令
编辑
5)chgrp命令
1.3目录权限
1.4粘滞位
1.5umask(权限掩码)
1. umask的作用
2. umask的默认值
1.6总结
1.Linux权限管理
1.1文件访问者的分类
这种分类方式使得权限管理更加灵活和精确,可以根据不同的用户群体,设置不同的访问权限。
-
文件所有者(User,u):创建文件或目录的用户,对文件或目录拥有最高级别的权限。
-
文件所有者所在的组的用户(Group,g):与文件所有者属于同一用户组的成员,拥有一定的权限,但通常低于文件所有者。
-
其他用户(Others,o):不属于上述两类的其他用户,权限通常最为有限。
创建的文件和目录会显示所有者和所属组,判断用户是那种访问者从左往右判断,比如:现在来了一个用户Jack,对于code这个目录来说,1)先对比所有者,他不是Test,所以不是所有者,2)再对比所属组,他也不是Test,所以他不是所属组,说明他说其他用户。
1.2文件的类型和访问权限
1)文件类型
- d:文件夹
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
上图说明code和dir1是文件夹其他都是普通文件
2)文件访问权限
- r:读权限
- w:写权限
- x:可执行权限
这些基本权限通过不同的组合,形成了复杂的权限设置,满足了各种不同的需求。
字符表示法直观地展示了文件的权限,例如:
-
rwxr-xr-x
表示文件所有者拥有读、写和执行权限,文件所属组的用户拥有读和执行权限,其他用户也拥有读和执行权限。
3)chmod指令
chmod
命令用于设置文件的访问权限。
字符设置方式:通过用户表示符(u、g、o、a)和权限字符(r、w、x)来设置权限。例如,chmod u+x filename
表示为文件所有者添加执行权限。
注意:只有文件的所有者和root才可以改变文件的权限
用户表示符+/-=权限字符
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限
用户符号:
- u:所有者
- g:所属组
- o:其它用户
- a:所有用户
对于root用户不受上面的权限约束
我们还可以用8进制数值表示文件的权限
每组权限可以通过将对应的数值相加来表示:
-
rwx
:读、写、执行权限,二进制为111 = 7 -
rw-
:读、写权限,二进制 110= 6
-
r-x
:读、执行权限,二进制 101= 5
-
r--
:读权限,二进制 100 =4
-
-wx
:写、执行权限,二进制 011= 3
-
-w-
:写权限,二进制 010 = 2 -
--x
:执行权限,二进制 001 = 1 -
---
:无权限,二进制 000 =0
4)chown指令
chown
命令用于修改文件的所有者。例如,chown user1 filename
表示将文件的所有者修改为用户user1。
5)chgrp命令
chgrp
命令用于修改文件所属的用户组。例如,chgrp group1 filename
表示将文件所属的用户组修改为group1。chgrp操作同上。
1.3目录权限
- 可执行权限(x): 如果目录没有可执行权限, 则无法cd到目录中.
- 可读权限(r): 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
- 可写权限(w): 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
剩下的就不一一演示
只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写 权限. 这好像不太科学啊, 我张三创建的一个文件, 凭什么被你李四可以删掉?为了解决这个不科学的问题, Linux引入了粘滞位的概念。
1.4粘滞位
当目录被设置了粘滞位(通过chmod +t
命令)后,该目录下的文件只能由以下三种用户删除:
-
超级管理员(root)。
-
目录的所有者。
-
文件的所有者。
这种设置有效防止了其他用户误删不属于自己的文件,增强了系统的安全性。
在根目录下创建目录share_test,这个目录对于其他者来说能读(查看目录中的文件内容)、写(可以在目录中创建和删除文件)、执行(进入)
让Test用户进入该目录并创建test.txt文件
让wrf用户进入该目录下,他能删除该文件
为了避免这种情况,要让该目录设置粘滞位
设置了粘滞位之后,wrf用户在该目录下创建了wrf_test.txt文件,Test用户进入该目录想删除这个文件就删不了了
1.5umask(权限掩码)
umask
是一个系统设置,用于定义用户创建文件和目录时的默认权限。它的作用是从最大权限中减去一定的权限,从而生成实际的默认权限。简单来说,umask
定义了用户在创建文件或目录时,哪些权限是不允许的。
1. umask的作用
-
控制默认权限:当用户创建文件或目录时,系统会根据
umask
值来设置文件或目录的初始权限。 -
增强安全性:通过限制文件和目录的默认权限,防止用户创建过于宽松权限的文件或目录,从而减少安全风险。
2. umask的默认值
-
超级用户(root):默认
umask
值通常是022
。 -
普通用户:默认
umask
值通常是002
。
新建文件夹默认权限=0666,新建目录默认权限=0777,但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & (~umask)。
1.6总结
Linux权限管理是系统管理的核心内容之一。通过合理的用户分类、文件访问者分类、文件类型和基本权限的设置,以及灵活的权限设置方法和特殊权限的应用,可以有效地保障系统的安全性,同时满足不同用户的需求。