De man chpasswd :
'Cette commande est destinée à être utilisée dans un grand environnement système où de nombreux comptes sont créés en même temps.'
passwd est (selon mon expérience) normalement utilisé de manière interactive pour un seul utilisateur.
Voir les pages de manuel pour les deux :
NOM
chpasswd - mettre à jour les mots de passe en mode batch
SOMMAIRE
chpasswd[options]
DESCRIPTIF
Le
chpasswdLa commande lit une liste de paires de nom d'utilisateur et de mot de passe à partir de l'entrée standard et utilise ces informations pour mettre à jour un groupe d'utilisateurs existants. Chaque ligne est au format :
nom_utilisateur :mot de passe
NOM
passwd - modifier le mot de passe de l'utilisateur
SOMMAIRE
passwd[options] [CONNEXION]
DESCRIPTIF
Le
passwdLa commande modifie les mots de passe des comptes d'utilisateurs. Un utilisateur normal peut uniquement modifier le mot de passe de son propre compte, tandis que le superutilisateur peut modifier le mot de passe de n'importe quel compte.passwdmodifie également la période de validité du compte ou du mot de passe associé.
En un mot :
-
passwdvérifie si le STDIN (descripteur de fichier 0) est attaché au terminal, en utilisantisatty(0). Sinon,passwdrenflouerait c'est-à-dire que vous ne pouvez travailler qu'avecpasswdde manière interactive -
chpasswd, d'autre part, est conçu pour lire (nom d'utilisateur et) mot de passe à partir de STDIN, et s'appelle le mode batch (crée/met à jour plusieurs informations d'identification d'utilisateur à la fois). Il lit le(s) mot(s) de passe (en texte clair par défaut), et le(s) nom(s) d'utilisateur de STDIN, donnés au formatuser_name:password, avec une nouvelle ligne séparant les entrées