linux之文件系统权限

文件系统权限


第1个字符:表示该文件的类型,其类型标识符和对应的文件类型。
第2~4个字符:表示该文件的属主用户(文件的所有者)对该文件的访问权限。
第5~7个字符:表示该文件的属组用户(与属主用户同组的各成员用户)对该文件的访问权限。
第8~10个字符:表示其他所有用户对该文件的访问权限。
第11个字符:用来表示是否有一个可替换的访问控制措施应用在该文件上。当为一个空格时,表示系统没
有可替换的访问控制措施;当为“.”字符时,代表该文件使用了SElinux安全上下文,且未使用其他的访问控制
措施;当为“+”字符时,表示该文件在使用SElinux安全上下文的同时,还混用了其他访问控制措施(如:访问控制列表ACL)。
文件的权限针对三类对象进行定义
1.owner 属主,缩写u
2.group 属组,缩写g
3.other 其他,缩写o
每个文件针对每类访问者定义了三种主要权限
r:Read 读 w:Write 写 x:eXecute 执行
另 X:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)
注意:root账户不受文件权限的读写限制,执行权限受限制

对于文件和目录来说,r,w,x有着不同的作用和含义:
在这里插入图片描述

设置文件系统的一般权限

修改文件或目录的权限—chmod(change mode)命令

命令格式 1:chmod [-选项] [ugoa] [±=] [rwx] 文件或目录…
命令格式2:chmod [-选项] nnn 文件或目录

其中:
ugoa ——表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目录的属主(所有者);g(group)表示属组内的用户;o(others)表示其他任何用户;a(all)表示所有用户(即u+g+o)。

  • |-|= ——表示设置权限的操作动作,+代表添加某个权限;-代表取消某个权限;=表示只赋予给定的权限,并取消原有的权限。
    rwx ——用字符形式表示的所设置的权限,可以是其中字母中的一个或组合。
    nnn ——用三位八进制数字表示的所设置的权限。
    常用的选项有:
    -R ——递归修改指定目录下所有文件、子目录的权限。
    权限值的表示方法1——使用3位的八进制数表示:
    命令格式:chmod 数字 文件名
    在这里插入图片描述
    权限值的表示方法2——使用字符串表示
    chmod 用户对象 文件名
    用户对象+|-|=权限符
    用户对象
    u——拥有者
    g——拥有者所属的用户组
    o——其他用户 a——所有的
    +—增加某项权限
  • —去掉某项权限
    =—赋予某项权限。
    权限符——r、w、x、s
    若通过r、w、x、s表示方式来更改权限,则只需在chmod命令中表达出权限需要改变的部分即可,该方法可视为是相对修改法。

修改文件或目录的属主和属组—chown(change owner)命令

(1) 修改文件或目录的拥有者
命令格式 :chown [-选项] 新属主[:[新属组]] 被改变归属的文件或目录
-R——可递归设置指定目录下的全部文件(包括子目录和子目录中的文件)的所属关系。
用空格分隔列表中多个文件名或目录名
示例:将file1.txt文件的属主改为zhang3用户、属组改为li4用户。
(2)修改文件或目录的属组
命令格式:chown [-选项] :新属组 被改变归属的文件或目录
或者使用命令:chgrp [-选项] 新属组 被改变归属的文件或目录

> > 安全上下文(一类定义某个进程允许做什么的许可和权限的集合)
> 权限 特权 完整性等级、访问令牌
系统任何进程开始都保存为一个文件,由用户执行可执行文件后成为进程,而能否执行,取决于用户对可执行文件有没有权限,而程序一旦执行后转为进程,那么进程就与之前的可执行文件无关,进程的权限为进程发起者的权限,而进程能否访问某个文件,则取决于发起者是否有权限访问目标文件,而这一切就叫做安全上下文

判断发起者身份是否是文件的所属用户,如果是所属用户匹配所属用户的权限,不是,匹配是否是该文件所属组用户,如果是匹配租的权限,不是匹配其他用户的权限。

为什么系统默认创建文本文件是644
666 rw- rw- rw-
033 — -wx -wx
rw- r-- r–
目录文件 755 777 rwxrwxrwx

文件系统特殊权限

u+S g+S 0+t 如果执行位本身有执行权限特殊权限字符小写,如果本身没有特殊权限特殊权限大写)
u+s 仅对可执行文件生效,执行文件的进程用于取决可执行文件本身禁锢。
g+s 对于目录设置,对于指定目录的所属组禁锢,后期无论是哪些用户在该目录下创建文件,文件的所属组都是当前的所属组。 禁锢文件所属组 在其下面创建所有文件所属组禁锢。
0+t 仅对目录生效,目录只能在该目录下删除自己的文件,不能删除别人的文件。

设定acl权限

我们给指定的用户指定目录分配指定的权限,也就是 ACL 权限分配。

acl管理权限

[root@localhost ~]# getfacle 文件名 #查看ACL权限
[root@localhost ~]# setfacl 选项 文件名 #设定ACL权限
-m:设定 ACL 权限。如果是给予用户 ACL 权限,则使用"u:用户名:权限"格式赋予;如果是给予
组 ACL 权限,则使用"g:组名:权限" 格式赋予;
-x:删除指定的 ACL 权限;
-b:删除所有的 ACL 权限;
-d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限;
-k:删除默认 ACL 权限;
-R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效;

给用户和用户组添加ACL权限

①、给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名
②、给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名
注意:我们给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限“相与”之
后的权限才是用户的真正权限,一般默认mask权限都是rwx,与我们所设定的权限相与就是我们设定的
权限。

最大有效权限mask

给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限“相与”之后的权限才是用户的真正权限,一般默认mask权限都是rwx,与我们所设定的权限相与就是我们设定的权限。

setfacl -m m:权限 文件名

删除acl权限

删除指定用户的 ACL 权限
setfacl -x u:用户名 文件名
删除指定用户组的 ACL 权限
setfacl -x g:组名 文件名
删除文件的所有 ACL 权限
setfacl -b 文件名

递归 ACL 权限

通过加上选项 -R 递归设定文件的 ACL 权限,所有的子目录和子文件也会拥有相同的 ACL 权限

setfacl -m u:用户名:权限 -R 文件名

默认acl权限

如果给父目录设定了默认的 ACL 权限,那么父目录中所有新建的子文件会继承父目录的 ACL 权限

setfacl -m d:u:用户名:权限 文件名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值