Was passiert, wenn ich alle Benutzerpasswörter lösche?

Was passiert, wenn ich alle Benutzerpasswörter lösche?

Ich habe einen Fedora VPS mit einem Root-Benutzer ohne Passwort. Ich melde mich mit SSH-Schlüsseln an.

Ich hatte auf diesem Server ein anderes, weniger privilegiertes Konto, das ich für die Webverwaltung verwendete. Ich habe jetzt auch dessen Passwort gelöscht.

Wenn auf einem Server keine Benutzer mit Passwörtern vorhanden sind, was genau würde dann passieren, wenn ich beispielsweise meinen SSH-Schlüssel verlieren würde? Wäre der Server dann dauerhaft nicht mehr verfügbar, da es keine Möglichkeit gibt, sich bei ihm anzumelden?

Und wie sudoverhält sich das Programm, wenn weder der Root-Benutzer noch der aufrufende Benutzer über Passwörter verfügen? Ich habe es ausprobiert und es hat mich nicht einmal nach einem Passwort gefragt: Es hat einfach funktioniert, da ich diese user ALL=(ALL) ALLZeile in meiner Sudoers-Datei habe (sollte ich das ändern?)

Antwort1

Wenn Sie das zweite Feld der /etc/passwdDatei entfernen, können sich Benutzer ohne Probleme anmelden. Ein einfacher Anmeldeversuch genügt und sie können sich anmelden. So etwas ist also wahrscheinlich nichts, was Sie tun möchten.

root:$1$iM/2lekk$rXUAcF5fY8ddLL.B1bkH63:12242:0:99999:7:::

/etc/passwd-Grundlagen

                               ss der Passwd-Datei

  1. Benutzername: Wird bei der Benutzeranmeldung verwendet. Er sollte zwischen 1 und 32 Zeichen lang sein.
  2. Passwort: Ein x-Zeichen zeigt an, dass das verschlüsselte Passwort in der Datei /etc/shadow gespeichert ist.
  3. Benutzer-ID (UID): Jedem Benutzer muss eine Benutzer-ID (UID) zugewiesen werden. Die UID 0 (Null) ist für Root reserviert und die UIDs 1-99 sind für andere vordefinierte Konten reserviert. Weitere UIDs 100-999 sind vom System für Administrator- und Systemkonten/-gruppen reserviert.
  4. Gruppen-ID (GID): Die primäre Gruppen-ID (gespeichert in der Datei /etc/group)
  5. Benutzer-ID-Info: Das Kommentarfeld. Hier können Sie zusätzliche Informationen über die Benutzer hinzufügen, z. B. den vollständigen Namen, die Telefonnummer usw. Dieses Feld wird per Fingerbefehl verwendet.
  6. Home-Verzeichnis: Der absolute Pfad zum Verzeichnis, in dem sich der Benutzer befindet, wenn er sich anmeldet. Wenn dieses Verzeichnis nicht existiert, wird das Benutzerverzeichnis zu /
  7. Befehl/Shell: Der absolute Pfad eines Befehls oder einer Shell (/bin/bash). Normalerweise ist dies eine Shell. Beachten Sie, dass es nicht unbedingt eine Shell sein muss.

ausgeliehen vonGrundlegendes zum Dateiformat /etc/passwd

Deaktivieren von Kennwortanmeldungen

Es besteht ein kleiner Unterschied zwischen dem leeren Feld mit einem x ( :x:) und einem :!:in der /etc/shadowDatei. Das bedeutet, dass das Konto absichtlich so eingerichtet ist, dass keine Anmeldung möglich ist, was wahrscheinlich eher das ist, wonach Sie suchen.

/etc/Schatten

root:!:15669:0:99999:7:::

Das Gleiche kann für jedes beliebige Konto gemacht werden. Ich würde Ihnen wahrscheinlich diese Vorgehensweise empfehlen, wenn Sie wirklich nur sshAnmeldungen mit einem öffentlichen/privaten Schlüssel zulassen möchten.

Andere Fragen

Wenn auf einem Server keine Benutzer mit Passwörtern vorhanden sind, was genau würde dann passieren, wenn ich beispielsweise meinen SSH-Schlüssel verlieren würde? Wäre der Server dann dauerhaft nicht mehr verfügbar, da es keine Möglichkeit gibt, sich bei ihm anzumelden?

Nein, solange Sie physischen Zugriff auf den Server haben, können Sie jederzeit auf das System zugreifen. Es ist ein Neustart erforderlich und dies könnte bei Verwendung eines VPS etwas schwierig sein, sollte aber möglich sein.

Normalerweise starten Sie das System im Einzelbenutzermodus. Dann können Sie die /etc/passwd& /etc/shadow-Dateien nach Bedarf bearbeiten.

Und wie verhält sich das sudo-Programm, wenn weder der Root-Benutzer noch der aufrufende Benutzer ein Passwort haben? Ich habe es ausprobiert und es hat mich nicht einmal nach einem Passwort gefragt: Es hat einfach funktioniert, da ich diese Zeile user ALL=(ALL) ALL in meiner sudoers-Datei habe (sollte ich das ändern?)

Ja, ohne Passwörter sudowird die Nutzung schwieriger. Es gibt Methoden, um beim Umgang mit andere Quellen zu verwenden sudo. Siehe dieses U&L Q&A mit dem Titel:Legen Sie das Sudo-Passwort anders fest als das Login-Passwort.

Antwort2

Beachten Sie, dass es mehrere Dinge gibt, die als „Löschen eines Passworts“ bezeichnet werden könnten. Unter Linux:

  • passwd -d USERRichtet das Konto so ein, dass die Anmeldung ohne Kennwort möglich ist. (Einige Dienste, insbesondere SSH, sind in diesem Fall so eingerichtet, dass die Anmeldung blockiert wird.)
  • passwd -l USERsperrt das Passwort des Kontos: Es werden keine Passwörter akzeptiert. Eine Anmeldung mit anderen Mitteln wie SSH-Schlüsseln oder Sudo ist weiterhin möglich.`
  • usermod -e 1 USERsperrt das Konto (indem das Ablaufdatum des Kennworts auf ein vergangenes Datum gesetzt wird): Es wird unmöglich, sich über irgendeinen Dienst bei diesem Konto anzumelden.

Ich gehe davon aus, dass Sie sich auf die zweite Bedeutung beziehen: Sie haben die Anmeldung bei diesen Konten mit einem Kennwort unmöglich gemacht, den Zugriff darauf aber weiterhin über SSH mit einem Schlüssel oder mit Sudo ermöglicht.

Wenn Sie das Kennwort für Ihr Konto deaktiviert haben, können Sie sudo nicht mehr verwenden.Sie haben eine Schonfrist, während der sudo Sie nicht erneut nach Ihrem Passwort fragt. Danach wird sudo Sie, sofern Sie die Standardkonfiguration nicht auf ungewöhnliche Weise geändert haben, nach Ihrem Passwort fragen. Sie können dieses Passwort nicht mehr eingeben, da es kein weiteres Passwort gibt. Dies gilt nicht für sudoers-Regeln mit dem NOPASSWDTag.

Das Entfernen von Passwörtern macht das System nicht sicherer als die Wahl starker Passwörter. Wenn Ihr VPS eine Möglichkeit bietet, sich über eine virtuelle Konsole anzumelden, generieren Sie ein langes, zufälliges Passwort für das Root-Konto, testen Sie, ob es funktioniert, drucken Sie es aus und legen Sie den Zettel in Ihren Safe. Auf diese Weise haben Sie eine Möglichkeit, den Zugriff auf Ihr System wiederherzustellen, wenn etwas schief geht (z. B. „Ups, ich habe mich aus SSH ausgesperrt“ oder „Ups, ich habe mich aus Sudo ausgesperrt“). Wählen Sie für Ihr Konto ein kürzeres Passwort, das Sie sich merken können, deaktivieren Sie Passwörter für SSH-Anmeldungen (optional) und geben Sie Ihr Passwort ein, um sudoRoot zu werden. Eine zusätzliche Authentifizierungsebene von Ihrem normalen Konto zum Root-Konto ist nützlich, da es viel schwieriger ist, einen unentdeckten Trojaner in ein Nicht-Root-Konto einzuschleusen.

Antwort3

Kein Passwort zu haben ist meistens kein Problem.

Ja, wenn Sie nur die Authentifizierung per SSH-Schlüssel zulassen und Ihren SSH-Schlüssel verlieren, können Sie sich nicht mehr anmelden. In diesem Fall können Sie beispielsweise eine Live-CD booten, das Originalsystem mounten und ein Root-Passwort hinzufügen. (Wenn Sie diese Option nicht haben, ist es vielleicht besser, für alle Fälle ein Root-Passwort zu haben.)

Sudo kann so konfiguriert werden, dass kein Passwort abgefragt wird. NOPASSWD:Dies kann optional aktiviert werden. (Siehe man sudoers.)

Beachten Sie, dass es viele andere Möglichkeiten zur Authentifizierung gibt. Sie können diese aktivieren, indem Sie IhrenPAMSystem.

verwandte Informationen