为什么我什至以'!在其影子条目中?


9
$cat /etc/passwd |grep -i root
root:x:0:0:root:/root:/bin/bash

$sudo cat /etc/shadow |grep -i root
root:!:17179:0:99999:7:::

在影子文件的第二个字段中,!意味着root用户无法登录,但是为什么我可以通过root登录到root用户sudo su

为什么我不能通过su root或登录root用户su -


1
“在影子文件的第二个字段中,!表示root用户无法登录”不,不是。你是从哪里听来的?
Lightness Races in Orbit

@LightnessRacesinOrbit,是什么意思?
George Udosen '17

@乔治:大师在回答中引用了手册,并对其进行了详细解释。您应该阅读文档!
Lightness Races in Orbit

Answers:


15

一个!shadow条目的加密密码字段意味着没有密码,可以针对它进行身份验证。来自man shadow

If the password field contains some string that is not a valid
result of crypt(3), for instance ! or *, the user will not be able
to use a unix password to log in (but the user may log in the
system by other means).

如手册所述,这并不意味着您不能以root用户身份登录。这仅表示您无法使用root帐户的密码以root用户身份登录。(例如,即使帐户已锁定,您也可以使用SSH密钥通过SSH以root身份登录,例如,如果您之前进行了配置,则可以使用root身份登录。)

sudo通常使用您的密码而不是root用户的密码进行身份验证。这可以通过设置来进行更改targetpwrootpwrunaspwsudoers。如果您设置了这些选项之一,并且在密码锁定时尝试使用密码,则操作将失败


太好了,这意味着我可以通过sudo使用我的密码切换到任何用户,它是活动用户还是锁定用户,对吗?
Sinoosh

1
@Sinoosh假设没有其他限制,是的
穆鲁

4

现在让我们看一下相应的命令:

  1. sudo su

    • sudosu以root特权运行命令(替代用户),因此即使/etc/shadowsay或has root:!:17179:0:99999:7:::仍将以root特权运行命令。
  2. su -su root

    • 实际上,这将切换到无法从文件登录的root用户/etc/shadow因此使用这些命令将不起作用。如果您希望它们正常工作,则必须通过给它一个密码来解锁根帐户

摘要:

su -0r su root切换到root用户,不存在,因此不会发生,但是使用特权sudo su运行switch命令root,因此在这种情况下,如果您在sudo组中,它将消失。在这种情况下,您实际上不是以root用户身份登录,而只是以root用户身份登录。

资料来源:“ su-”和“ su root”有什么区别?


谢谢,这意味着sudo su在影子文件中看不到传递字段吗?
Sinoosh

1
@Sinoosh sudo su是错误的方式来运行sudo shsudo bash
巴库里
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.