Linux中的核心思想便是”一切皆文件”,所以对于文件的相关权限控制,也要十分的清楚.
Linux文件的权限控制和用户的管理也是有着十分重要的联系,相了解linux下有关用户的内容可以看看我的往期文章:https://blog.csdn.net/qq_59369367/article/details/121474887?spm=1001.2014.3001.5501https://blog.csdn.net/qq_59369367/article/details/121474887?spm=1001.2014.3001.5501
普通权限:
常见的文件标识字符:
-:普通文件
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
在Linux中每个文件都有所属的所有者和所属组.,并且规定了文件的所有者,
使用ll命令,所能看到最前的字符表示的信息便是文件的权限表示.
文件的主要权限如下表:
权限分配 | 文件所有者(属主) | 文件所属组(属组) | 其他人 | ||||||
权限 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字母表示 | r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
这里的文件所有者,属组,和其他人的权限之间没有关联关系,都是独立的权限.
对于目录权限:
可读:表示能够读取到这个目录的结构,能够看到目录下有什么
可写:表示能够在该目录下创建,修改文件或目录等操作,
可执行:表示能够进入该目录,也就是cd命令能够进入.
文件权限的数字表示是相互独立,不能进行加和.因为:文件所有者,属组,和其他人的权限之间没有关联关系,都是独立的权限.所以,全部权限只能表示为 777 而不是7+7+7=21.
文件的特殊权限
SUID:
是一种针对二进制文件程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限,(仅对拥有执行权限的二进制文件的程序有效.)
使用chmod命令设置权限后,
在使用ll命令,可以看到原本x的位置变成了s,如果原先没有可执行权限则是S.
SGID:
主要实现一下两个功能:1.让执行者临时拥有属组的权限,2.在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)
SBIT(特殊权限位):
主要作用是确保用户只能删除自己的文件,而不能删除其他用户的文件,
使用chmod命令设置权限后,
在使用ll命令,可以看到原本x的位置变成了t, 如果原先没有可执行权限则是T.
文件的隐藏权限:
chatt命令:
该命令用于设置文件的隐藏权限,格式为”chattr [参数] 文件”.如果要添加某一个隐藏功能,则需要在命令后追加 “+参数”.即可.
参数 | 作用 |
i | 无法对文件进行修改,;若对目录设置该参数,则仅能修改其中的子文件内容,而不能新建或删除文件 |
a | 仅允许补充(追加内容),不能覆盖内容 |
S | 文件内容再修改后立即同步到硬盘 |
s | 彻底从硬盘中删除,不可恢复. |
A | 不能修改文件或目录的最后访问时间. |
b | 不再修改文件或目录的存取时间 |
D | 检查压缩文件中错误 |
d | 使用dump命令备份时忽略本文件/目录 |
c | 默认将文件或目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便恢复 |
t | 让文件系统支持尾部合并 |
x | 可以直接访问压缩文件中的内容 |
lsattr命令
命令用来查看文件隐藏权限,格式: lsattr 【参数】 文件。
在Linux系统中,文件隐藏权限只能用lsattr命令,普通的ls命令是看不出来的。