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 OSマシンです

  • host2はBuildroot OSマシンです

もちろんパスワードを変更しましたが、効果はありませんでした。

何が問題なのでしょうか? どうすれば修正できますか?

答え1

解決:

問題の原因は、ARM ボード上の日付です。これが「パスワードの有効期限が切れています」という理由です。

正しい日付を設定するには、以下を使用します。

# date -s '[current date]'

ARM ボード上のコマンド、および:

# hwclock -w

ハードウェアの日付設定を保持します。

答え2

ボックスに物理的にアクセスできる場合は、rootとして修正できます。ただし、ボックスにパスワード変更が強制されていない別のユーザーアカウントがあり、sudoまたはsuでrootになれる場合は別です。

答え3

RootFS に複数の問題があるようです。

  • 「passwd」実行ファイルはsuid rootではないようです
  • ユーザー設定が無効状態になっているようです。

この状態では、ssh 経由で修正することはできないと思います。何らかの形式のコンソール (例: シリアル) にアクセスできますか?

RootFS をどのように作成しましたか (またはどこで入手しましたか)?

コンソールにアクセスできる場合は、以下を試してください。

  • ルートとして直接ログインする
  • 「パスワード ユーザー名」
  • 新しいパスワードを入力
  • ssh経由でもう一度試してください
  • /usr/bin/passwd の権限を修正します (詳細は busybox の使用の有無によって異なります)

関連情報