Wenn ich versuche, eine Verbindung mit einem anderen Computer herzustellen, geschieht Folgendes nach dem folgenden Befehl:
user1@host1:~$ ssh user2@host2
user2@host2's password:
Ich erhalte:
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 ist eine Ubuntu-Betriebssystemmaschine
Host2 ist eine Buildroot-OS-Maschine
Natürlich habe ich mein Passwort geändert, aber es hat nicht geholfen.
Was ist falsch? Wie kann ich das Problem beheben?
Antwort1
LÖSUNG:
Die Ursache des Problems ist das Datum auf meiner ARM-Platine. Dies ist der Grund dafür, dass das „Passwort abgelaufen ist“.
Um das richtige Datum einzustellen, verwenden Sie:
# date -s '[current date]'
Befehl auf einer ARM-Platine und:
# hwclock -w
um die Datumseinstellungen auf der Hardware beizubehalten.
Antwort2
Wenn Sie physischen Zugriff auf die Box haben, können Sie es als Root reparieren, ohne - wahrscheinlich nicht, es sei denn, Sie haben ein anderes Benutzerkonto auf der Box, für das keine erzwungene Kennwortänderung erforderlich ist und das mit sudo oder su auf Root zugreifen kann
Antwort3
Sie scheinen mehrere Probleme in Ihrem RootFS zu haben.
- Ihre ausführbare Datei "passwd" scheint kein suid root zu sein
- Ihre Benutzereinrichtung scheint deaktiviert zu sein.
Ich glaube nicht, dass Sie das Problem in diesem Zustand über SSH beheben können. Haben Sie Zugriff auf eine Konsole (z. B. seriell)?
Wie haben Sie Ihr RootFS erstellt (oder woher haben Sie es?)
Wenn Sie Zugriff auf die Konsole haben, versuchen Sie:
- direkt als Root anmelden
- "passwd Benutzername"
- Geben Sie ein neues Kennwort ein
- versuche es nochmal per ssh
- /usr/bin/passwd-Berechtigungen korrigieren (Details abhängig davon, ob Busybox verwendet wird oder nicht)