su 和 sudo 命令
su命令
Linux su(英文全拼:swith user)命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
使用权限:所有使用者。
常用命令
切换用户:
hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su root //切换到root用户
密码:
root@runoob.com:/home/hnlinux# whoami
root
root@runoob.com:/home/hnlinux# pwd
/home/hnlinux
切换用户并改变环境变量:
hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su - root //切换到root用户,建议使用这种方式
密码:
root@runoob.com:/home/hnlinux# whoami
root
root@runoob.com:/home/hnlinux# pwd //显示当前目录
/root
sudo命令
Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。
使用权限:在 /etc/sudoers 中有出现的使用者。
当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限:
- 确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认;
- 若密码输入成功,则开始执行sudo后续的命令。
常用命令
执行命令:sudo ll
以root权限执行上一条命令:sudo !!
显示自己(执行sudo的使用者)的权限:su -l
设置无需输入密码
/etc/sudoers 中列出了哪些用户可以使用 sudo 命令,以及使用该命令是否需要密码。
允许root用户执行任意路径下的任意命令:root ALL=(ALL) ALL
允许admin用户组执行任意路径下的任意命令(无需输入密码):%admin ALL=(ALL) NOPASSWD: ALL
允许admin用户执行任意路径下的任意命令(无需输入密码):admin ALL=(ALL) NOPASSWD: ALL