是什么意思啊!在 /etc/passwd 中的用户名字段之前?

是什么意思啊!在 /etc/passwd 中的用户名字段之前?

经过一些谷歌搜索后,我找不到原因/etc/passwd

!在行的开头显示 a 。

它看起来像这样:

!user:x:0:0:user:/home/user:/bin/bash

有任何想法吗?我唯一的猜测是该用户可能不再存在。

答案1

这本质上只是将用户名更改为!user,所以如果您尝试登录,user您将得到:

No passwd entry for user 'user'

因为用户名已更改为!user.

现在,如果您/etc/shadow也更改 并将用户名设置为,那么您可以使用与 相同的密码以!user用户身份登录。!useruser

如果你想阻止用户使用密码登录,你应该在或更好使用命令!的密码字段中添加一个。/etc/shadowpasswd -l

答案2

维基百科:

“!” – 帐户被密码锁定,用户将无法通过密码验证登录,但仍允许使用其他方法(例如 ssh key))[7]

此外,似乎!in的意义也/etc/passwd可以根据它所在的位置(冒号)而变化。在这个链接!他们提供了密码字段中的条目示例,如下所示:

root:!:0:0::/:/usr/bin/ksh
daemon:!:1:1::/etc:
bin:!:2:2::/bin:

他们解释说

如果用户 ID 有密码,则密码字段将带有 ! (感叹号)。

答案3

该条目仍然存在于/etc/passwd文件中意味着该用户仍然存在。放置一个“!”据我所知,该行的开头不是标准过程,但它会产生禁用该用户登录的效果。

相关内容