前言:在此之前我们学习了一些常用的Linux指令,今天我们进一步学习Linux下权限的一些概念
博主CSDN主页:卫卫卫的个人主页
专栏分类:Linux的学习
代码仓库:卫卫周大胖的学习日记
关注博主和博主一起学习!一起努力!
在上一篇文章中我们详细的讲解了如何从普通用户切换成超级用户如果有不懂的可以去看一下上一篇文章Linux下基本指令
对于任意一个文件在被创建出来的时候就会将未来的访问者分为三类:拥有者、所属组、其它用户(other)
符号 | 文件类型 |
---|---|
- | 表示普通文件 |
d | 表示目录 |
l | 表示符号链接 |
b | 表示块设备文件 |
c | 表示字符设备文件 |
s | 表示套接字 |
p | 表示管道 |
Linux系统中,文件的权限属性分为三类:r(读-4)、w(写-2)、x(可执行-1)
字符表示:
权限符号 | 说明 |
---|---|
r – – | 只读 |
– w – | 仅可写 |
– – x | 仅可执行 |
rw – | 可读可写 |
– wx | 可写可执行 |
r – x | 可读可执行 |
rwx | 可读可写可执行 |
– – – | 无任何权限 |
8进制数值表示:
权限符号 | 八进制 | 二进制 |
---|---|---|
r – – | 4 | 100 |
– w – | 2 | 010 |
– – x | 1 | 001 |
rw – | 6 | 110 |
– wx | 3 | 011 |
r – x | 5 | 101 |
rwx | 7 | 111 |
– – – | 0 | 000 |
chmod指令
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
符号模式 | 说明 |
---|---|
u | 代表所有者权限 |
g | 代表组的权限 |
o | 代表其他用户权限 |
a | 代表所有权限 |
+ | 增加权限 |
- | 移除权限 |
= | 设置权限 |
示例一:
对文件的其它人增加执行和写的权限
示例二:
去掉文件的所属组的写的权限
示例3:
使用三位八进制数字
示例4:
对整体指令进行修改
这里再次强调,无论开放与不开放权限,root都可以为所欲为
chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
-R:递归地更改目录及其所有子目录中的文件的所有者和所属组。
-h:如果目标文件是符号链接,则会改变链接本身的所有者和所属组,而不是链接所指向的文件的所有者和所属组。
注意:要执行chown命令,您需要对目标文件或目录具有合适的权限。只有文件或目录的所有者或超级用户(root用户)才能更改其所有者和所属组。
[wei@Centos ~]$ chown user1:group1 file.txt
#将文件file.txt的所有者更改为user1,所属组更改为group1。
[wei@Centos ~]$chown -R user1:group1 directory/
#递归地更改目录及其所有子目录中的文件的所有者和所属组
#将目录directory及其所有子目录中的文件的所有者更改为user1,所属组更改为group1
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
注意:要执行chgrp命令,您需要对目标文件或目录具有合适的权限。只有文件或目录的所有者或超级用户(root用户)才能更改其所属组。
[wei@Centos ~]$ chgrp group1 file.txt
#chgrp group1 file.txt
[wei@Centos ~]$chgrp -R group1 directory/
umask
功能:查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式: umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
最终权限 = 默认权限 & (~umask)
实例演示unmask的修改:
[wei@Centos ~]$ umask 755
[wei@Centos ~]$ umask
0755
[wei@Centos ~]$ umask 044
[wei@Centos ~]$ umask
0044
刚刚我们了解了普通文件的rwx可读可写可执行,现在来看看目录的rwx的含义:
在Linux中,粘滞位(Sticky Bit)是一种特殊的文件权限设置,它可以应用在目录上。当一个目录被设置了粘滞位后,只有目录的所有者和超级用户可以删除或重命名目录中的文件,其他用户只能删除或重命名自己所拥有的文件。
粘滞位主要用于公共目录,例如/tmp,以确保其他用户无法删除或篡改其他用户的文件。下面是在Linux中使用粘滞位的方法:
[wei@Centos ~]$ chmod +t 目录名称
[wei@Centos ~]$chmod +t /tmp
需要注意的是,粘滞位只能应用于目录,而不能应用于文件。另外,设置粘滞位的操作需要超级用户权限。
结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。