ACL策略管理、总结和答疑

ACL策略管理、总结和答疑

ACL策略管理:

  • 文档归属的局限性:

    • 任何人只属于三种角色:属主、属组、其他用户

    • 针对特殊的人实现更精细的控制

  • acl访问策略作用:

    • 能够对个别用户、个别组设置独立的权限

    • 大多数挂载的EXT3/4、XFS文件系统默认已支持

  • setfacl命令

    • 格式:setfacl [选项] u:用户名:权限 文件...

      setfacl [选项] g:组名:权限 文件...

  • 常用命令选项

    • -m: 修改ACL策略

    • -x:清除指定的ACL策略

    • -b:清除所有已设置的ACL策略

    • -R:递归设置ACL策略

#体验ACL策略的作用例子
[root@localhost ~]# mkdir /NB
[root@localhost ~]# echo 五元>/NB/rmb.txt
[root@localhost ~]# cd /NB/
[root@localhost NB]# ls
rmb.txt
[root@localhost NB]# cat rmb.txt 
五元
[root@localhost NB]# groupadd caiwu
[root@localhost NB]# chmod o=--- /NB
[root@localhost NB]# ls /NB
rmb.txt
[root@localhost NB]# ls -ld  /NB
drwxr-x---. 2 root root 21 8月  13 17:51 /NB
[root@localhost NB]# chmod g+w /NB
[root@localhost NB]# ls -ld /NB
drwxrwx---. 2 root root 21 8月  13 17:51 /NB
[root@localhost NB]# useradd dc
断开重连切换到dc用户
[root@localhost ~]# su dc
[dc@localhost root]$ cd /NB
bash: cd: /NB: 权限不够
断开重连切换到root用户,为dc用户添加ACL策略
[root@localhost NB]# setfacl -m u:dc:rx /NB
断开重连切换到dc用户
[dc@localhost root]$ cd /NB
[dc@localhost NB]$ ls
rmb.txt
[dc@localhost NB]$ cat rmb.txt 
五元
发现ACL策略生效,可以查看
[dc@localhost NB]$ getfacl /NB #这个命令可以查看该文件的ACL策略
getfacl: Removing leading '/' from absolute path names
# file: NB
# owner: root
# group: root
user::rwx
user:dc:r-x
group::rwx
mask::rwx
other::---
#可以继续添加ACL策略用户
[root@localhost ~]# setfacl -m u:lisi:rx /NB
[root@localhost ~]# getfacl /NB #查看ACL策略
getfacl: Removing leading '/' from absolute path names
# file: NB
# owner: root
# group: root
user::rwx
user:lisi:r-x
user:dc:r-x
group::rwx
mask::rwx
other::---
#还可以用ACL策略,单独对一个用户设置禁用权限
[root@localhost ~]# mkdir /nsd19
[root@localhost ~]# chmod 777 /nsd19
[root@localhost ~]# ls -ld /nsd19
drwxrwxrwx. 2 root root 6 8月  14 09:20 /nsd19
[root@localhost ~]# setfacl -m u:lisi:--- /nsd19
[root@localhost ~]# su lisi
[lisi@localhost root]$ cd /nsd19
bash: cd: /nsd19: 权限不够
[root@localhost ~]# getfacl /nsd19 #查看ACL策略
getfacl: Removing leading '/' from absolute path names
# file: nsd19
# owner: root
# group: root
user::rwx
user:lisi:---
group::rwx
mask::rwx
other::rwx
​

linux中判断用户具备的权限:

1.首先查看该用户或组是否有ACL测量

2.查看用户1,对于该数据所处的身份,顺序所有者>所属组>其他人,原则是匹配及停止

3.查看相应身份的权限位

ACL策略练习

[root@localhost ~]# mkdir /nsd22
[root@localhost ~]# setfacl -m u:dc:rx /nsd22
[root@localhost ~]# setfacl -m u:zhangsi:rwx /nsd22
[root@localhost ~]# setfacl -m u:lisi:rx /nsd22
[root@localhost ~]# setfacl -m u:gelin01:rwx /nsd22
[root@localhost ~]# getfacl /nsd22
getfacl: Removing leading '/' from absolute path names
# file: nsd22
# owner: root
# group: root
user::rwx
user:lisi:r-x
user:zhangsi:rwx
user:gelin01:rwx
user:dc:r-x
group::r-x
mask::rwx
other::r-x
[root@localhost ~]# setfacl -x u:zhangsi /nsd22 #删除指定用户ACL
[root@localhost ~]# getfacl /nsd22
getfacl: Removing leading '/' from absolute path names
# file: nsd22
# owner: root
# group: root
user::rwx
user:lisi:r-x
user:gelin01:rwx
user:dc:r-x
group::r-x
mask::rwx
other::r-x
​
[root@localhost ~]# setfacl -x u:dc /nsd22 #删除指定用户ACL
[root@localhost ~]# getfacl /nsd22
getfacl: Removing leading '/' from absolute path names
# file: nsd22
# owner: root
# group: root
user::rwx
user:lisi:r-x
user:gelin01:rwx
group::r-x
mask::rwx
other::r-x
[root@localhost ~]# setfacl -b /nsd22 #清除目录所有的ACL策略
[root@localhost ~]# getfacl /nsd22/
getfacl: Removing leading '/' from absolute path names
# file: nsd22/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

补充内容:

ACL策略-黑名单的使用(单独拒绝某些用户)

[root@localhost ~]# setfacl -m u:lisi:--- /home/public
[root@localhost ~]# getfacl /home/public

-R:递归设置ACL策略

[root@localhost ~]# setfacl -Rm u:dc:rwx /opt/aa #目录以及下面的文件都设置ACL策略

Linux用户家目录被删除了,怎么办

方法如下:

[root@localhost ~]# id aaa #确认没有aaa用户
id: aaa: no such user
[root@localhost ~]# useradd aaa  #创建aaa用户
[root@localhost ~]# su aaa
[aaa@localhost root]$ su
密码:
[root@localhost ~]# rm -rf /home/aaa/  #删除aaa用户的家目录
[root@localhost ~]# su aaa #再切换到aaa用户,报错
bash-4.2$ 
bash-4.2$
#这时我们开始恢复家目录,非常简单
bash-4.2$ exit
exit
[root@localhost ~]# useradd bbb #我们先创建个新的bbb用户
[root@localhost ~]# ls -A /home/bbb/ #查看bbb家目录下的全部文件
.bash_logout  .bash_profile  .bashrc
[root@localhost ~]# cp -r  /home/bbb/ /home/aaa #把家目录的文件拷贝到aaa用户
[root@localhost ~]# chown -R  aaa:aaa /home/aaa #把属主和属组改成aaa用户
[root@localhost ~]# su aaa #再次切换正常
[aaa@localhost root]$ 

我们会发现,创建新用户,在相对应的目录下,都会有几个相同的隐藏文件,这些模板都在/etc/skel目录下。

[aaa@localhost root]$ ls  -A  /etc/skel/
.bash_logout  .bash_profile  .bashrc
假如我们在这个文件夹下,创建点新的文件或目录,再次创建用户时,家目录会不会相对应的更新
[aaa@localhost root]$ cd /etc/skel/
[aaa@localhost skel]$ mkdir test
mkdir: 无法创建目录"test": 权限不够
[aaa@localhost skel]$ su
密码:
[root@localhost skel]# mkdir test #创建个test目录
[root@localhost skel]# touch test.txt #创建个test文件
[root@localhost skel]# ls -A #查看目录
.bash_logout  .bash_profile  .bashrc  test  test.txt
[root@localhost skel]# useradd ccc #创建新用户
[root@localhost skel]# ls -A /home/ccc/ #查看ccc用户的家目录发现跟模板的目录下文件一样
.bash_logout  .bash_profile  .bashrc  test  test.txt
​
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值