su、sudo、sudo su、sudo -i命令的区别

技术问题

su、sudo、sudo su、sudo -i命令的区别

2024-12-03 09:30


su、sudo、sudo su、sudo -i命令的区别

                                            




我们在运维Linux服务器中的时候是不是经常看到有需要用到的命令su、sudo、sudo su、sudo -i这几个,有些时候不用还不行,毕竟有些用户权限是没有足够权限需要提权的。但是这几个命令到底有什么区别以及如何用呢?在这篇文章中,我们就简单的梳理。

sudo:暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。

su:切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。

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

sudo -i直接运行sudo命令加-i参数

sudo su 运行sudo命令给su命令提权,运行su命令。 。sudo -i运行结果 PWD=/root

sudo su 运行结果 PWD=/home/用户名(当前用户主目录)

具体的用法:

sudo

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的管理命令;

格式:sudo-u USERNAME COMMAND

默认情况下,系统只有root用户可以执行sudo命令。需要root用户通过使用visudo命令编辑sudo的配置文件/etc/sudoers,才可以授权其他普通用户执行sudo命令。

sudo的运行有这样一个流程:

1).当用户运行sudo时,系统于/etc/sudoers文件里查找该用户是否有运行sudo的权限;

2).若用户具有可运行sudo的权限。那么让用户输入用户自己的password,注意这里输入的是用户自己的password.

3).假设password正确。进行sudo后面的命令,root运行sudo是不须要输入password的,切换到的 身份与运行者身份同样的时候。也不须要输入password。

su

su为switch user,即切换用户的简写。

su是最简单的身份切换名,用su我们能够进行不论什么用户的切换,一般都是su — username,然后输入password就ok了,可是root用su切换到其它身份的时候是不须要输入password的。

格式为两种:

su —I USERNAME(—l为login,即登陆的简写)

su USERNAME

如果不指定USERNAME (用户名) ,默认即为root,所以切换到root的身份的命令即为: su —root或su—,su root 或su。

su USERNAME,与su— USERNAME的不同之处如下:

su—USERNAME切换用户后,同时切换到新用户的工作环境中。

su USERNAME切换用户后,不改变原用户的工作目录,及其他环境变量目录。

su-

su -, su -I或su -login 命令改变身份时,也同时变更工作目录,以及HOME, SHELL, USER, LOGNAME。此外,也会变更PATH变量。用su—命令则默认转换成成root用户了。

而不带参数的“su命令”不会改变当前工作目录以及HOME,SHELL,USER,LOGNAME。只是拥有了root的权限而已。

注意:su -使用root的密码,而sudo su使用用户密码

 


标签:
  • su、sudo、sudo su、sudo -i命令的区别