是防止用户login到服务器的唯一方法,将用户shell设置为/ dev / null?
使用passwd -l另一种方法是使用passwd -d并删除用户的密码。
同意ironchef关于configuration你的sshd AllowUsers或AllowGroups或者DenyUsers或DenyGroups可能是一个很好的解决scheme,这取决于你正在做什么。
关于设置拒绝shell的选项。 如果你有/ sbin / nologin可用,可能比/ dev / null或/ bin / false更可取。 使用/ sbin / nologin基本上具有相同的效果(非零退出),但用户获得关于login被禁用的短消息的额外奖金。
既然你似乎想保留这个帐户,我想你可能会用它来做别的事情? 取决于是什么,账户的locking可能是也可能不是一个好主意。
如前所述,请让人们知道您要解决什么问题,等等。通常您可以通过这种方式获得更好的build议。
我会问你想做什么来获得更好的想法。 为了方便起见,如果只允许ssh作为访问方法,那么可以通过使用AllowUser限制可以login的用户(只有明确允许用户使用AllowUser的用户才能被sshdlogin)。
您应该将其设置为/ bin / false而不是/ dev / null。
usermod -L myaccountname将禁用该用户的密码
如果用户有一个SSH公共密钥,你可能想禁用它: rm /home/clem/.ssh/authorized_keys* (使用mv如果你想稍后恢复)你也可以用sshd的AllowUser指令明确地限制允许的用户在/etc/ssh/sshd.conf中)。
Pam_access提供了一个很好的方法来限制对一部分用户的访问。 查看“man pam_access”了解更多详情。 pamconfiguration将不得不被修改。 大部分configuration都在/etc/security/access.conf中。 这个模块非常灵活地限制对特定用户或属于特定组的用户的访问。 这些限制可以应用于所有服务,也可以仅限于特定服务,具体取决于pam中包含的pam_access的位置。
实际上,我已经跑了两个单独的access.conf文件,使用一个用于shell访问,一个用于ftp / rcp访问。 Pam_access允许我们为各种协议维护单独的策略。 这种灵活性的下降是configuration有点复杂,可能并不需要。