最近,我需要在我们的 CentOS 服务器上添加一个用户。出于某种原因,我无法使用 useradd 或 userdel 添加或删除它们,因此我手动编辑了 /etc/passwd 和 /etc/shadow,添加了它们。然后我能够以 root 身份使用 passwd 更改他们的密码,一切顺利。
至少我是这么认为的。现在,有些用户根本无法通过 SSH 登录 - 当系统提示输入密码时,他们只能Permission denied, please try again.
尝试三次,然后Permission denied (publickey,gssapi-with-mic,password).
这可能与 /etc/passwd 和 /etc/shadow 的更改无关 - 删除对这些文件的更改并不能解决问题。
编辑 1:新用户可以通过 ssh 登录,但一些老用户(包括 root)则不能。问题也只出现在 ssh 上 - 在物理机上登录并使用 su 都可以正常工作。
答案1
我认为手动将用户添加到/etc/passwd
和/etc/shadow
不是一个好主意。这些用户迟早会遇到麻烦。此外,您可能会输入错误记录。我不确定在这种情况下会有什么结果。
如果可能的话,我建议您将这些文件恢复到旧状态,然后重试使用useradd
命令添加这些用户。
答案2
运行pwck
和grpck
分别检查 /etc/passwd 和 /etc/group 文件的格式错误。这还会检查相关的影子文件。
答案3
我想到两个可能的原因:
/etc/passwd
您对或的更改/etc/shadow
在某种程度上存在缺陷。- 您忘记在更改用户的 uid 后更改用户的主目录所有者
chown -R user
。文件系统存储的是 uid 号,而不是用户名。
答案4
我不确定这是否是一个原因,但仍然值得尝试:
你有SELinux开启?因为如果上下文发生变化,许多应用程序将无法访问文件。