Comando chpasswd – Alterar senhas de vários usuários em lote no Linux
Como alterar senhas em lote no Linux com o comando chpasswd
Uma das principais tarefas que um administrador de sistemas Linux realiza no seu dia-a-dia é o gerenciamento de senhas e a criação de usuários. Vamos ver nesse artigo um método para alterar as senhas de diversos usuários simultaneamente, o que facilita muito, por exemplo, a criação de um grande número de usuários de uma só vez.
Para isso usaremos o comando chpasswd.
Comando chpasswd
Permite alterar senhas em lote. O utilitário chpasswd pode ler uma lista de pares de nomes de usuário e senhas a partir da entrada padrão ou de um arquivo de texto e então utilizar essas informações para atualizar as senhas de um grupo de usuários já existentes. As linhas são fornecidas ao comando no formato:
nome_usuário:senha
com as senhas sendo fornecidas em texto-plano, sendo criptografadas pelo próprio chpasswd. É possível selecionar o tipo de criptografia a ser usada nas senhas. Também podemos fornecer as senhas já criptografadas se desejado.
O comando chpasswd é muito útil em ambientes grandes onde muitas contas de usuário são criadas de uma só vez.
Sintaxe
chpasswd [opções]
Opções comuns
-c, –crypt-method MÉTODO
Usar o método especificado para criptografar as senhas. Os métodos disponíveis são DES, MD5, SHA256, SHA512 ou None (nenhum). Por padrão, é usado o PAM para criptografar as senhas.
-e, –encrypted
Formato das senhas criptografadas fornecidas.
-h, –help
Mostrar a ajuda do comando e sair.
-m, –md5
Usar a criptografia MD5 em vez de DES quando as senhas fornecidas não forem criptografadas.
-s, –sha-rounds ROUNDS
Usar o número de rounds especificado para criptografar as senhas. O valor 0 significa que o sistema irá escolher o número padrão de rounds (5000).
Um valor mínimo de 1000 e máximo de 999.999.999 será imposto. Esta opção só pode ser usada com os métodos de criptografia SHA256 e SHA512.
O número de rounds é definido, por padrão, nas variáveis SHA_CRYPT_MIN_ROUNDS e SHA_CRYPT_MAX_ROUNDS no arquivo /etc/login.defs.
Exemplos
Temos em nosso sistema quatro usuários: ana, rita, rosa e fabio. Vamos alterar as senhas de todos eles de uma vez usando o comando chpasswd. Usaremos uma senha padrão para todos, que será 123.
1. Alterar as senhas dos usuários interativamente. Digite o comando chpasswd e na sequência os pares de nome_usuário:senha, teclando enter após cada par:
# chpasswd
Digite Ctrl+D para finalizar o processo de alteração das senhas de todos de uma vez.
2. Vamos realizar o mesmo procedimento anterior, mas dessa vez leremos os usuários e senhas a partir de um arquivo de texto. Chamarei o arquivo de senhas.txt, e usarei a senha 456 desta vez. Veja o conteúdo desse arquivo a seguir:
# cat senhas.txt
Agora vamos alterar as senhas de todos eles emitindo o comando chpasswd e redirecionando a ele o arquivo senhas.txt:
# chpasswd < senhas.txt
3. Repetiremos o procedimento anterior, fornecendo as senhas dos usuários a partir do arquivo senhas.txt, porém dessa vez criptografando as senhas com o algoritmo MD5:
# chpasswd --md5 < senhas.txt
Vejamos as senhas criptografadas com MD5 no arquivo /etc/shadow:
# cat /etc/shadow
4. Agora vamos alterar as senhas dos usuários em lote, usando o arquivo senhas.txt (pode ser a partir da linha de comandos também), porém dessa vez especificando o algoritmo SHA512, que é muito mais seguro que o MD5 (e padrão na maioria das distribuições Linux atuais):
# chpasswd -c SHA512
Vejamos agora as senhas criptografadas com SHA512 no arquivo /etc/shadow (note que as senhas são as mesmas do exemplo anterior, mas a criptografia é completamente diferente):
# cat /etc/shadow
É isso aí! Aprendemos hoje a alterar senhas de usuários em lotes, o que pode facilitar a administração de um sistema Linux.
Até mais!
Escreva um comentário