其他
Linux账号管理(6)- 身份切换su、sudo
su
选项和参数:
- 表示使用login-shell的变量文件读取方式登录系统。即切换用户的时候,环境变量也变成对应用户的,如果没有这个“-”符号,则只变换身份,不变换环境变量
-c 后面接命令,表示用username(如果没有写用户名,默认是root)这个用户的身份执行-c后面的命令。
用户名 可写可不写,不写的话默认就是root
[jason@studyclub ~]$ su # 切换到root用户
Password: # 输入root用户的密码【注意,如果是root切换到普通用户,则不需要输入密码】
[root@studyclub jason]# env | grep "root" # 已经切换到root了,我们看看有哪些变量是root用户的
HOME=/root # 只有一个HOME变量是root的
[root@studyclub jason]# env | grep "jason"
USER=jason # 环境变量里竟然还是jason用户
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/jason/.local/bin:/home/jason/bin # 看看这些可执行文件还是jason的
MAIL=/var/spool/mail/jason # mail还是jason的
PWD=/home/jason # 也不是root的家目录
LOGNAME=jason
# 下面我们在用su -命令看看效果:首先以jason用户登录系统
[jason@studyclub ~]$ su -
Password: # 输入root的密码
Last login: Wed Jun 9 11:17:16 CST 2021 on pts/0
[root@studyclub ~]# env | grep "root"
USER=root # USER已不再是jason
MAIL=/var/spool/mail/root # mail也换成了root的mail
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin #PATH也换成了root对应的变量
PWD=/root
HOME=/root
LOGNAME=root
# 如果切换成普通用户应该怎么做?
[jason@studyclub ~]$ su - james
Password: # 输入james用户的密码即可
Last login: Sat May 15 14:16:38 CST 2021 on pts/1
Password: # 输入root用户的密码
root:$6$/rdt/QFLzpIiFWqM$J89knIK3LfL6B2FYXWid.XSitQMNLoygJGQWFC3IFs6xXmuaX/CXJc.hzgDWW2dD94Cek/3QVsKdD4ttWIbnm1::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
......
sudo
......
root ALL=(ALL) ALL
jason ALL=(ALL) ALL # 这一上是我新加的,允许jason用户执行所有命令
......
head: cannot open ‘/etc/shadow’ for reading: Permission denied
[jason@studyclub ~]$ sudo head -n 3 /etc/shadow # 加上sudo以后,临时获取root权限查看文件的内容
[sudo] password for jason: # 输入jason的密码
root:$6$/rdt/QFLzpIiFWqM$J89knIK3LfL6B2FYXWid.XSitQMNLoygJGQWFC3IFs6xXmuaX/CXJc.hzgDWW2dD94Cek/3QVsKdD4ttWIbnm1::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
[root@studyclub ~]# visudo
......
jason ALL=(ALL) NOPASSWD: ALL
......
[jason@studyclub ~]$ sudo head /etc/shadow # 现在就不需要输入密码了
root:$6$/rdt/QFLzpIiFWqM$J89knIK3LfL6B2FYXWid.XSitQMNLoygJGQWFC3IFs6xXmuaX/CXJc.hzgDWW2dD94Cek/3QVsKdD4ttWIbnm1::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::