没有密码的用户-如何从非root帐户登录到该帐户


25

我刚刚开始使用Scientific Linux(7.0)(尽管我认为这个问题可能与发行无关。)。内核版本为3.10.0-123.20.1.el7.x86_64。

回到我的问题。

我切换到root帐户,然后test-account使用命令从那里创建了一个新的用户帐户adduser test-account。它没有提示我输入密码,也没有使用该选项来提供密码。所以我想这是一个“无密码”帐户。我可以从root帐户登录到该帐户-我想即使测试帐户有密码,我也可以不提供密码。但是,当我尝试从第三个帐户登录此(测试帐户)时-会提示我输入密码。而且仅按Enter不起作用。

是否可以从非root用户帐户登录到该帐户。有没有办法(无需切换到root或使用sudo)?


您系统的政策可能是要求输入密码。adduser知道-p设置密码的选项,不建议使用。因此,以root用户身份执行passwd test-account并设置密码。
ott

不,该帐户是在没有密码的情况下创建的,我什至可以通过从root切换到该帐户来访问它。我唯一不能做的就是从普通用户那里切换到它。
Lavya

您如何从根目录切换到它(您使用的是什么命令)?
roaima

@roaima su test-account。切换到test-account不带密码提示的情况(即使test-account有密码也将发生)。但是,当我尝试从另一个非特权用户帐户切换到测试帐户时,内核会要求我提示输入密码,并且它不接受无效(按eneter
Lavya 2015年

您已经收到了答案。请享用。
roaima

Answers:


29

在企业GNU / Linux及其衍生版本上,默认情况下,该adduser命令将创建一个禁用的用户,直到您为该用户明确指定密码为止。

这是CentOS 6.5上的示例,应与Scientific Linux相同。

 $ sudo adduser test
 $ sudo grep test /etc/shadow
 test:!!:123456:0:99999:7:::

其原因是因为在/etc/shadow文件中,密码字段!!如示例中所示。

一旦您passwd为该帐户运行,它将更改用户的密码并允许该用户登录。

因此,您应该能够执行以下操作,以使用户没有密码,只需创建一个帐户,然后删除密码即可。

 $ sudo adduser test
 $ sudo passwd -d test
 Removing password for user test.
 passwd: Success
 $ su test
 $ whoami
 test

现在,在我的示例中,任何用户都应该能够使用su和登录test。您将无需使用sudo该帐户登录。

尽管这是可行的,并且您可以拥有一个没有密码的帐户,但不建议这样做。如果仅设置用户密码,则应允许您登录。

$ sudo passwd test
[sudo] password for <YOURACCOUNT>:
Changing password for user test.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

“ adduser命令将创建一个被禁用的用户,直到您为该用户显式指定密码为止”:test-account 如果是这种情况(用户被禁用),我如何能够从root 切换到root?
Lavya

su test-account
内森·麦考伊

我要问的是,如果该帐户已禁用,那么如何使用suroot用户身份切换到该帐户?
Lavya

2
root用户可以su到具有外壳的任何帐户。如果将shell设置/bin/false为例如,它将无法正常工作。真是神奇root!许多用户帐户没有有效的外壳程序,仅用于以该用户身份执行特定程序。例如apache用户和apache网络服务器。
内森·麦考伊

在Ubuntu 18.04中,我无法使用空密码作为用户登录。
Ciro Santilli新疆改造中心法轮功六四事件

3

我有没有密码的用户来宾。这是它的记录:

访客:U6aMy0wojraho:17057:0:99999:7 :::

字符串“ U6aMy0wojraho”是访客用户的哈希密码。登录时,我只需按Enter即可输入密码,然后系统允许我进入。

您应该编辑文件/ etc / shadow,并在用户名和第一个冒号之后添加上述字符串。

我从Ubuntu live CD复制了此字符串-它的用户没有密码。


除了可接受的答案(passwd -d ...)以外,它还可以与sddm一起使用。
mzimmer

1
/etc/shadow直接编辑文件是有风险的,通常不建议这样做。拥有一个guest不错的帐户,但是使用工具编辑密码将减少潜在的不正确用户输入或多用户文件保存问题。
内森·麦考伊

@NathanMcCoy,我同意这是有风险的。但是GUI工具不允许输入空密码-至少需要6或8个字符。至少,我在Kubuntu上就是这种情况。
Raicho Nikolov '18年

@NathanMcCoy是的,可以使用它chpasswd -e来更安全地进行该操作:unix.stackexchange.com/a/472966/32558
Ciro Santilli新疆改造中心法轮功六四事件

这对于紧急恢复情况非常有用,可以插入硬盘(可以这么说)并编辑几个文件来修复计算机。专门添加此用户并将其暂时添加到sudoers中,然后使用串行控制台登录并修复任何损坏的openssh
Ray Foss

2

用户密码为空

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

不幸的是,密码提示仍然显示。

但是,如果您只是按Enter键而不输入任何内容,那么它将以用户身份登录test-user-0

这些-e标志chpasswd表明密码已经加密,并且U6aMy0wojraho是空字符串的哈希值。

在Ubuntu 18.04上测试。

BusyBox自动登录

至少在终端上,您无需创建没有密码的用户即可允许某人每次都不输入密码,inittab只需进行一点黑客操作即可:如何自动登录而无需在Buildroot BusyBox init中输入root用户名或密码?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.