it-swarm.cn

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

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

到处搜索,似乎我需要禁用该用户的密码,但是执行passwd -d bogus并没有帮助。实际上,这使情况变得更糟,因为我现在无需输入密码就可以登录到虚假文件。

有没有一种方法可以禁用给定帐户的常规登录?

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

92
Malabarba
passwd -l user

是你想要的。

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

su - user

但您必须以su - user作为根用户。

另外,您也可以通过在!中的用户密码前加上/etc/shadow(这是passwd -l在后台执行的所有操作)来完成相同的操作。 passwd -u将撤消此操作。

105
Chad Feller

passwd(1)的手册页介绍了passwd -l

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

所以

usermod --expiredate 1 [LOGIN]

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

39
Jörg Gottschlich

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

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

在第二种情况下,用户可以使用其他身份验证令牌(例如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. 关闭vi Esc:wq

方法2

锁定用户:passwd -l username

解锁用户:passwd -u username

28
Mansur Ul Hasan

您只需在/etc/passwd文件中进行一些更改即可,这非常简单。

只需简单地更改外壳程序(通常默认情况下为/bin/bash)即可,即,您可以使用此外壳程序登录,将其更改为/bin/nologin/bin/false。建议将其更改为/bin/nologin,因为/bin/false已过时。

7
PRABHAT PARASHAR

/bin/false设置为/etc/passwd中的Shell

4
danadam

当我们使用passwd -l user命令锁定用户时,在!!文件中指示“ /etc/shadow”。但是我们仍然可以从root帐户切换到用户Shell,但是不能通过其他普通用户登录Shell来切换到用户帐户。

我们还可以通过在/bin/nologin文件中提供/bin/false/etc/passwd来禁用帐户。因此,用户可能无法登录。

0
Sushil Musande