Я не могу подключиться по SSH из-за предупреждения SUID

Я не могу подключиться по SSH из-за предупреждения SUID

Когда я пытаюсь подключиться к другой машине, после этой команды:

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)

Связанный контент