/sbin/nologin 和 /bin/false 在 /etc/passwd 中作为用户 shell 被忽略

/sbin/nologin 和 /bin/false 在 /etc/passwd 中作为用户 shell 被忽略

/etc/passwd我的文件中有以下条目:

test:x:1002:1000::/home/test:/bin/bash

当我将其更改为test:x:1002:1000::/home/test:/bin/falsetest:x:1002:1000::/home/test:/sbin/nologin时,我仍然可以使用test用户名通过 SSH 登录到这台计算机。为什么会这样呢?

答案1

NSCD缓存密码和组信息。尝试nscd -i passwd直接nscd -i group修改这些文件后。

答案2

/bin/false在文件中使用/etc/passwd必须禁用用户 shell 访问。如果您尝试通过 ssh 连接,它会提示您输入密码,但尽管您输入了密码,它还是会关闭连接。

如果您不想允许用户通过任何其他方式登录,可以使用passwd <username> -l阻止帐户登录。

答案3

从您提出问题的方式来看,听起来您正在手动修改 passwd 文件。

你尝试过使用吗usermod?纵观手册页usermod -L <account>,如果您只想禁用该帐户的登录,则可以使用。如果您想更改外壳,请使用usermod -s <shell> <account>.

手动修改 passwd 文件通常不受欢迎,因为您最终可能会给自己带来更多问题。

相关内容