用户身份切换命令su
# 格式:
su 选项 用户名
超级用户root切换到普通用户不需要密码。反之需要。
不写用户名则切换到root
# 选项:
-(=-l,--login) 不加此选项不会改变登录后环境。生产环境规范使用要加-,可将环境变量一并切换
-c 仅在该用户下执行命令而不直接切换
比如:
[zls@sky root]$ su root
Password:
[root@sky ~]# env
XDG_SESSION_ID=4
HOSTNAME=sky
SELINUX_ROLE_REQUESTED=
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=10.0.0.1 63878 22
SELINUX_USE_CURRENT_RANGE=
SSH_TTY=/dev/pts/1
USER=zls <<----------------还是zls。加-切换后变为root
......
visudo = vim /etc/sudoers
# su的优缺点:
系统管理员root很方便切换,但其他普通用户只要知道了密码也可用随意切换,人少还好,但如果人多会带来很大安全隐患。
这时便轮到sudo出场了。
sudo提权
sudo命令可以让普通用户在执行命令或程序时拥有root(也可是其他用户)的权限。并且可以指定哪些命令,而且使用时不需要知道root密码。需要在visodu里提前配置。
对于bash内置命令,一般无法进行sudo授权,如cd命令
sudo 好比圣旨,看到它好比看到皇帝
比如
root@sky,10.0.0.201:~ # useradd a01 使用root创建a01用户
root@sky,10.0.0.201:~ # touch 001.txt 使用root创建001.txt文件 并写入字符串 “爱你咕叽咕叽旺”
root@sky,10.0.0.201:~ # cat 001.txt
爱你咕叽咕叽旺
root@sky,10.0.0.201:~ # su a01 切换到a01用户
[a01@sky root]$ cat 001.txt
cat: 001.txt: Permission denied # 切换到a01用户再次查看001.txt 拒绝访问,提示权限不足
这时便需要进行提权
提权的第一种方法
# 接上例:直接用sudo命令,提示需要配置sudoer (默认只有root用户能使用sudo命令,普通用户想要使用sudo需要root预先设定,即使用visudo命令去编辑相关的配置文件/etc/sudoers)
[xxx@sky ~]$ visudo
visudo: /etc/sudoers: Permission denied # //普通用户无法使用visudo
[a01@sky root]$ sudo cat 001.txt
[sudo] password for a01:
a01 is not in the sudoers file. This incident will be reported.
切换回root改:
root@sky,10.0.0.201:~ # visudo // 进去下面大概在第100行(:100即可)(:set nu可以显示行号)
......
## Allow root to run any commands anywhere //把a01用户放进来即可 加个NOPASSWD
root ALL=(ALL) ALL
a01 ALL=(ALL) NOPASSWD:ALL
(用户) (IP) (命令)注意命令要输入绝对路径 如/bin/cp 用which+命令可以看到
......
[a01@sky root]$ sudo cat 001.txt // 设置完成后切到a01用户 用sudo即可看到
爱你咕叽咕叽旺
[a01@sky root]$ cat 001.txt //不加sudo看不了
cat: 001.txt: Permission denied
[a01@sky root]$ ls -l /root
ls: cannot open directory /root: Permission denied
[a01@sky root]$ sudo ls -l /root
total 8
-rw-r--r--. 1 root root 23 Aug 22 19:46 001.txt
-rw-------. 1 root root 1447 Aug 17 15:28 anaconda-ks.cfg
提权的第二种方法
把用户加到wheel组 (第108行)
%wheel ALL=(ALL) ALL
%组名 ... ...
用命令:usermod -G wheel a01
接上例:
root@sky,10.0.0.201:~ # su a01
[a01@sky root]$ ls
ls: cannot open directory .: Permission denied
[a01@sky root]$ sudo ls
[sudo] password for a01:
a01 is not in the sudoers file. This incident will be reported. #//修改配置之前加sudo会提示
[a01@sky root]$ su -
Password:
Last login: Mon Aug 22 21:10:48 CST 2022 from 10.0.0.1 on pts/0
0 ✓ 21:13:19 root@sky,10.0.0.201:~ # usermod -G wheel a01
0 ✓ 21:13:34 root@sky,10.0.0.201:~ # su a01
[a01@sky root]$ ls
ls: cannot open directory .: Permission denied
[a01@sky root]$ sudo ls #//修改配置之后加sudo便可以了
[sudo] password for a01:
001.txt anaconda-ks.cfg
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END