adduser
命令创建了一个名为“ bogus”的用户。在不禁用帐户的情况下,如何确定该用户将不是可行的登录选项。简而言之,我希望可以通过su - bogus
访问该帐户,但是我不希望通过常规的登录提示符访问该帐户。搜索时,似乎我需要禁用该用户的密码,但是做
passwd -d bogus
没有帮助。实际上,这使情况变得更糟,因为现在我什至无需输入密码就可以登录到伪造的产品。是否可以禁用给定帐户的常规登录?
注意:请注意,我知道如何从图形登录屏幕(如gdm)的菜单选项中删除用户,但是这些方法只是隐藏了帐户,而没有实际禁用登录。我正在寻找一种完全禁用常规登录(包括文本模式)的方法。
#1 楼
passwd -l user
是您想要的。
这将锁定用户帐户。但是您仍然可以
su - user
,但是您必须以root用户身份
su - user
。或者,您可以完成相同的操作通过在
!
中的用户密码前面加上/etc/shadow
可以解决此问题(这是passwd -l
在后台执行的所有操作)。而passwd -u
将撤消此操作。评论
通过使用passwd -l选项,您应该知道用户可以使用其他身份验证令牌(例如SSH密钥)登录。
–pl1nk
13年2月20日在16:42
请参阅以下有关如何避免这种情况的推荐解决方案的解答。
–Jörg Gottschlich
2014-10-29 15:58
这在ubuntu 16.04上不起作用。它将更改过期日期,并且不再允许su-用户。
–梅林
17年2月7日在17:09
这与为adduser提供的--disabled-password选项相同吗?创建没有--disabled-password的用户然后在该用户上运行passwd -l是否会获得与首先使用--disabled-password运行adduser相同的结果?
–haridsv
18年4月16日在9:18
#2 楼
passwd(1)
的手册页上介绍了passwd -l
:请注意,这不会禁用该帐户。用户可能仍然可以
使用其他身份验证令牌(例如SSH
密钥)登录。要禁用该帐户,管理员应使用usermod
--expiredate 1(此设置该帐户的到期日期为1970年1月2日,
1970)。
所以
usermod --expiredate 1 [LOGIN]
对我来说就像是禁用帐户的正确方法,用户应该再也不能使用它了(例如,因为他离开了公司)。
评论
在我的CentOs 6.3上,passwd -l会阻止用户的ssh连接,而usermod --expiredate 1不会!
–fduff
15年2月6日在8:20
在我的CentOS 7.4上,passwd -l不再阻止用户的ssh连接,而usermod --expiredate 1用户确实阻止了。每个人密码也可以使用chage -E 0 user阻止用户。应用usermod或chage之后,我可以sudo su user
–user12345
17-10-23在20:42
usermod --expiredate 0 [LOGIN]也有效,它将过期日期设置为1970年1月1日,而将1设置为1970年1月2日。
–slm♦
17年11月15日在4:39
“不应使用值0,因为它将被解释为无有效期的帐户或1970年1月1日到期。” -影子(5)
–约翰内斯
18年8月5日在7:07
#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)
关闭vi Esc:wq
方法#2
要锁定用户:
passwd -l username
要解锁用户:
passwd -u username
评论
在Ubuntu 14.04系统上,我找到了/ usr / sbin / nologin而不是/ bin / nologin。
–丹尼斯·威廉姆森
2014年10月10日23:25
提示:使用哪个nologin来确定系统的正确路径
–musicin3d
20-10-9在20:49
在现代发行版中,如果用户的shell设置为nologin,则您将无法再成功使用su-user,因为您将被弹回。该帐户当前不可用。尽管对于用passwd -l锁定的帐户,您仍然可以成功。
– Marcin Orlowski
20-10-10在17:53
#4 楼
它非常简单,您只需在/etc/passwd
文件中进行一些更改。只需更改外壳程序(默认情况下通常是
/bin/bash
)即可,即,您可以使用此外壳程序登录,将其更改为/bin/nologin
或/bin/false
。由于/bin/nologin
已过时,建议将其更改为/bin/false
。#5 楼
将/bin/false
设置为/etc/passwd
中的外壳评论
当将shell设置为/ bin / false时,将阻止使用su充当该用户。此外,使用/ bin / false不会产生错误,也不会提示发生了什么问题-如果确实想防止以su身份使用su来获取该用户的shell,则应将shell更改为/ sbin / nologin确实会产生错误。
– HedgeMage
11年8月24日在16:22
不,对于在passwd中使用/ bin / false shell的用户来说,su仍然可行-只需使用--shell选项即可:su---shell / bin / sh bogus。
–马特·科瓦奇(Matej Kovac)
2014-2-27在9:56
/ usr / sbin / nologin与/ bin / false具有相同的作用,但也显示有用的信息性消息。
–罗德
18年1月31日在15:20
#6 楼
当我们使用passwd -l user
命令锁定用户时,在!!
文件中会显示“ /etc/shadow
”。但是我们仍然可以从root帐户切换到用户外壳程序,但是不能通过其他普通用户登录外壳程序切换到用户帐户。我们还可以通过在以下帐户中提供
/bin/nologin
或/bin/false
来禁用帐户到/etc/passwd
文件。因此用户可能无法登录。#7 楼
假设您要使用新的用户帐户开始: sudo adduser --no-create-home --disabled-password --disabled-login <uname>
使用
usermod --expiredate 1 <uname>
我遇到了这个帐户的问题不能再用于任何用途(例如,用于samba登录)。我的用例是我想禁用ssh,普通...登录的所有功能,但仍将其用作Samba用户。#8 楼
您可以使用命令usermod -s /sbin/nologin username
评论
您的-d是删除密码的标志。这与禁用它不同(称为锁定,请参阅乍得的答案)。您可能希望完全禁用它们:unix.stackexchange.com/questions/7690/…另请参见以下Ubuntu的提问:askubuntu.com/questions/282806/how-to-enable-or-disable-a-user