用户的身份提权
sudo命令提权
什么是sudo
sudo就是普通用户可以提权,执行root用户可以执行的命令
为什么要用到sudo
如果在公司中,入职后,领导给运维的用户是普通用户,但是有些命令只有root才能执行
sudo如何使用
# 1.系统的超级管理员(root)需要做sudo的配置(发一个兵符给指定的普通用户)
# 2.普通用户只需要,在执行的命令之前,加上sudo即可
sudo的配置(root发兵符的过程)
#查看sudo的配置文件:
vim /etc/sudoers
visudo(推荐)
#检测sudo配置是否正确
visudo -c
#用户名 所有主机=(所有角色) 所有命令的执行权限
root ALL=(ALL) ALL
例:
ljy ALL=(ALL) /bin/cp
# 普通用户不需要输入密码使用sudo
ljy ALL=(ALL) NOPASSWD:ALL
## 免密切换到root用户,就算不免密,也是输入普通用户的密码,切换到root用户
[ljy@localhost ~]$ sudo su -
## 普通用户以root身份执行命令
[ljy@localhost ~]$ ls -l /root
ls: cannot open directory /root: Permission denied
[ljy@localhost ~]$ sudo ls -l /root
total 20
lrwxrwxrwx. 1 root root 2 Mar 16 23:14 15 -> 17
-rw-r--r--. 1 root root 23 Mar 16 23:11 17
-rw-r--r--. 1 root root 266 Mar 15 10:52 1.rar
-rw-------. 1 root root 1448 Mar 8 19:21 anaconda-ks.cfg
-rw-r--r--. 1 root root 862 Mar 17 23:06 test.txt
-rw-r--r--. 1 root root 3680 Mar 17 20:27 wenben
## 其他主机的别名配置
Host_Alias FILESERVERS = localhost,ljy
Cmnd_Alias LJYCMD = /bin/cp,/bin/mv,/bin/rm,!/bin/su
!/bin/su(无法执行 su 这个命令)
Cmnd_Alias:命令别名
Host_Alias:主机别名
User_Alias:角色别名
## 给组发兵符
%lzu ALL=(ALL) NOPASSWD:ALL
%组名 ALL=(ALL) NOPASSWD:ALL
usermod ljy -G lzu
usermod 用户名 -G 组名
### sudo不认识别名,只能走系统命令
awk初识
# 取列
awk
# 选项
-F 指定分隔符,默认是以空白字符为分隔符
NR 表示行号
# 格式运用
{print $number} 取列
{print $1} 取第一列
#例1:
awk '{print $1}' 1.txt 取出1.txt中第一列内容
NR==1 第一行 取行
NR==2 第二行
#例2:
awk 'NR==1{print $1}' 1.txt 取出1.txt中第一行且第一列的内容
-F
#例3:
awk -F ',' 'NR==2{print $3}' 1.txt 取出1.txt中以逗号为分隔符的第3列且第2行的内容
#例4:
awk -F '[,.!?]+' 'NR==1{print $1};NR==2{print $2};NR==3{print $3}' 1.txt
# 把文件1.txt 把,.!?视为一种分隔符 然后截取第一行第一列,第二行第二列,第三行第三列
sed初识
# 替换
sed
# 选项
-i 真正的替换
# 内部命令:
s 替换
g 全局
# 使用方法
sed s#匹配内容#替换内容#g 文件
真正的替换
sed -i s#aaa3#ccc999#g 2.txt