web-dev-qa-db-fra.com

Quelle est la différence entre "passwd" et "chapasswd"?

J'ai lu la description de ces commandes à partir d'un livre,
passwd :

Modifie le mot de passe pour un utilisateur existant.

chapasswd :

Lit un fichier de nom de connexion et de paires de mots de passe et met à jour les mots de passe.

Il semble que ces commandes font de même emplois. Y a-t-il une différence entre eux?

ÉDITER:

Je veux apprendre quand nous les utilisons quel (s) fichier change (s). Est-ce qu'ils changent le même fichier ou le même fichier? S'ils changent différents fichiers, que sont-ils?

14
metarose

De man chpasswd:

"Cette commande est destinée à être utilisée dans un environnement système important dans lequel de nombreux comptes sont créés à un moment donné."

passwd est (dans mon expérience) normalement utilisé de manière interactive pour un seul utilisateur.

19
SauceCode

En un mot:

  • passwd vérifie si le stdin (descripteur de fichier 0) est connecté à la borne, à l'aide de isatty(0). Sinon, passwd va caution I.e. Vous ne pouvez travailler que avec passwd de manière interactive

  • chpasswd, d'autre part, est conçu pour lire (nom d'utilisateur et) mot de passe 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 de passe (s) (en texte clair par défaut) et nom d'utilisateur (s) de Stdin, indiqué dans le format user_name:password, avec la nouvelle ligne séparant les entrées

7
heemayl

Voir les pages de l'homme pour les deux:

NOM

    cHPASSWD - Mettre à jour les mots de passe en mode batch

SYNOPSIS

    chpasswd [Options]

LA DESCRIPTION

    Le chpasswdcommand lit une liste des paires de noms d'utilisateur et de mot de passe à partir de saisie standard et utilise ces informations pour mettre à jour un groupe d'utilisateurs existants. Chaque ligne est du format:

    Identifiant Mot de passe


NOM

    pASSWD - Changer le mot de passe de l'utilisateur

SYNOPSIS

    passwd [Options] [Connexion]

LA DESCRIPTION

    Le passwdcommand modifie les mots de passe des comptes d'utilisateurs. Un utilisateur normal ne peut modifier que le mot de passe de son propre compte, tandis que le superutilisateur peut modifier le mot de passe pour n'importe quel compte. passwdSalo modifie le compte ou la période de validité de votre mot de passe associé.
7
MrRolling

J'ai trouvé que même si

echo user:password | chpasswd

fonctionne pour certains OSES, mais certains OS tels que Debian9,10 montreront une erreur can not connect to /var/run/nscd/socket Depuis qu'il utilise /etc/nsswitch.conf pour déterminer où il stocke le mot de passe.

De l'autre côté, la commande passwd semble pas nécessairement besoin d'une coque interactive,

(echo user; echo password) | passwd

travaille pour moi à la fois dans l'hôte physique et le conteneur, pour divers OSES (Ubuntu Xenial-Bionic, Debian9-10, Centos75-76, Coreos1855-2135)

0
osexp2003