Linux文件权限管理

权限对象

1.文件拥有者(owner):
文件拥有者,也叫做文件的属主,因为Linux是一个多用户,多任务的操作系统,考虑到隐私,安全问题,所以会有这个极为重要的权限。
2.群组(group):
群组为权限中最有用的功能之一,类似于每一个班,每一个学院都是一个群组,群组内的资源是共享的,群组之间是相互隔离的。
3.其他人(others):
既不是文件的拥有者也不属于文件的属组,我们称为其他人。

权限类型

我们可以通过命令ls -al来显示文件的长属性:
在这里插入图片描述
其中前边的一串字母表示文件的类型和拥有的权限,后边第一个root代表属主,第二个root代表属组。
Linux的基本权限分为读,写和执行权限(r w x),分别用数组4,2,1来表示。
属主:用户若是文件的主人,则匹配属主的权限,权限在文件的左三位,即第一个rwx。
属组:用户也属组在同一个组,则匹配属组的权限,权限在中三位,即第二个rwx。
其他:若文件既不是属主也不是属组,则匹配其他权限,权限在文件的最后三位,即第三个rwx。
权限组合机制:
— 000 0
–x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5

r.w.x权限说明

对于文件
r权限:可以获取文件的数据
w权限:可以获取文件的数据
x权限:可以将文件运行为进程
对于目录
r权限: 可以使用ls命令获取其下的文件列表
w权限:可以在目录下创建或删除文件
x权限:可以cd到此目录中

文件权限的判断逻辑

删除文件: 判断目录有没有w权限

1、 先判断用户是以什么身份删除文件, ower—>group---->others
2、 判断用户是否为目录的属主。若是使用属主的权限位 看看权限位中有没有w权限
3、 如果不是属主,看是不是目录的属组,
4、 如果不是属主,则判断是不是oter
创建文件
修改文件:
1、先判断以什么身份修改
2、若是属主,判断文件权限的前三位有没有w
3、若是属组,判断文件权限的中三位有没有w
4、若是其他,判断文件权限中的后三位有没有w

进程的安全上下文:

进程对文件的访问权限应用模型:

进程的属主与文件的属主是否相同,如果相同,使用属主权限
否则,检查进程的属主是否与文件的属组相同,如果是,则应用属组权限
否则,只能应用other权限

权限管理命令

chmod [ OPTION] MODE FILE
MODE表示法:
赋权表示法:直接操作文件的所有权限位
u=
g=
o=
例:给文件file的属主用赋权表示法赋予rwx权限
在这里插入图片描述

授权表示法:直接操作一类用户的一个权限位
u+,u-
g+,g-
o+,o-
例:给目录dir的属组用授权表示法加上w权限
在这里插入图片描述
chown命令
用来修改文件或目录的属主或属组
例:将文件file的属主修改为Tom
在这里插入图片描述
chgrp命令:
用来修改文件的属组信息
例:将目录dir的属组更改为Jerry
在这里插入图片描述

基础权限ACL

ACL的全程是Access Control List(访问控制列表),一个针对文件/目录的访问控制列表。
ACL作为UGO权限管理的补充,ACL功能:
1.可以针对用户来设置权限
2.可以针对用户组来设置权限
3.子文件/目录继承父目录的权限

设置ACL:
getfacl:更方便的查看文件或目录的权限.属主.属组信息
在这里插入图片描述

setfacl: 针对用户和组来设定
-m:配置acl权限,不能和x结合使用
-R:递归配置
-d:默认的配置acl权限 对目录有效 而且是对目录下新建的文件或者目录有效
-x:删除acl权限
-b:清空acl权限参数

针对用户设置ACL权限

首先创建一个文件myfile,其属主权限为rw-,然后使用su命令切换到Tom用户,发现无权写入,这是因为文件的属主不是Tom用户,我们就要用到setfacl赋予Tom用户对myfile的写入权限。具体操作如下:
在这里插入图片描述
setfacl也可以进行权限的继承
在这里插入图片描述
这里可以看到权限多了一些default开头的行,这些default权限信息只能在目录上设置,然后会被目录中创建的文件和目录继承。
在这里插入图片描述
这里我们可以看到在dir目录下创建的文件mydir和目录dir2都已经继承了他们的父目录dir的权限。

删除,备份及恢复ACL权限

在这里插入图片描述

第一步备份ACL权限到文件dir.acl中,之后删除了dir的全部权限,之后用–restore命令将之前备份好的权限恢复回来。

权限掩码umask

在linux下创建一个文件或者目录之后可以通过chmod等命令进行权限设置,来达到给当前用户,用户组用户以及其他用户分配不同的访问权限。那么我们新创建的目录和文件本身也是有它的默认权限,这个默认权限就是由权限掩码umask来确定的。一般默认的权限掩码为0022。

在这里插入图片描述
文件的权限:666-umask
目录的权限:777-umask
注意:文件用666去减表示文件默认不能拥有执行权限;如果减得的结果中有执行权限,则需要将其加1。
umask值也可以自己进行设置
例:umask 0044
umask : 032
文件:666-032=633
目录:777-032=745
此类设定仅对当前shell进程有效。

文件特殊权限SUID,SGID,SBIT

SET UID
当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限为:”-rwsr-xr-x“,此时就被成为Set UID,简称SUID。
SUID的作用:
1.SUID权限仅对二进制程序有效;
2.执行者对于该程序需要具有x的可执行权限;
3.本权限仅在执行该程序的过程中有效;
4.执行者将具有该程序拥有者的权限;
如果属主原本有执行权限,显示为小写s;否则,显示为大写S;
SET GID
我们将属主上的s权限加到属组的x权限为上,就成为SUID。
注意事项:
1.SGID对二进制程序有用;
2.程序执行者对于该程序来说,需具备x的权限;
3.SGID主要用于在目录身上;
sticky Bit(SBIT)
SBIT是针对others来设置的,SBIT目前只针对目录有效,作用为:当用户在该目录下建立文件或目录时,仅有自己与root才有权限删除。
最具代表下的就是/tmp目录,任何人都可以在/tmp,内增加,修改文件,但仅有该文件/目录建立者与root能够删除自己的目录或文件。
注:这个SBIT对文件不起作用。
其他用户的执行权限位,若其原本用户有执行权限,显示为小写t;否则,显示为大写T;

SUID/SGID/SBIT权限设置

这个和rwx差不多,一种为字符,一种为数字。
4为SUID=u+s ,2为SGID=g+s , SBIT=o+t。

隐藏属性chattr,lsattr

linux下的文件还有一些隐藏的属性,我们可以用lsattr命令来查看:
lsattr aclfile
选项:
R:递归显示目录下所有目录和文件的属性
V:显示lsattr程序的版本信息
d:显示目录的属性,而不是目录下的文件属性。
注:文件的隐藏属性只对ext2/ext3/ext4文件系统完整性有效,其他文件系统可能仅支持部分隐藏属性或者根本不支持隐藏属性。
chattr:修改文件隐藏属性
选项:
A:文件的access time不可被修改
S:硬盘I/O同步选项
a:设定参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性
i:文件不能被删除,改名,设定链接关系,也不能写入或新增内容,即使是root用户也不行。
在这里插入图片描述
只要文件隐藏属性中有i ,root用户也不可删除。

以上为文件权限管理的相关内容,有任何问题欢迎大家在评论区互动。

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值