之间的区别!对!!vs * 在 /etc/shadow

Jav*_*Tec 47 linux shadow passwd

Linux/etc/shadow文件中的第二个字段表示密码。然而,我们看到的是:

  1. 某些密码字段可能只有一个感叹号

    <account>:!:.....
    
    Run Code Online (Sandbox Code Playgroud)
  2. 某些密码字段可能有双感叹号

    <account>:!!:.....
    
    Run Code Online (Sandbox Code Playgroud)
  3. 某些密码字段可能带有星号

    <account>:*:.....
    
    Run Code Online (Sandbox Code Playgroud)

通过对互联网的一些研究和通过这个线程,我可以理解这*意味着密码从未建立,!意味着被锁定。

有人能解释一下双感叹号 ( !!) 是什么意思吗?它与 ( !) 有何不同?

Rui*_*iro 39

两个都 ”!” 和 ”!!” 出现在密码字段中意味着帐户被锁定。

正如在下面的文档中可以看到的那样,“!!” 在阴影中的帐户条目中表示已创建用户帐户,但尚未提供密码。在系统管理员给出初始密码之前,默认情况下它是锁定的。

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/s2-redhat-c​​onfig-users-process.html

  • 值得注意的是,这种方式实际上并没有锁定帐户,它仅意味着用户无法使用密码进行身份验证,并且可能无法设置密码。我已经在 Debian 和基于 EL 的发行版上对此进行了测试:使用 ssh 密钥登录仍然可以使用“!” 或者 ”!!” 在密码字段中。 (5认同)
  • 这在 Red Hat 系统上可能是正确的,但在其他地方不一定是这样——在 Ubuntu 或 Arch Linux 上,一个没有密码的新创建的帐户仍然只有 `!`,而不是 `!!`。 (4认同)
  • @JavaTec 不一定:我认为所有具有 `/etc/shadow` 的 unices 都具有相同的字段,但是密码字段存储非密码信息的方式各不相同。检查 HP-UX 文档,从 `shadow` 手册页开始。 (4认同)
  • 确实,我从未见过“!!” 在 Debian 系统中。我猜想 OP 正在使用一些基于 RH 的系统,或 SuSE。 (2认同)
  • 直到最近,HP-UX 甚至还没有“/etc/shadow”:在 HP-UX 11.11 之前,选项要么是经典的无影子“/etc/passwd”,要么是“可信计算库”,它存储每个用户的密码哈希值和其他信息。帐户信息位于名为“/tcb/files/auth/&lt;initial&gt;/&lt;username&gt;”的单个文件中,仅可由 root 读取。在 HP-UX 11.11 中,`/etc/shadow` 被作为[可选额外](https://h20392.www2.hpe.com/portal/swdepot/displayProductInfo.do?productNumber=ShadowPassword)引入,在 11.23 中它是基本操作系统中的一个选项,并且在 11.31 中 TCB 最终被弃用。 (2认同)

coo*_*j86 9

可能还值得注意的<account>::.....是不需要密码(空密码)。

如果您正在创建一个使用ssh密钥的用户,您可以使用它<account>::0:0:99999:7:::来要求用户在第一次登录时设置他们的密码(即他们用于 sudo 的密码)。

注意仅密钥身份验证意味着密码不是身份验证因素。

  • 小心这一点。空字段表示没有密码,您只需按 ENTER 即可登录,至少在控制台中是这样。 (10认同)