Ich bin über dieses Problem gestolpert, als ich versucht habe, neue FTP-Benutzer für vsftpd zu erstellen. Beim Erstellen eines neuen Benutzers mit dem folgenden Befehl und dem Versuch, sich mit FileZilla anzumelden, erhalte ich den Fehler "Falsches Passwort".
useradd f -p pass -d /home/f -s /bin/false
Danach enthält / etc / shadow
f:pass:1111:0:99:2:::
Einmal führe ich den folgenden Befehl aus und gebe den gleichen Pass weiter
passwd f
/ etc / shadow enthält
f:$1$U1c5vVwg$x5TVDDDmhi0a7RWFer6Jn1:1111:0:99:2:::
Es scheint, dass die Verschlüsselung erfolgt, wenn ich passwd ausführe , aber nicht bei useradd
Wichtig ist, dass ich mich danach mit denselben Anmeldeinformationen bei FTP anmelden kann.
Ich verwende CentOS 5.11, vsftpd für FTP und FileZilla für FTP Access
/ var / log / secure enthält:
Dec 17 useradd[644]: new group: name=f, GID=511
Dec 17 useradd[644]: new user: name=f, UID=511, GID=511, home=/home/f, shell=/bin/false
Warum funktioniert es nicht, wenn ich -p pass
an useradd übergebe? Was muss ich tun, damit es funktioniert?
/var/log/secure
$1$
angibt , dass MD5 verwendet wird . MD5 ist zwar nicht gerade schrecklich für Passwörter, aber heutzutage eher schwach. Es ist eine völlig andere Frage, aber ich möchte Sie dringend bitten, die Migration auf eine stärkere Hash-Funktion in Betracht zu ziehen./etc/shadow
werden nicht verschlüsselt, sondern gehashtAntworten:
Das funktioniert wie vorgesehen. Wenn Sie mit dem
useradd
Befehl ein Kennwort festlegen möchten , müssen Sie eine Hash-Version des Kennworts angebenuseradd
.Die Zeichenfolge
pass
erfüllt zwar die Formatkriterien für das Hash-Kennwortfeld in/etc/shadow
, es werden jedoch keine tatsächlichen Kennwort-Hashs für diese Zeichenfolge erstellt. Dies hat zur Folge, dass für dieses Konto in jeder Hinsicht ein Kennwort festgelegt ist. Jedes Kennwort, das Sie für den Zugriff verwenden, wird jedoch als nicht das richtige Kennwort zurückgewiesen.Siehe
man useradd
oder die useradd Dokumentation :quelle
man
useradd :Sie sollen ein gehashtes Passwort übergeben.
Kein Klartext-Passwort.
quelle
useradd
erwartet, dass Sie den Hash des Passworts übergeben, nicht das Passwort selbst. Sie können die folgende Variante Ihres Befehls verwenden, um demuseradd
Befehl ein Hash-Kennwort zuzuweisen :Um die verfügbaren Methoden herauszufinden, verwenden Sie:
Um zu vermeiden, dass das Kennwort in der Befehlszeile übergeben wird, geben Sie das Kennwort in eine Datei ein (mit einem Editor und ohne
echo
o.ä.) und gehen Sie folgendermaßen vor:Dadurch wird das gehashte Kennwort in der Befehlszeile übergeben, nicht jedoch das Klartextkennwort.
mkpasswd
kommt mit demexpect
Paket.quelle
passwd
in etwas anderes zu ändern ...