Wie kann ich feststellen, ob mein Passwort festgelegt ist?

17

Ich benutze diesen Server seit einigen Monaten. Zu Beginn habe ich dem Administrator meinen öffentlichen SSH-Schlüssel gesendet und er hat das Konto für mich eingerichtet, und ich habe mich nur mit dem SSH-Schlüssel angemeldet. Anfangs hatte ich definitiv kein Passwort.

Seitdem kann ich ein Passwort mit eingerichtet haben oder nicht passwd. Im Moment, wenn ich es benutze, passwdsehe ich das.

$ passwd
Changing password for user myusername.
Changing password for myusername.
(current) UNIX password:

Es scheint zwar darauf hinzudeuten, dass ich ein Passwort habe, aber ich kann mich nicht erinnern, dies jemals getan zu haben.

Wie kann ich abschließend feststellen, ob mein Passwort gesetzt ist?

BEARBEITEN:
Ich kann mich nicht anmelden oder das Passwort ändern, da ich nicht weiß, wie das Passwort lautet (leeres Passwort funktioniert nicht). Die Distribution ist Fedora Release 20 (Heisenbug).

Decke Katze
quelle
Versuchen Sie, sich ohne Passwort anzumelden (und natürlich ohne Ihren privaten SSH-Schlüssel).
Didierc
Ich kann mich nicht anmelden, da ich das Passwort nicht kenne und das Leerzeichen nicht funktioniert. Ich habe diese Information in die ursprüngliche Frage eingefügt.
Decke Katze
1
In einer Anmeldekonsole entspricht ein leeres Kennwort keinem Kennwort.
Didierc
Sie werden aufgefordert, das Kennwort einzugeben, auch wenn für das Konto kein Kennwort konfiguriert ist. Wenn kein Kennwort konfiguriert ist, passwdwird unabhängig von Ihrer Eingabe ein falsches Kennwort angezeigt.
Gilles 'SO- hör auf böse zu sein'
Ich habe überprüft, dass auf einem Vanilla Fedora 20, der lokale Shadow-Passwörter verwendet, Sie passwdnicht nach Ihrem aktuellen Passwort gefragt werden, wenn Sie keines haben. Eine andere Möglichkeit zur Überprüfung ist die Eingabe su myusername; Wenn es kein Passwort gibt, wird nicht nach einem gefragt. All dies kann jedoch vom Systemadministrator außer Kraft gesetzt werden, indem beispielsweise die nullokOption aus den pam_unixEinträgen in entfernt /etc/pam.d/*wird. In diesem Fall kann ein Nicht-Administrator nicht feststellen, wer über Kennwörter verfügt und wer nicht, außer möglicherweise durch Timing-Tests.
Mark Plotnick

Antworten:

29

Der beste Weg ist mit dem folgenden Befehl:

passwd --status username

Vom Menschen passwd:

Kontostatusinformationen anzeigen. Die Statusinformation besteht aus 7 Feldern. Das erste Feld ist der Anmeldename des Benutzers. Das zweite Feld gibt an, ob das Benutzerkonto ein gesperrtes Kennwort (L), kein Kennwort (NP) oder ein verwendbares Kennwort (P) hat. Das dritte Feld gibt das Datum der letzten Passwortänderung an. Die nächsten vier Felder sind das Mindestalter, das Höchstalter, der Warnzeitraum und der Inaktivitätszeitraum für das Kennwort. Dieses Alter wird in Tagen angegeben.

Wenn also das zweite Ausgabefeld lautet NP, ist für diesen Benutzer kein Kennwort festgelegt.

jherran
quelle
Ich habe$ passwd --status Only root can do that.
Decke Katze
Versuchen Sie es in diesem Fall sudo passwd username --status.
Herran
Ich habe $ sudo passwd myusername --status [sudo] password for myusername:aber da ich mein Passwort nicht kenne, kann ich nicht weitermachen.
Decke Katze
Ich habe meinen ursprünglichen Befehl getestet und sollte mit einem neu erstellten Benutzer ohne spezielle Berechtigungen problemlos funktionieren: $ passwd --status testreturns test P 02/15/2015 0 99999 7 -1.
Herran
Seltsam. Ich frage mich, ob der Administrator dies nicht standardgemäß eingerichtet hat.
Decke Katze
4

Sie können dies auf zwei einfache Arten testen.

  1. Unmittelbar nachdem Sie das Passwort als root-Typ geändert loginhaben, werden Sie zu einer Anmelde- / Passwortabfrage weitergeleitet.

  2. Abhängig von Ihrer Systemwahrscheinlichkeit verwenden Sie Shadow-Passwörter. Die Datei dafür befindet sich in. /etc/shawdowSie können in dieser Datei nachsehen, ob in Ihrem Konto Änderungen vorgenommen wurden.

Hier ist ein Beispiel mit einem Konto ohne Kennwort:

postgres: :16462:0:99999:7:::

So könnte es für einen Benutzer mit einem Passwort aussehen:

dustin:$6$TQ8e8o92$T9KWfcEVeIpDytW/zSAZzM4512wd/DiiuaYwrYWheH3LYpOsISdRxrCLvPqJZZ66QqdetmaV0ALQohx8nQPFKK0:16425:0:99999:7:::

Hinweis zwischen : :ist das verschlüsselte Passwort und für das Postgres-Konto hatte es nichts

Dustin Hargrove
quelle
Bei Nummer 1 kann ich das Passwort nicht ändern, da ich nicht weiß, wie das Passwort lautet. Wenn ich ein Leerzeichen eingebe, heißt es passwd: Authentication token manipulation error. Für # 2 habe ich nicht /etc/shawdow. Es gibt eine /etc/shadow, aber die Erlaubnis ist 000. (nicht sicher, ob dies von Bedeutung ist) Ich habe vergessen zu erwähnen, dass ich Fedora Release 20 (Heisenbug) habe. Hätte diese Information wahrscheinlich in die ursprüngliche Frage stellen sollen.
Decke Katze
Ihr Token-Fehler beruht in der Regel auf falschen Berechtigungen. Bist du im Single Usermode? War es beim Booten ein normaler Boot? Um zu überprüfen, ob der Typ "mount" ist, müssen Sie sicherstellen, dass alles als rw (read and write) gemountet ist
Dustin Hargrove,
Auch das ist eine falsche Erlaubnis, welche Distribution ist das?
Dustin Hargrove
Ich glaube nicht, dass sich der Server im Einzelbenutzermodus befindet. Ich kann mich immer noch mit SSH-Anmeldeinformationen anmelden und andere Benutzer mit sehen who. Alles, was in aufgeführt mountist, ist als aufgeführt rw. Distribution ist Fedora Release 20 (Heisenbug).
Decke Katze
1

Versuchen Sie Folgendes:

passwd -S

Aus der passwd (1) -Manpage lesen wir:

-S Melden Sie den Kennwortstatus für das angegebene Konto. Der erste Teil gibt an, ob das Benutzerkonto gesperrt ist (LK), kein Kennwort (NP) hat oder ein vorhandenes oder gesperrtes Kennwort (PS) hat. Der zweite Teil gibt das Datum der letzten Passwortänderung an. Die nächsten Teile sind das Mindestalter, das Höchstalter, der Warnzeitraum und der Inaktivitätszeitraum für das Kennwort.

Trikelef
quelle
0

Möglicherweise möchten Sie die Datei / etc / passwd anzeigen. Das zweite Feld Ihres Benutzers gibt das Passwort an. Wenn nichts da ist, haben Sie möglicherweise kein Passwort für Ihr Login. Auf der anderen Seite, wenn Sie ein x in diesem Feld haben, haben Sie ein Passwort zugeordnet und es befindet sich möglicherweise in der Datei / etc / shadow

Dgsleeps
quelle
Vielen Dank! Es gibt ein x. Ich glaube, ich habe ein Passwort. Es gibt jedoch keine /etc/shadowDatei.
Decke Katze
1
@ceilingcat Wenn Sie ein sehen x, sagt das nichts darüber aus, ob ein Passwort festgelegt ist. Sie müssen nachschauen /etc/shadow(was erfordert, dass Sie root sind).
Gilles 'SO- hör auf böse zu sein'