Wie sollte jemand ein verschlüsseltes Passwort für / etc / shadow erstellen?

9

Ich richte ein neues Konto auf einer Linux-Box für den Zugriff auf das Subversion-Repository ein und kann das Kennwort an den neuen Benutzer senden. Ich glaube jedoch, dass es für diesen neuen Benutzer ein Befehlszeilenprogramm gab, mit dem er das gewünschte Kennwort in ein Format verschlüsseln kann, das ich direkt in die Datei / etc / shadow kopieren / einfügen kann.

Was war der vollständige Befehl, den dieser neue Benutzer auf der Konsole ausführen sollte (z. B. Bash), um ein solches verschlüsseltes Kennwort zu erstellen?

UPDATE: Der Benutzer darf sich nicht am Computer anmelden, und das Konto wird lediglich für den Zugriff auf svn + ssh: // verwendet. Daher kann der Benutzer es nicht selbst ändern.

Egon Willighagen
quelle
Der Benutzer fragt nach Bash-Skripten, da er dies offensichtlich nicht manuell tun wird.
Tim Post

Antworten:

15

Der Benutzer kann auf seinem Computer Folgendes ausführen:

echo "password"|openssl passwd -1 -stdin

und senden Sie dann die Ausgabe.

Daniel
quelle
+1 macht genau das, wonach Sie suchen.
Antoine Benkemoun
Warum gibt dieser Befehl jedes Mal einen anderen Wert an, wenn ich ihn aufrufe?
Egon Willighagen
2
Das Format der Ausgabe ist $ id $ salt $ verschlüsselt. Unterschiedliche IDs und unterschiedliche Salt-Werte geben Ihnen eine andere verschlüsselte Zeichenfolge. Die ID ist der verwendete Algorithmus: 0-DES, 1-> MD5, 2a-> Blowfish, 5-> SHA-256, 6-> SHA512
Gonzalo
OK, also muss ich herausfinden, wie man eine bestimmte ID (die immer gleich war) und Salt (die sich bei jedem Aufruf geändert hat) auslöst ... macht Sinn.
Egon Willighagen
2

Das Format des Passworts im Schatten kann variieren. Sie könnten es auf MD5 oder das gute alte DES3 einstellen oder ... Sie können Ihrem Benutzer ein Passwort senden und ihn zwingen, es beim ersten Login zu ändern ( # chage -d 0 username)

Gonzalo
quelle
1

Anstatt sie das Passwort verschlüsseln und an Sie senden zu lassen, sagen Sie ihnen einfach, dass sie Folgendes eingeben sollen:

passwd

Es wird alles tun, was Sie wollen, mit dem zusätzlichen Vorteil, dass sie ihre Passwörter ohne zusätzliche Arbeit für Sie ändern können.

EDIT: Nach dieser gibt es angeblich ein Befehl namens makepassword , dass Sie für Debian / Ubuntu bekommen kann.

Brendan Long
quelle
Dafür muss der Benutzer bereits angemeldet sein. Das OP möchte, dass eine Lösung das Kennwort sicher festlegt, bevor sich der Benutzer zum ersten Mal anmeldet.
Daniel Pryden
1
Es scheint genauso sicher zu sein, ein Passwort zufällig zu generieren und es bei der Anmeldung ändern zu lassen, wie ein Passwort zu generieren und es manuell hinzuzufügen.
Brendan Long
Der Benutzer wird sich eigentlich nie anmelden (Shell: / bin / false) und nur SVN Lese- / Schreibzugriff zulassen ...
Egon Willighagen
2
Sie könnten Shell setzen: / usr / bin / passwd: D
Brendan Long
1
Ich meine diesen letzten Kommentar als Witz, aber anscheinend wird es funktionieren: markmail.org/message/ekuxvnhdagywy4i5
Brendan Long
0

/ etc / passwd und / etc / shadow lassen sich sehr einfach mit den üblichen Befehlszeilentools (dh grep, awk, sed, tr usw.) tokenisieren.

Interessant wird das eigentliche Passwort-Hash-Feld in / etc / shadow. Das Präfix gibt an, wie das Passwort verschlüsselt wurde. Vom Schatten des Menschen (5):

The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.

Wie es verschlüsselt wurde, hängt weitgehend davon ab, wie alt das installierte Betriebssystem ist. Es ist wichtig, dem zweiten Feld in / etc / shadow besondere Aufmerksamkeit zu schenken.

Sie sollten alle Anstrengungen unternehmen, um dem vom System verwendeten Hash zu folgen, sei es DES, MD5 usw., da er so einfach zu erkennen ist.

Tim Post
quelle
0

Warum nicht SU in den Benutzer und passwd ausführen?

Esben Skov Pedersen
quelle
Weil ich das Passwort nicht wissen möchte ... oder es mir unverschlüsselt zusenden lassen möchte.
Egon Willighagen
0

Gibt es eine Möglichkeit, diese Passwörter über die Befehlszeile zu generieren? Ja, mit dem Debian-Paket makepasswd (aber nur für MD5):

echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.

Dies funktioniert jedoch nicht per Kopieren und Einfügen in / etc / shadow. Um das Passwort in einigen Linux-Distributionen per Skript zu ändern, können Sie Folgendes verwenden:

echo oracle:mypasswd | chpasswd

oder

echo -n mypasswd | passwd --stdin oracle

quelle