最近,我需要将用户添加到我们的CentOS服务器。 出于某种原因,我无法使用useradd或userdel添加或删除它们,所以我手动编辑了/ etc / passwd和/ etc / shadow,添加了它们。 然后我可以使用passwd作为root来更改密码,一切都很好。
或者我想。 现在,有些用户无法通过SShlogin – 当提示input密码时,他们被授予Permission denied, please try again. 三次尝试,然后Permission denied (publickey,gssapi-with-mic,password).
这可能与/ etc / passwd和/ etc / shadow的更改无关 – 删除对这些文件的更改并不能解决问题。
编辑1:新用户能够通过sshlogin,但一些老用户(包括根)不是。 这个问题也是在ssh上login到物理机器上,使用su,两者都没有问题。
我认为手动添加用户到/etc/passwd和/etc/shadow是一个坏主意。 这些用户迟早会面临麻烦。 另外,您可能错误键入了一些logging。 我不确定在这种情况下会有什么结果。
如果可能,我build议您将这些文件还原到旧状态,然后重试使用useradd命令添加这些用户。
运行pwck和grpck分别检查/ etc / passwd和/ etc / group文件中的格式错误。 这也检查相关的影子文件。
我想到了两个可能的原因:
/etc/passwd或/etc/shadow /etc/passwd更改在某种程度上是格式错误的。 chown -R user更改用户主目录所有者后更改他们的uid。 文件系统存储用户名,而不是用户名。 我不确定,如果这可能是一个原因,但它仍然值得尝试:
你有SELinux打开吗? 因为,如果上下文发生变化,许多应用程序将无法访问文件。