由於 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 作業系統機器

顯然我已經更改了密碼,但沒有幫助。

怎麼了?我該如何修復它?

答案1

解決方案:

問題的根源是我的 ARM 板上的日期。這就是「密碼已過期」的原因。

要設定正確的日期,請使用:

# date -s '[current date]'

ARM 板上的命令,以及:

# hwclock -w

保留硬體上的日期設定。

答案2

如果您對盒子有實體存取權限,則可以以 root 身分修復它,而無需 - 可能不會,除非盒子上有另一個使用者帳戶,該帳戶未強制更改密碼並且可以 sudo 或 su 至 root

答案3

您的 RootFS 似乎存在多個問題。

  • 您的「passwd」執行檔似乎不是suid root
  • 您的用戶設定似乎處於停用狀態。

在這種情況下,我認為你無法透過 ssh 修復它。您可以存取任何形式的控制台(例如:串行)嗎?

您是如何創建(或從哪裡獲得)您的 RootFS 的?

如果您有權存取控制台,請嘗試:

  • 直接以 root 身分登入
  • “passwd 用戶名”
  • 輸入新的密碼
  • 透過 ssh 重試
  • 修復 /usr/bin/passwd 權限(詳細資訊取決於 busybox 的使用與否)

相關內容