Ich habe die Beschreibung dieses Befehls aus einem Buch gelesen,
passwd:
Ändert das Passwort für einen vorhandenen Benutzer.
chpasswd:
Liest eine Datei mit Paaren aus Anmeldenamen und Kennwort und aktualisiert die Kennwörter.
Es scheint, dass diese Befehle die gleichen Aufgaben ausführen. Gibt es einen Unterschied zwischen ihnen?
BEARBEITEN:
Ich möchte erfahren, wann wir sie verwenden, welche Datei (en) sich ändern. Ändern sie die gleiche oder eine andere Datei? Was sind sie, wenn sie unterschiedliche Dateien ändern?
linux
command-line
Metarose
quelle
quelle
/etc/password
Enthält Benutzerkontoinformationen./etc/shadow
enthält verschlüsselte Passwörter. Ich glaube, das sind die einzigen Dateien, die relevant sind. Sie könnten ein Passwort ändern, indem Sie diese Dateien manuell bearbeiten, aber es wäre sehr umständlich.Antworten:
Von
man chpasswd
:'Dieser Befehl soll in einer großen Systemumgebung verwendet werden, in der viele Konten gleichzeitig erstellt werden.'
passwd
wird (meiner Erfahrung nach) normalerweise interaktiv für einen einzelnen Benutzer verwendet.quelle
Siehe Manpages für beide:
quelle
In einer Nussschale:
passwd
prüft mit, ob der STDIN (Dateideskriptor 0) an das Terminal angehängt istisatty(0)
. Wenn nicht,passwd
wäre eine Rettung, dh Sie können nurpasswd
interaktiv arbeitenchpasswd
Auf der anderen Seite kann (Benutzername und) Passwort von STDIN gelesen werden und wird als Batch-Modus bezeichnet (erstellt / aktualisiert mehrere Benutzeranmeldeinformationen gleichzeitig). Es liest Passwörter (standardmäßig im Klartext) und Benutzernamen von STDIN, die im Format angegeben werdenuser_name:password
, wobei die Einträge durch einen Zeilenumbruch voneinander getrennt werdenquelle
Das habe ich allerdings gefunden
funktioniert für einige Betriebssysteme, aber einige Betriebssysteme wie debian9.10 zeigen einen Fehler an,
can not connect to /var/run/nscd/socket
da mit /etc/nsswitch.conf bestimmt wird, wo das Passwort gespeichert wird.Auf der anderen Seite
passwd
scheint der Befehl keine interaktive Shell zu benötigen,Funktioniert sowohl in physischen Hosts als auch in Containern für verschiedene Betriebssysteme (Ubuntu Xenial-Bionic, Debian9-10, Centos75-76, Coreos1855-2135)
quelle