禁用用户登录而不禁用帐户

禁用用户登录而不禁用帐户

假设我使用该adduser命令创建一个名为“bogus”的用户。在不禁用帐户的情况下,如何确保该用户不是可行的登录选项。简而言之,我希望可以通过 访问该帐户su - bogus,但我不希望通过常规登录提示来访问它。

环顾四周,我似乎需要禁用该用户的密码,但这样做passwd -d bogus并没有帮助。事实上,这让事情变得更糟,因为我现在甚至不需要输入密码就可以登录到虚假帐户。

有没有办法禁用给定帐户的常规登录?

注意:需要明确的是,我知道如何从图形登录屏幕(例如 gdm)的菜单选项中删除用户,但这些方法只是隐藏帐户,而没有实际禁用登录。我正在寻找一种完全禁用常规登录的方法,包括文本模式。

答案1

passwd -l user

就是你想要的。

这将锁定用户帐户。但你仍然可以

su - user

但你必须su - user以 root 身份。

!或者,您可以通过在用户密码前面添加 a 来完成相同的操作/etc/shadow(这都是passwd -l在幕后完成的)。并将passwd -u撤消此操作。

答案2

的手册页passwd(1)passwd -l

请注意,这不会禁用该帐户。用户仍然可以使用另一个身份验证令牌(例如 SSH 密钥)登录。要禁用该帐户,管理员应使用 usermod --expiredate 1 (这会将帐户的到期日期设置为 1970 年 1 月 2 日)。

所以

usermod --expiredate 1 [LOGIN]

在我看来,禁用用户不应再使用的帐户的正确方法(例如,因为他离开了公司)。

答案3

有两种方法可以阻止用户登录:

  1. 您可以通过编辑来锁定用户/etc/passwd
  2. 通过直接使用passwd开关发出-l命令

在第二种情况下,用户可以使用另一个身份验证令牌(例如 SSH 密钥)登录。

方法#1

  1. 查找 nologin 所在位置:/bin/nologin 或 /bin/sbin/nologin
  2. 打开终端并以 root 身份登录
  3. 类型vi /etc/passwd

现在您可以按passwd文件键Ins编辑文件。

使用选项更改以下行nologin/bin/bash表示用户能够登录)。

root:x:0:0:root:/root:/bin/bash

对此。nologin表示用户无法登录。

root:x:0:0:root:/root:/bin/nologin

(或使用 /bin/sbin/nologin)

  1. 关闭viEsc :wq

方法#2

锁定用户:passwd -l username

解锁用户:passwd -u username

答案4

设置/bin/false为 shell 中/etc/passwd

相关内容