/etc/passwd
我的文件中有以下条目:
test:x:1002:1000::/home/test:/bin/bash
当我将其更改为test:x:1002:1000::/home/test:/bin/false
或test: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 文件通常不受欢迎,因为您最终可能会给自己带来更多问题。