【Linux】聊聊Linux下的文件权限管理

【Linux】聊聊Linux下的文件权限管理

Hello 各位小伙伴大家好。

本期是本公众号的第20篇原创文章~~
在这里插入图片描述
六月份营业至今,粉丝数也从0慢慢涨到了100多~
在这里插入图片描述
虽然不多,但也给我提供了满满的学习动力,自己也学到了很多东西!

写公众号是今年最开心的事,哈哈~~
在这里插入图片描述
然后,今天是填坑的一天(很久之前说过要写一期Linux文件权限管理…)

让我们一起来看看吧~


一、基本权限UGO

1、权限的基本概念

首先我们来看看文件有哪些权限属性:
在这里插入图片描述
文件有三种权限属性,分别是r(读),w(写),x(执行)

权限,代表了指定用户能以哪种方式访问文件。

文件又有三组权限,举个栗子:
在这里插入图片描述

对于file1.txt,有三组权限,首先是属主权限rwx,只对属主alice账号生效。说明alice对该文件有rwx的全部权限。

然后是属组权限rw-,对hr用户组生效,hr组内的所有用户对该文件都有读写权限。

最后是其他人权限,仅有读取权限,对除去属主和属组用户外的所有用户生效。

因此权限的对象一共有三种,分别是U(属主)、G(属组)、O(其他人)。

在这里插入图片描述

对于用户和用户组的介绍,也写过一期,没看过的小伙伴可以阅读一下:

【Linux】Linux用户与用户组那些事

不同的权限,对文件的影响如下:

权限对文件的影响对文件夹的影响
r(读)可以读取文件的内容可以列出目录的内容
w(写)可以更改文件的内容可以删除、创建目录中的任意文件
x(执行)可以作为命令执行文件可以访问目录中的内容

2、权限的基本配置
在这里插入图片描述
(1)chown 更改属主与属组

同时修改属主和属组:
在这里插入图片描述
只修改属主:
在这里插入图片描述

只修改属组:
在这里插入图片描述

(2)chgrp 修改文件属组
在这里插入图片描述
//如果是文件夹,加上-R参数,会同时修改目录及目录下的所有文件的权限


(3)chmod 更改文件权限

u+x 为属主增加执行权限:
在这里插入图片描述

为属组、其他人分别增加写入、执行权限:
在这里插入图片描述

a=rwx 所有人增加读写执行权限:
在这里插入图片描述
a=- 取消文件所有权限
在这里插入图片描述

还可以通过数字的方法修改,r=4,w=2,x=1,例如:
在这里插入图片描述

(3)小结

  • 对目录有 w 权限,可以在目录中创建新文件,可以删除目录中的文件(跟文件权限无关)
  • 文件: x 权限小心给予
  • 目录: w 权限小心给予
  • root有所有权限,设置权限对root没意义

二、高级权限

1、suid权限(属主权限)

如果我们想修改账号的用户密码,会使用passwd命令,如alice账号修改密码:
在这里插入图片描述

passwd文件其实是操作的shadow文件,该文件权限如下:
在这里插入图片描述

可以看到,只有root账号能对它进行操作,那么alice的写操作是怎么执行成功的?

继续使用alice在后台运行passwd命令,查看进程:
在这里插入图片描述
会发现是root账号在执行此操作,因此修改成功了。

再看看passwd命令是执行的哪个文件:
在这里插入图片描述
会发现passwd文件的执行权限为s,这就是alice成功修改密码的原因。

suid权限,标记为s,代表让任何账号执行该程序时,身份都以文件所有者身份(此处为root)进行执行。

因此,虽然操作者是alice,但执行者其实是root账号。

chomd u+s ,为文件增加suid权限:
在这里插入图片描述

2、sgid权限(属组权限)

为目录添加sgid权限后,后续目录中创建的新文件会继承目录的属组。

例如为alice目录添加sgid权限:
在这里插入图片描述
我们用root账号在alice文件夹中创建目录test:
在这里插入图片描述
属主继承alice,而不是root组。

创建普通文件,结果也相同:
在这里插入图片描述

3、sticky权限(对目录)

针对目录添加sticky权限后,就只有目录的属主可以删除目录中的文件了。

即使其他用户对其中的文件有rwx权限,也无法删除进行。

我们为alice目录添加sticky权限,并修改权限为777:
在这里插入图片描述
使用alice账号,在该目录创建test文件,并修改权限为777:
在这里插入图片描述

切换到Jack账号,尝试删除test文件:
在这里插入图片描述

虽然文件权限为777,但仍然无法删除。

那么谁可以删除带sticky权限的目录中的文件呢?

答案是:root账号、文件的属主、目录的属主


三、访问控制ACL

1、ACL基本操作

UGO权限不能对实现对单一账户进行灵活授权,还可以使用ACL来对特定账户授权。

file2文件的权限如下,属主为root,其他账户只有r权限:
在这里插入图片描述

假设针对该文件,我们想给alice用户读写执行权限,就需要使用ACL了。

(1)setfacl 设置ACL权限:
在这里插入图片描述
//带acl配置的文件,会有个+号

(2)getfacl 查看ACL权限
在这里插入图片描述
可以看到,给alice账号单独添加了rwx权限。


(3)mask属性

ACL还可以用于临时降低用户或组的权限(不包括属主、和other用户),mask属性代表了这些用户的最高权限。

getfacl查看ACL,mask默认为rwx,不影响用户:
在这里插入图片描述
我们将other的权限置空,并修改mask值为空:
在这里插入图片描述

会发现alice和group的实际权限(effective)均为空了。

如果没将other权限也设置为空,alice的权限就为other的权限,因为mask不对other用户生效。

另外,如果此时有任何ACL修改行为,mask又会复原,解除限制,因为mask只是个临时行为。


好啦,以上就是今天的全部内容了。
在这里插入图片描述
同时,欢迎关注我的个人微信公众号~

Peace !

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值