为什么“ sudo”密码与“ su root”密码不同


11

在我的个人计算机上,我经常sudo在某些命令前键入命令以完成管理任务。我曾希望通过输入su root并提供与通常相同的密码来避免一整天都这样做sudo。但是,两个密码不同(我不知道如何登录su root)。运行的命令与sudo使用su root同一命令登录并运行的命令不同吗?

我认为sudo并且su root是相同的,因为当我键入时sudo whoami,我会得到root,而不是在whoami哪里获得用户名。


我遇到了这个较旧的线程,因为它与我提出的问题相关联。答案非常有用,但有一个问题。在个人计算机(一个用户)上,如何根据root用户使用sudo或su root获得不同的root密码?安装Linux时是否没有定义一个根密码?
fixer1234 2014年

@ fixer1234如John1024的答案所述,当您使用时sudo,系统会要求您输入密码以验证您的身份,然后检查/etc/sudoers是否允许您运行sudo。使用时su,系统要求您输入要切换到的用户的密码。(我知道这是一个非常老的问题,但是我想对以后的观众
有所帮助

@anonymoose,这个问题是关于OP的个人计算机的。通常,当您在自己的计算机上安装Linux时,您会知道您是否给root赋予了不同于普通用户的密码。该问题表明OP惊讶地发现root用户具有不同的密码。
fixer1234 '18

1
@ fixer1234 OP可能没有设置root密码开始。Ubuntu的安装程序不要求输入root密码,我敢肯定其他发行版也不需要。
anonymoose

Answers:


17

相反的是他们最常见的使用会导致你所想,susudo不是仅仅意味着在记录(或进行其他操作)的根。

su可让您与他人切换您的身份。因此,当您键入时su,系统需要验证您是否具有要更改为的目标用户的凭据。

sudo有点不同。使用sudo允许您像其他人一样运行某些(或全部,取决于配置)命令。您自己的身份用于确定sudo在其他人的身份下将为您运行哪些类型的命令:如果您是受信任的用户(在某种意义上,系统管理员信任您),那么您将获得比说的更多的自由权。一个实习生。这就是为什么sudo需要验证您自己的身份而不是目标用户的身份的原因。

换句话说,尝试与su自己不相识的人相像,就像试图在使用时用偷来的信用卡充值sudo一样,就像通过合法代理人出售朋友的汽车一样。

至于您要尝试执行的操作,只需sudo su root或什至更简单地sudo su输入常规用户密码。这大致相当于用他们给您的合法代理人用您自己的朋友的信用卡凭据替换:)。当然,假定sudo配置允许您以su升级的特权运行。

另外,预先配置了sudo访问权限的系统通常会禁用root帐户(没有root密码),您可以passwd在通过成为root用户后使用该命令启用该帐户sudo su


对于家庭用户,除了让用户具有特权(如sudo)外,您还建议设置root密码吗?
罗伊

3

sudo用于将用户权限临时提升到root级,而su root用于以root用户身份创建新的shell;


2

它是可配置的*,但是默认情况下,“ sudo”要求您输入密码。它只是在尝试确保是您自己,而不是有人在喝咖啡时使用键盘。

相反,“ su root”要求您输入root密码。


*如果/ etc / sudoers中的targetpw为false(默认),则“ sudo”要求您输入密码。如果为true,则“ sudo”询问您root的密码,或者,如果您使用“ -u”选项指定了其他用户,则询问该用户的密码。


1

为了使一些新手有机会进入此搜索,有一个简单的方法可以进入root用户直到退出:

     sudo -iE

将保持您的交互性并保持您的环境,但现在是root用户。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.