Centos7_高级权限与提权
众所都周知:linux一切皆文件
高级权限
一、ACL
用命令setfacl设置的ACL权限是UGO权限的扩展
setfacl可以更精确的控制权限的分配,比如让某一个用户对某一个文件具有某种权限
也可以对组设置,设置的用户和组都必须存在,
也可以给目录设置,都一样
# 查看权限:
getfacl 文件
#设置权限:
setfacl -m u:用户:权限 文件 #用户可为空,为修改属主权限
setfacl -m g:组:权限 文件 #组可为空,为修改属组权限
setfacl -m o:用户:权限 文件 #用户可为空,为修改其他人的权限
# 清除权限:
setfacl -x g:组 文件 #删除组的权限
setfacl -b 文件 #删除文件所有acl权限
二、文件属性
# 查看文件属性
a 仅允许追加内容
i 禁止修改内容
A 不更改文件访问时间
# 设置属性
chattr +属性 文件
# 删除属性
chattr -属性 文件
切换用户与提权
su:
特点:使用普通用户登录,然后使用su命令切换到root账户下
优点:简单粗暴
缺点:
1、需要知道root密码
2、权限控制不精细;每次都是获取所有root权限
sudo:
特点:
1、使用普通用户登录,然后sudo命令提取root用户的部分管理权限,注意只是某部分,而不是全部
2、不需要切换到root用户下
优点:
1、不需要知道root密码,输入的是自己的密码
2、权限控制更为精细,可以控制普通用户只获取部分root权限
缺点:相对复杂
1、SU切换用户
1、linux中shell可以分为两类
登录shell:需要输入用户名密码才能进入shell,我们日常接触的最多
非登录shell:不需要输入用户名密码就能进入shell,比如运行bash会开启一个新的会话窗口
2、shell的使用方式有两种
交互式:等待用户输入执行命令(终端操作,需要不断提示)
非交互式:执行shell脚本,脚本执行结束后shell自动退出
bash shell配置文件介绍
文件主要保存用户的工作环境
全局配置文件:
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
个人配置文件
~/.bash_profile
~/.bashrc
PS:
profile类文件,设置环境变量,登陆前运行的脚本和命令
bashrc类文件,设定本地变量,定义命令别名
如果全局配置与个人配置产生冲突,以个人配置为准
配置文件的应用顺序:
如果执行的是登陆式shell,那么配置文件的执行顺序是:
/etc/profile > /etc/profile.d/*.sh > ~/.bash_profile > ~/.bashrc > /etc/bashrc
如果执行的是非登录式shell,那么配置文件的执行顺序是:
~/.bashrc > /etc/bashrc > /etc/profile.d/*.sh
执行登录与非登录式shell
# 执行登录式shell,身份与环境都切换
su - 用户
# 执行非登录shell,只切换用户身份
su 用户
PS:
1、从root用户切换到普通用户无需输入密码,反之则需要
2、切换身份执行命令 su - 用户 -c "命令"
```
## 2、sudo提权
```bash
配置的两种方式
1、visudo
会提示语法错误,推荐使用
-c 检查配置是否正确
2、vim /etc/sudoers
语法:syntax: user MACHINE=COMMANDS
例如:root ALL=(ALL) ALL
(all)表示允许用户以哪个用户的权限做事
root表示用户可以在所偶遇主机上以任意用户身份执行所有命令
sudo常用参数
-l 登录用户下,执行sudo -l ,显示当前用户有哪些权限
-k 删除/var/db/sudo/下面对应的时间戳信息,下次执行sudo需要输入当前用户的密码;系统默认5分钟失效;配置免密是另一种情况