ARCH-Chroot: chpasswd authentication token manipulation error?
Ich habe ein Installations-Script für Arch-Linux geschrieben.
Doch wenn dieser Befehl ausgeführt wird:
arch-chroot /target bash -c "echo root:'$root_pass' | chpasswd"
Bekomme ich immer einen "authentication token manipulation error". Wie behebe ich das?
Ich chroote mich nicht in das Installations-verzeichnis rein und führe dann alle Befehle aus, sondern chroote ich mich für jeden Befehl erneut rein.
Wer möchte kann sich den ganzen Code mal unter https://github.com/Niklas20114552/arch-tui-installer/blob/main/setup angucken.
1 Antwort
Der "authentication token manipulation error" wird normalerweise angezeigt, wenn du versuchst, das Passwort eines Benutzers zu ändern, während der Benutzer sich noch angemeldet hat. Eine Möglichkeit, dieses Problem zu beheben, wäre, sicherzustellen, dass der Benutzer "root" sich nicht beim aktuellen System anmeldet, während du das Passwort änderst.
Eine andere Möglichkeit wäre, den Befehl "chpasswd" in einem Skript zu verwenden, das in der Arch-Linux-Umgebung ausgeführt wird, die du mit dem Befehl "arch-chroot" erstellt hast. Du könntest zum Beispiel eine Datei mit dem Namen "passwd.sh" erstellen und den Befehl "echo root:'$root_pass' | chpasswd" darin platzieren. Dann könntest du das Skript mit dem Befehl "arch-chroot /target bash /passwd.sh" ausführen, um das Passwort von "root" zu ändern.
Es könnte sein, dass das Problem daran liegt, dass das Passwort für das root-Konto zu kurz ist. Das Passwort muss mindestens 6 Zeichen lang sein. Versuche, ein längeres Passwort zu verwenden und führe dann den Befehl erneut aus.
Es könnte auch sein, dass das Passwort besondere Zeichen enthält, die nicht verarbeitet werden können. Versuche, ein Passwort ohne Sonderzeichen zu verwenden und führe den Befehl erneut aus.
Wenn das Problem weiterhin besteht, gibt es möglicherweise ein anderes Problem mit dem chpasswd-Befehl. Du könntest versuchen, den Befehl in einer normalen Shell auszuführen, um zu sehen, ob das Problem dort auftritt oder ob es spezifisch für den arch-chroot-Befehl ist. Wenn das Problem in einer normalen Shell auftritt, könntest du versuchen, das Passwort manuell mit dem passwd-Befehl zu ändern, um herauszufinden, ob es ein Problem mit dem chpasswd-Befehl selbst gibt.
Oder dass ich die Anführungszeichen falsch gesetzt habe. Ich probiere es noch mal
Nein, mit den Anführungszeichen funktioniert es leider immer noch nicht. Mein Passwort ist übrigends 9 Zeihen lang. Und es funktioniert aus irgendeinen Grund nur in den Skript nicht, wenn ich die Variablen und den Befehl außerhalb des Skript (aber mit arch-chroot) ausführe funktioniert es.
Mmpf. Ich habe mich vertippt. Es funktioniert jetzt
Immer noch der gleiche Fehler