假设我使用该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
有两种方法可以阻止用户登录:
- 您可以通过编辑来锁定用户
/etc/passwd
- 通过直接使用
passwd
开关发出-l
命令
在第二种情况下,用户可以使用另一个身份验证令牌(例如 SSH 密钥)登录。
方法#1
- 查找 nologin 所在位置:/bin/nologin 或 /bin/sbin/nologin
- 打开终端并以 root 身份登录
- 类型
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)
- 关闭viEsc :wq
方法#2
锁定用户:passwd -l username
解锁用户:passwd -u username
答案4
设置/bin/false
为 shell 中/etc/passwd