高级权限acl
修改属主的权限
setfacl -m u::权限 a.txt
修改属组的权限
setfacl -m g::权限 a.txt
修改其他人的权限
setfacl -m o::权限 a,txt
修改具体某一个用户的权限
setfacl -m u::用户名:权限a.txt
修改具体某一个组的权限
setfacl -m g:组名:权限 a.txt
继承:
setfacl -m d:u:egon01:rw a.txt
应用场景:
1、其他人对文件没有任何权限,然后单独设置其他人里的egon对文件
有r权限。egon02对文件有W权限
setfacl -b b.txt
setfacl -m o::- b.txt
setfacl -m u:egon01:r b.txt
setfacl -m u:egon02:w b.txt
2、其他人对文件有rw权限,然后单独设置其他人里的egon01对文件有r权限,
egon02对文件有w权限
setfacl -b b.txt
setfacl -m o::rw b.txt
setfacl -m u:egon01:r b.txt
setfacl -m u:egon02:w b.txt
实验:
[root@web01 ~]# pwd
/root
[root@web01 ~]# echo 1111 > b.txt
[root@web01 ~]# getfacl b.txt
# file: b.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@web01 ~]# setfacl -m o::- b.txt
[root@web01 ~]# setfacl -m u:egon01:r b.txt
[root@web01 ~]# setfacl -m u:egon02:w b.txt
[root@web01 ~]# getfacl b.txt
# file: b.txt
# owner: root
# group: root
user::rw-
user:egon01:r--
user:egon02:-w-
group::r--
mask::rw-
other::---
[root@web01 ~]# su - egon01 -c "cat /root/b.txt"
1111
[root@web01 ~]# su - egon01 -c "echo 222 >> /root/b.txt"
-bash: /root/b.txt: 权限不够
[root@web01 ~]# su - egon02 -c "cat /root/b.txt"
cat: /root/b.txt: 权限不够
[root@web01 ~]# su - egon02 -c "echo 222 >> /root/b.txt"
[root@web01 ~]#
特殊属性
+i
+a
+A
让普通用户具备管理员权限
su切换用户身份:从一个用户切换到另一个身份
储备知识:
Linux中shell分为两种级别
登录级别shell:/etc/profile ----> /etc/profile.d/*.sh--->~/.bash_profile---->
~/.bashrc -----> /etc/bashrc
①输入账号密码进来
②su - 用户名 (管理员root切换到普通用户下无需输入密码,反之需要)
非登录级别shell:~/.bashrc ----->/etc/bashrc----> /etc/profile.d/*.sh
1、su 用户名
如果想针对所有用户以及登录与非登录shell设置统一的配置--->/etc/bashrc
[root@web01 ~]# vim /etc/bashrc
[root@web01 ~]# source /etc/bashrc # 当前环境让该文件生效
或者重启也可以生效
/etc/profile------------->登录级别的所有用户
ps : shell 的使用分两种
交互式
非交互式
sudo提权:不切换用户,即用户身份不变,但是可以获取root的部分权限
在管理员下修改配置文件/etc/sudoers来分配权限
vim /etc/sudoers 高风险
visudo -c 检查语法
visudo 不需要加文件路径
总结:
su :
特点:直接切换到root账号下进行操作,输入的是root的密码
优点:简单粗暴
缺点:root密码容易泄露,普通用户获取了部分管理权限
sudo:
特点:在普通用户下进行操作,不需要切换到root账号下,在执行操作命令
格式为 : sudo 命令,输入的是普通用户自己的密码
优点:root密码没有泄露,普通用户获取了部分管理权限
缺点:相对复杂
用户 主机IP或主机名=(转成的用户身份)管理命令
egon01 ALL=(ALL) /usr/sbin/ifconifg
egon01 ALL=(ALL) NOPASSWD:/usr/sbin/ifconifg
egon01 ALL=(ALL) NOPASSWD:命令的别名
egon01 ALL=(ALL) ALL,!/usr/bin/vim /test/b.txt
ALL代表的是服务端IP地址,与客户端无关