/etc/shadow 为空,但系统提示我输入密码

/etc/shadow 为空,但系统提示我输入密码

我有一块板(Pine64),在上面运行我定制的 Linux 发行版(使用buildroot)。

我配置root为没有密码,生成的/etc/shadow文件如下所示:

root::::::::
daemon:*:::::::
bin:*:::::::
sys:*:::::::
sync:*:::::::
mail:*:::::::
www-data:*:::::::
operator:*:::::::
nobody:*:::::::
avahi:*:::::::
dbus:*:::::::
mosquitto:*:::::::
sshd:*:::::::

我的/etc/passwd看起来像这样:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/false
bin:x:2:2:bin:/bin:/bin/false
sys:x:3:3:sys:/dev:/bin/false
sync:x:4:100:sync:/bin:/bin/sync
mail:x:8:8:mail:/var/spool/mail:/bin/false
www-data:x:33:33:www-data:/var/www:/bin/false
operator:x:37:37:Operator:/var:/bin/false
nobody:x:65534:65534:nobody:/home:/bin/false
avahi:x:1000:1000::/:/bin/false
dbus:x:1001:1001:DBus messagebus user:/var/run/dbus:/bin/false
mosquitto:x:1002:65534:Mosquitto user:/:/bin/false
sshd:x:1003:1002:SSH drop priv user:/var/empty:/bin/false

正如您所看到的,没有设置密码root

然而,当我尝试在启动后登录时,系统会提示我输入密码,但我无法提供密码(因为我没有设置密码)。我尝试的任何值都会产生一条incorrect password消息。

重要的:我正在启动我的系统,nfsroot因此根文件系统是从我的计算机上的 NFS 共享安装的。

我的 nfs 文件夹中passwd和的所有者都是,并且只允许对两者进行写入。shadowrootroot

那么您知道为什么我仍然被提示输入密码,尽管我不应该如此?

答案1

默认情况下,sshd 不允许空密码(参见允许空密码认证方法)。

还有使用PAM(默认情况下启用)这可能会导致您的 PAM 配置因空密码而失败。

也就是说,您真的想拥有一个完全开放的 root 帐户吗?

我的意思是,您可以轻松地使用无密码私钥为 root 用户设置公钥身份验证。通过这种方式,您无需输入密码即可登录,但并非每个具有网络访问权限的人都可以。

相关内容