这几种命令都是用来获取root权限的,但是它们的使用方式和效果有所不同:
-
sudo su:这个命令实际上是将当前用户切换为root用户,不需要提供root用户的密码。通过这种方式,用户可以在不知道root密码的情况下获得root权限。
-
sudo -i:这个命令是以root用户的身份登录,并且会加载root用户的环境设置。这意味着用户会有root用户的环境变量和路径设置。
-
sudo -u root:表示使用sudo来切换到root用户。
-
su root:这个命令是使用su命令切换到root用户,需要输入root用户的密码。su命令是切换用户身份的命令,但是不同于sudo,su需要知道目标用户的密码才能切换。
综上所述,sudo su是以当前用户切换到root用户,sudo -i是以root用户登录并加载root环境,su root是以普通用户切换到root用户,sudo -u root是用sudo切换到root用户。
在/etc/sudoers配置文件中可以指定哪些用户或用户组可以使用sudo命令以root权限执行指定的命令,以及是否需要密码进行验证。如果你配置了免密sudo权限,那么sudo su、sudo -u root、sudo -i这三种方式都会受到影响,用户切换到root用户时不需要输入密码。
而su命令是切换用户身份的命令,不受sudoers配置文件中的影响。当你使用su root命令切换到root用户时,会要求输入root用户的密码,而不受sudoers配置文件中的免密sudo权限影响。