由于 SUID 警告,我无法连接 SSH

由于 SUID 警告,我无法连接 SSH

当我尝试连接另一台机器时,执行以下命令后:

user1@host1:~$ ssh user2@host2
user2@host2's password: 

我收到:

WARNING: Your password has expired.
You must change your password now and login again!
passwd: must be suid to work properly
Connection to host2 closed.
user1@host1:~$ 
  • host1 是 Ubuntu 操作系统机器

  • host2 是 Buildroot OS 机器

显然我已经更改了密码,但这没有帮助。

出了什么问题?我该如何修复?

答案1

解决方案:

问题的根源在于我的 ARM 板上的日期。这就是“密码已过期”的原因。

要设置正确的日期,请使用:

# date -s '[current date]'

ARM 板上的命令,以及:

# hwclock -w

保留硬件上的日期设置。

答案2

如果你有物理访问该盒子的权限,你可以以 root 身份修复它,除非你在盒子上有另一个用户帐户,并且该帐户没有强制更改密码,并且可以通过 sudo 或 su 转换为 root

答案3

您的 RootFS 中似乎存在多个问题。

  • 你的“passwd”可执行文件似乎没有 suid root
  • 您的用户设置似乎处于禁用状态。

在这种情况下,我认为您无法通过 ssh 修复它。您可以访问任何形式的控制台(例如:串行)吗?

您是如何创建(或者从哪里获得)您的 RootFS 的?

如果您有权访问控制台,请尝试:

  • 直接以 root 身份登录
  • “密码 用户名”
  • 输入新的密码
  • 通过 ssh 重试
  • 修复 /usr/bin/passwd 权限(细节取决于是否使用 busybox)

相关内容