De man chpasswd
:
'Este comando deve ser usado em um ambiente de sistema grande, onde muitas contas são criadas em uma única vez.'
passwd
é (na minha experiência) normalmente usado interativamente para um único usuário.
Eu li a descrição desses comandos em um livro, passwd:
Changes the password for an existing user.
chpasswd:
Reads a file of login name and password pairs, and updates the passwords.
Parece que esses comandos estão fazendo os mesmos trabalhos. Existe uma diferença entre eles?
EDIT:
Eu quero aprender quando usá-los que arquivo (s) mudam. Eles mudam mesmo arquivo ou arquivo diferente? Se eles mudarem arquivo (s) diferente (s), quais são eles?
Veja man pages para os dois:
NAME
chpasswd - update passwords in batch mode
SYNOPSIS
chpasswd
[options]DESCRIPTION
The
chpasswd
command reads a list of user name and password pairs from standard input and uses this information to update a group of existing users. Each line is of the format:user_name:password
NAME
passwd - change user password
SYNOPSIS
passwd
[options] [LOGIN]DESCRIPTION
The
passwd
command changes passwords for user accounts. A normal user may only change the password for his/her own account, while the superuser may change the password for any account.passwd
also changes the account or associated password validity period.
Em poucas palavras:
passwd
verifica se o STDIN (descritor de arquivo 0) está conectado ao terminal, usando isatty(0)
. Se não, passwd
iria resgatar, ou seja, você só pode trabalhar com passwd
interativamente
chpasswd
, por outro lado, foi projetado para ler (nome de usuário e) senha de STDIN e é chamado de modo em lote (cria / atualiza várias credenciais de usuário de uma só vez). Ele lê a (s) senha (s) (em texto claro por padrão) e o (s) nome (s) de usuário de STDIN, dado no formato user_name:password
, com nova linha separando as entradas
Tags command-line linux