Linux文件权限及ACL控制

目录

 

1、文件权限相关

1.1、相关概念

1.2、chmod命令(权限修改)

1.3、chown(改所有者/所属组) chgrp(改所属组)-à身份修改

1.4、默认权限和反掩码umask

1.5、特殊权限位(SUID/SGID/Sticky bit)

1.5.1、SUID

1.5.2、SGID

1.5.3、Sticky bit (粘滞位)

1.5.4、写保护特殊权限(硬写保护+i和软写保护+a)

2、使用ACL控制对文件的访问

2.1、查看(getfacl命令)

2.2、设置(setfacl命令)

2.2.1、针对文件:(后面的rwx也可以替换成八进制数字0-7)

2.2.2、针对目录

2.3、删除FACL记录


 

1、文件权限相关

1.1、相关概念

è定义:一个用户(或组)针对一个目录或者文件具备什么样的操作权限。

è身份:一个用户对于一个文件或者目录而言,是一个什么样的角色。

è身份分类:

文件的所有者(拥有者)owner

所属的同组用户 group

其他人 other

è权限:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

r: Readable 可读——能够读取文件或者目录内容的权限,用八进制数字4表示

w:Writeable 可写——能够修改文件或者目录的内容,用八进制数字2表示

x:Executable ——针对文件而言,x 叫可执行;针对目录而言,x是否能够成为一个用户的工作目录(简而言之就是能不能cd切换进去),用八进制数字1表示

 

tips:

  1. root用户是超级管理员,但root组是普通组
  2. 创建一个新文件或目录时,这个文件或目录的拥有者和拥有组,分别是创建这个文件的用户和这个用户的主要组。
  3. 对于文件的权限设定:
  1. r表示可读取文件内容
  2. w 表示可修改文件内容
  3. x 表示文件可执行
  1. 对于目录的权限设定:

r表示可用ls命令查看目录下的文件列表

w表示可在目录下创建、删除文件

x表示可以通过cd命令进入目录

 

 

 

1.2、chmod命令(权限修改)

记号法:rwx

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

数值法:r→4 w→2 x→1,每个位置的数字为赋予的权限和(八进制)。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

1.3、chown(改所有者/所属组) chgrp(改所属组)-à身份修改

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

>> 改所有者 chown test1

>> 改所属组 chown :test1 = chgrp test1 = chown .test1

>> 同时修改所有者和所属组 chown test1:test1 = chown test1.test1

>> 递归修改(对目录生效)chown/chgrp -R

 

1.4、默认权限和反掩码umask

默认权限

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

一个目录的创建权限等于:满权限(777)-umask值,即777-022=755

一个文件的创建权限等于:满权限(666)-umask值,即666-022=644

注意:基于系统安全考虑,Linux 系统默认文件一开始不能有执行权限。

 

反掩码

>>为何创建文件夹时权限755,创建文件时权限644?是因为有一个默认属性在起作用,即umask(反掩码)

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

>>root用户和普通用户的反掩码值不一样的(查看/etc/profile文件)

UID >=200:0002

UID < 200:0022

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

>>修改umask值:

a、临时修改:umask XXX

b、永久修改:vim /etc/profile,修改后需要source /etc/profile之后永久生效。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

1.5、特殊权限位(SUID/SGID/Sticky bit)

1.5.1、SUID

 

普通用户能不能修改自己的密码?(能)

修改密码,最终是修改哪个文件(/etc/shadow)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

既然无权限,普通用户是怎样把密码写进去的呢?这里要看看普通用户修改密码执行的是哪个二进制文件(passwd)。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

普通文件:rwx  带SUID的文件:rws

SUID:当一个s权限出现在文件所有者的x位上

作用:当一个普通用户(如student)去执行一个带有SUID的二进制文件(passwd),那么这个用户(student)在执行过程中,会暂时获得这个二进制文件(passwd)的拥有者(root)的权限,后续操作比如修改密码(passwd)的时候,会拿着(root)这个拥有

者的身份去执行,这个操作仅针对二进制文件生效。

原理:普通用户执行passwd → /etc/shadow → root身份去执行修改密码操作

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

Tips:如果是rwS,则本身文件是没执行权限的,仅仅获得了SUID功能而已,SGID同样适用。

操作方法:chmod u+s filename(chmod 4XXX filename)

 

1.5.2、SGID

SGID:当一个s权限出现在所属组的x位上

1)针对二进制文件:文件执行过程中获取文件属组的权限。

2)针对目录:

默认情况下,我们新建一个文件或目录的时候,它的属组是当前用户的初始组。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

加上SGID之后,其下新建的目录及文件会继承该目录的所属组。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

操作方法:chmod g+s filename/dirname(chmod 2XXX filename/dirname)

 

1.5.3、Sticky bit (粘滞位)

 

Sticky bit:仅对目录生效,若该目录其他人的执行权限出现了t,那么该目录下的子文件或目录,仅文件夹所有者及root用户能删除。

tips:

  1. 粘滞位权限只能针对目录设置,对于文件无效。
  2. 设置了粘滞位权限的目录,使用ls命令查看其属性时,其他用户权限处的“x”将变为“t”,原本没有x执行权限则会被写成"T"

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

操作方法:chmod o+t dirname(chmod 1XXX dirname)

超级权限数值法:suid 4XXX / sgid 2XXX / sticky bit 1XXX

 

1.5.4、写保护特殊权限(硬写保护+i和软写保护+a)

操作方法:

修改命令:chattr +i/+a filename

查询命令:lsattr filename

 

+i:硬写保护,只能读不能写,不能删除

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

+a:软写保护,只能读不能写,不能删除文件及其原有内容,但是能通过重定向追加更新内容。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_15,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

2、使用ACL控制对文件的访问

使用的功能:文件访问控制列表(File Access Control List)

 

存在必要,原因之一默认的身份不够用

需求:

1、为了安全,不允许修改owner、group

2、 两组用户,group1 跟 group2 对文件的权限需要设置不同

2.1、查看(getfacl命令)

#getfacl filename/dirname

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

2.2、设置(setfacl命令)

参数解析:

-m,       --modify-acl 更改文件的访问控制列表

 

2.2.1、针对文件:(后面的rwx也可以替换成八进制数字0-7)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

2.2.2、针对目录

无递归情况下,FACL仅对当前目录生效:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

若采用递归设置(加上-R参数),则对子目录以及子文件同样生效:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

递归情况下:

-->使用 rwx:文件默认的mask(最大权限掩码)会根据所设的权限变成rwx

-->使用 rwX:默认的mask(最大权限掩码)不变,遵循默认权限设置(文件夹rwx,文件rw-)

 

对于特定组的权限设置:setfacl -m g:test4:rwx dir1

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

2.3、删除FACL记录

参数解释:

-x,       --remove=acl 根据文件中访问控制列表移除条目

-b,       --remove-all 删除所有扩展访问控制列表条目

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

10.3.1、删除单挑FACl记录(setfacl -x u/g:用户名/组名 文件名/目录名)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

10.3.2、删除所有FACL记录( setfacl -b 文件名/目录名, -R代表递归)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

10.4、mask(最大权限掩码)

命令格式

#setfacl -m m::权限 文件名/目录名

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

10.5、default(默认权限:仅针对于文件夹)

参数解释

-k,       --remove-default 移除默认访问控制列表

 

#setfacl -Rm d:u/g:名字:权限 目录名

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

删除默认权限:setfacl -k 目录名

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

 

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值