Linux基础之权限管理

Linux基础之权限管理

一、基本权限:

1、基本用户与基本权限

(1)基本用户
  1. U:owner为属主
  2. G:group为属组
  3. O:other为其他用户
(2)基本权限
  1. r:read读权限,数字设定4
  2. w:write写权限,数字设定2
  3. x:execute执行权限,数字设定1

2、基本权限操作

(1)修改文件权限:chmod

描述:修改文件或目录权限
在这里插入图片描述

用法:

  1. chmod [{ugoa}{±=}][文件或目录]
  2. chmod[421][文件或目录]
  3. -R 递归修改
  4. 可以连写,中间用逗号隔开
举个栗子:
1.初始状态:

在这里插入图片描述

2.修改权限方法1:

在这里插入图片描述

3.修改权限方法2:将修改的权限改回原来的权限

因为rwx分别有代表数字4,2,1;所以也可以通过设置数字代表具体权限。rwx = 4+2+1=7,rw=4+2=6,rx=4+1=5, r=4,wx=3,w=2,x=1;
在这里插入图片描述

4.将a目录下所有文件权限统一改成和a目录一样的。

初始状态:
在这里插入图片描述
递归修改:
在这里插入图片描述

注意:只有root用户及文件所有者才能修改权限,如果当前目录允许普通用户进行操作(rwx或者wx),无论当前目录下文件是否允许操作,都可以被其他用户操作。
(2)修改文件所有者:chown
用法:
  1. chown [文件主.文件组] [文件或者目录] 可以同时修改文件主和文件组
  2. chown[文件主:文件组] [文件或者目录] 可以同时修改文件主和文件组
  3. chown[文件主] [文件或者目录] 修改文件主
举个栗子:

在这里插入图片描述

(3)修改文件所属组:chgrp
用法:

chgrp [用户组] [文件|目录]
在这里插入图片描述

(4)设置创建文件默认权限:umask

功能描述:显示、设置文件的缺省权限

备注:
  1. umask :以反码形式显示文件权限
  2. umask -S :显示文件权限
  3. umsk [反码数字]:设置默认权限。
  4. 文件默认为0022;目录文件:rwxr-xr-x,普通文件:rw-r–r–(因为系统默认不让其他用户进行操作所以所有用户都不让执行文件)

在这里插入图片描述

举个栗子:

将默认目录权限设置为rw-r–r–
在这里插入图片描述

二、ACL权限

因为linux中基本权限只有三个,ACL 权限是为了解决身份权限不足的情况,可以针对单一文件进行单一用户的权限设置。

1、getflac [文件|目录] :查看该文件的ACL权限

2、setfacl [选项] [文件名|目录] : ACL权限管理

选项说明:
  1. -m :设定ACL权限:setfacl -m u:[用户名]:[权限] [文件名]
  2. -R :递归设定目录内的所有文件:serfacl -m u:[用户名]:[权限] -R [文件名]
  3. -x:删除指定用户的ACL权限:setfacl -x u:[用户名][文件名]
  4. -g:删除指定用户组所有的ACL权限:setfacl -g:[组名][文件名]
  5. -b:删除文件的所有ACL权限:setfacl -b[文件名]
  6. -d:设定继承的ACL权限(给父目录加上继承后,创建的新文件会继承该权限):serfacl -m du:[用户名]:[权限] -R [文件名]
  7. -k:删除继承的权限
举个栗子:

创建文件,创建用户,创建组,将用户加入组,将文件组改为创建组,创建用户,设置acl权限即可。
在这里插入图片描述
在这里插入图片描述
检验:
在这里插入图片描述

3、组设定ACL权限:

命令:setfacl - m g:[组名]:权限 [文件|目录]

4、高级特性:最大有效权限mask

mask的作用是指定最大权限,mask值与acl权限相与的到的才是acl用户的真正ACL权限。
命令:setfacl -m m:权限 [文件]或者 setfacl -m mask::权限 [文件]

在这里插入图片描述

举个栗子:

在这里插入图片描述

5、删除ACL权限

命令:
  1. 删除指定用户的ACL权限:setfacl -x u:[用户名][文件名]
  2. 删除指定用户组的ACL权限:setfacl -x g:[组名]【文件名】
  3. 删除文的所有ACL权限:setfacl -b [文件名]

6、递归ACL权限

父目录在设定ACL权限时,所有的子目录和子文件也会拥有相同的ACL权限

命令:setfacl -m u:[用户名]:权限 - R [目录名]

7、继承ACL权限

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

命令:setfacl -m d:u:[用户名]:[权限][目录名]

三、高级权限

1、SUID权限

使用背景:
  1. 只有可以执行的程序才能设定SUID权限
  2. 命令执行者需要对程序拥有x权限
  3. 命令执行者在执行程序时获得该程序文件属主的身份
  4. SUID只在该程序执行过程中有效,即身份改变只在程序执行过程中有效。
命令:
  1. SUID设置:chmod 4755 [文件名] #4代表SUID,755还是基础权限随意设定
  2. SUID设置:chmod u+ s [文件名]
  3. SUID权限取消:chmod 755 [文件名]
  4. SUID权限取消:chmod u-s[文件名]
举个栗子:

从下图中可以看到passwd权限中,有一个s权限,这就代表着suid权限,passwd其实就是修改/etc/shadow配置文件中的内容,通过ll命令可以看到shadow权限都是-,普通用户时不允许查看修改该文件的,但是普通用户是可以修改自己密码的,这就是因为passwd中通过使用SUID 权限使用的root身份修改的/etc/shadow里面内容。
在这里插入图片描述

2、SGID权限

作用:继承属组(继承父级的所有组)
命令:
  1. chmod 2755 [目录] #2代表SGID,755还是基础权限随意设定
  2. chmod g+s [目录]
  3. SGID取消:chmod g-s [目录]
注意:设定了SGID权限后,目录下新建的文件属组才会继承父级的属组,在设置SGID前建立的文件不会继承,删除了SGID后,原本继承的属组也不会消失。

3、Sticky

说明:
  1. 只针对目录生效
  2. 如果加了该权限,普通用户需要对该目录具有w和x权限,即普通用户可以在此目录内写入文件;
  3. 如果没有该权限,普通用户只要拥有w和x,就能随意删除目录下的所有文件,包括其他用户的文件;
  4. 赋予某个目录的Sticky权限后,普通用户只允许删除所有者为自己的文件,root用户还是可以随意删除。
命令:
  1. chmod 1755 [目录] #1代表Sticky
  2. chmod o+t [目录]
  3. Sticky取消 chmod o-t [目录]
举个栗子:tmp文件就是拥有Sticky权限的(基础权限后的t表示拥有该权限)

现在tmp文件是给所有用户所有权限的,test文件也是,但是其他用户还是没法删除。此时只能删除该用户自己的文件,不是自己的文件不能删除。
在这里插入图片描述

4、文件属性chattr

补充 lsattr:查看文件隐藏属性。
  1. lsattr -a :显示所有文件和目录的隐藏属性
  2. lsattr -d:若是目录,仅列出目录本身的属性,不包括子文件的隐藏属性
修改文件隐藏属性
命令:chattr [±=] 选项 文件或目录名
选项:
  1. i:设置文件i隐藏属性,不允许对文件进行删除、改名、添加及修改数据;设置目录i属性,不允许在目录中创建及删除文件
  2. a:设置文件a隐藏属性,只能在文件中增加数据,不能删除及修改数据;设置目录a属性,只允许在目录中建立文件,而不能删除文件。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值