玩转Linux与运维岗(18)

五、ACL访问控制

问题:我们学过的所有者身份包含哪些?

答案:ugo,属主,属组,其他。

问题:我们学过的文件权限包含哪些?

答案:rwx,读写执行,特殊s,t

玩转Linux与运维岗(18)_第1张图片
​ ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。

1、基本命令

getfacl命令:查看文件的ACL策略及权限

setfacl命令: 给文件针对某个用户或者某个组来增加(设置)ACL策略

2、getfacl命令

玩转Linux与运维岗(18)_第2张图片

3、setfacl命令

-m : 修改acl策略

-x :去掉某个用户或者某个组的权限

-b :删除所有的acl策略

-R :递归,通常用在文件夹

mask:mask定义除other和所有人(拥有者)外的最大权限

setfacl -m u:用户名:rwx /usr/local/shichangbu  给单个用户单独加权限

setfacl -m g:用户组名:rwx /usr/local/shichangbu   给单个组单独加权限

setfacl -x u:用户 /usr/local/shichangbu  去掉某个用户的权限
setfacl -x g:组名 /usr/local/shichangbu    去掉某个组的acl策略

setfacl -b -R /usr/local/shichangbu  删除所有的acl策略,递归子文件

例如:
setfacl -m u:user01:rw   file1 针对于单个用户给可读可写权限
setfacl -m g:sysadmin:rw file1 针对于单个组给可读可写权限

示例代码1:给newuser01用户单独在市场部文件夹上增加rx权限

#mkidr /shichangbu
#cd /shichangbu
#touch file{1..5}.txt
#chown -R root:itheima shichangbu/
递归设置shichangbu文件夹的属主是root,属组是itheima
#getfacl shichangbu/

#useradd newuser01
#passwd newuser01 

#setfacl -m u:newuser01:rx -R /usr/local/shichangbu/
单独设置newuser01对于shichangbu文件夹的rx权限,并且递归包含所有子文件

#getfacl /usr/local/shichangbu
查看/usr/local/shichangbu文件夹的ACL权限

玩转Linux与运维岗(18)_第3张图片
验证newuser01用户对于file1文件只有读权限

玩转Linux与运维岗(18)_第4张图片

示例代码2:给newusergrp组在市场部文件夹上增加rx权限,递归所有子文件

#groupadd newusergrp
#setfacl -m g:newusergrp:rx -R /usr/local/shichangbu/
单独设置newusergrp组对于shichangbu文件夹的rx权限,并且递归包含所有子文件

#getfacl /usr/local/shichangbu/

玩转Linux与运维岗(18)_第5张图片

setfacl命令解释

玩转Linux与运维岗(18)_第6张图片
示例代码3:删除所有acl策略

玩转Linux与运维岗(18)_第7张图片

六、umask(扩展)

1、什么是umask

umask表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限)

例如:

root用户下,touch a ,文件a的默认权限是644

普通用户下,touch b ,文件b的默认权限是664

644和664我们并没有设置,其中的关键因素就是umask

最大默认权限:

文件666

文件夹777

2、umask值

可以使用命令umask来查看umask的值:

基本语法:# umask

玩转Linux与运维岗(18)_第8张图片
注:0022中第一位0代表特殊权限位,可以不设置。

umask的默认值,在root和普通用户下是不一样的,分别是022和002

分析:

玩转Linux与运维岗(18)_第9张图片

结合上述的举例得知:

默认权限=最高权限-umask( 644=666-022 // 664=666-002 )

但是:

当umask为011,创建文件的默认权限应该是655,但是实际运行的时候默认权限是 666

666 -> rw-rw-rw-

011 -> -----x--x

相减得:

666 -> -rw-rw-rw-

注:这个特殊情况仅出现在文件,因为文件[二进制文件除外]没有x执行权限), 所以,查看文件的umask时我们要特别注意是否有奇数位(x表示1)

3、修改umask值

umask + 数值修改当前用户的umask 如:# umask 044

不过这样设置的umask会在用户重新登录的时候恢复原来的值,我们可以把修改的umask保存在~/.bashrc

操作步骤:

#vim ~/.bashrc
① 在文件末尾添加umask 044
② 保存退出 
③ 重新登录用户则保存成功

示例代码:

你可能感兴趣的:(Linux,linux,运维,服务器)