Когда я пытаюсь подключиться к другой машине, после этой команды:
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)