sudo、su命令区别

922 3~4 min

sudo、su命令区别


sudo = Super user do 超级用户do
su = Switch user 切换用户
sudo 需要输入当前用户的密码,
su 需要输入 root 用户的密码。

解决sudo命令切换时需要输入当前用户密码的问题

$vim /etc/sudoers
----------------------
xxxx   ALL=(ALL)      NOPASSWD: ALL
----------------------
tips:若添加后执行sudo su还是需要输入密码 可能被
%wheel  ALL=(ALL)       ALL #可能被这个覆盖了
上边的xxxx   ALL=(ALL)      NOPASSWD: ALL添加到%wheel  ALL=(ALL)       ALL 如下:
--------------------------------------------
%wheel  ALL=(ALL)       ALL
xxxx   ALL=(ALL)      NOPASSWD: ALL
---------------------------------------------

解决sudo su命令或者su root切换后pwd未变

上述命令只是暂时的提权环境变量还是之前用户的运行如下命令

[liuyi@VM-0-6-centos root]$ su - root 
Last login: Fri Nov 19 10:56:16 CST 2021 on pts/1
[root@VM-0-6-centos ~]# pwd
/root
-------------或者------------------------
[liuyi@VM-0-6-centos root]$ sudo -i 
[root@VM-0-6-centos ~]# pwd
/root

sudo -i root与sudo - root、sudo -i ,sudo - ,sudo root效果相同 提示输入密码时该密码为当前账户的密码 要求执行该命令的用户必须在sudoers中才可以 su需要的是切换后账户的密 用法为“su 账户名称”


sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。要求执行该命令的用户必须在sudoers中才可以
sudo su: 运行sudo命令给su命令提权,运行su命令。要求执行该命令的用户必须在sudoers中才可以。