Precisa gerenciar senhas do Linux na linha de comando? Sem GUI, sem problemas!
Se você já teve que alterar ou gerenciar uma senha de usuário no Linux, tenho dois comandos essenciais que você precisa saber – e como usá-los.
Agora posso executar comandos do Linux à vontade com mais facilidade.
Não sei dizer quantas vezes tive que gerenciar senhas de usuários no Linux sem a ajuda de um aplicativo GUI. Seja em um servidor ou porque estou usando SSH para acessar uma máquina remota, conhecer os comandos disponíveis para essa tarefa já salvou minha pele em diversas ocasiões.
A boa notícia é que há apenas um comando que você deveconhecer para gerenciar essas senhas na interface de linha de comando (CLI). No entanto, há um segundo comando que também considero essencial.
Quero abordar esses dois comandos e mostrar como eles podem ser poderosos e úteis.
Você está pronto para isso?
O comando passwd
O nome deste comando sempre atrai novos usuários no início. Quando comecei a trabalhar com Linux, demorei um pouco para meus dedos lembrarem que o comando é senhae não senha.
O comando passwd permite definir, alterar e verificar o status de uma senha. Também pode forçar um usuário a alterar sua senha e bloquear/desbloquear contas.
Deixe-me mostrar como fazer cada uma dessas coisas. Não se preocupe com qual distribuição você está usando, pois o comando passwd vem com todas elas.
Primeiro, vamos definir uma nova senha. Isso será necessário somente quando um usuário for criado pela primeira vez na linha de comando. Algumas distribuições exigirão que você defina uma senha durante a criação do usuário, outras não. Se você achar que o comando adduser não exige a definição de uma senha para esse novo usuário, você pode criar uma com o comando:
sudo passwd USER
Onde USER é o usuário em questão.
A alteração de uma senha pode ser feita por um administrador ou por um usuário padrão. O administrador pode alterar a senha de qualquer usuário do sistema e o usuário padrão só pode alterar a sua própria senha.
Para o administrador alterar uma senha, o comando é:
sudo passwd USER
Onde USER é o usuário em questão.
Para um usuário alterar sua própria senha, o comando é simplesmente:
passwd
Para verificar o status de uma senha, emita o comando:
sudo passwd -S USER
Onde USER é o usuário em questão.
A saída incluirá o nome de usuário, status, data da última alteração, idade mínima da senha, idade máxima da senha, período de aviso e período inativo.
Você também pode verificar o status de todas as senhas de usuários com o comando:
sudo passwd -Sa
O comando acima também incluirá contas do sistema.
Agora, vamos forçar um usuário a alterar sua senha, o que é feito com o comando:
sudo passwd -e USER
Onde USER é o nome do usuário em questão. Na próxima vez que o usuário fizer login, será solicitada a senha atual e instruída a definir uma nova.
Finalmente, você pode bloquear e desbloquear uma conta de usuário com o comando passwd. Para bloquear uma conta, o comando é:
sudo passwd -l USER
Onde USER é o nome do usuário em questão.
O usuário não poderá mais fazer login em sua conta. Para desbloquear a conta do usuário, o comando é:
sudo passwd u USER
Onde USER é o nome do usuário em questão.
O comando chage
O comando chage é usado para gerenciar a expiração da senha. Por que você usaria isso em vez do comando passwd? Simplificando, o comando chage oferece mais controle sobre a expiração da senha. Isso pode ser útil quando você precisar criar contas temporárias em seu sistema Linux. Você pode definir uma senha para expirar após um determinado período, momento em que o usuário não poderá mais fazer login. Isso pode ser útil se você tiver convidados hospedados por um determinado período ou se tiver um funcionário que irá deixar o local. empresa em uma data específica.
Digamos que você queira usar chage para forçar um usuário a alterar uma senha em uma data específica. Por exemplo, se você quiser forçar uma mudança de senha em 31 de outubro de 2024, para a usuária olivia, o comando seria:
sudo chage -d 2024-10-31 olivia
Quando o usuário olivia fizer login nessa data, será obrigado a alterar sua senha.
Digamos que você queira forçar uma data de expiração da conta. Para isso, use a opção E assim:
sudo chage -E 2024-10-31 olivia
Você também pode bloquear contas de usuário com chage assim:
sudo chage -E 0 USER
Onde USER é o nome do usuário em questão.
Se você quiser remover uma data de expiração de uma conta, o comando ficaria assim:
sudo chage --expiredate -1 USER
Onde USER é o nome do usuário em questão.
Finalmente, você pode especificar o número de dias entre as alterações de senha necessárias. Digamos que você queira que um usuário altere sua senha a cada 30 dias. Para isso o comando seria:
sudo chage -E 30 USER
Onde USER é o nome do usuário em questão.
Depois de executar o comando acima, o usuário deverá alterar sua senha a cada 30 dias. Você também pode definir o período de aviso para o usuário. Em vez de ser avisado no dia, você pode avisá-los no dia anterior com o comando:
sudo chage -W 1 USER
Onde USER é o nome do usuário em questão.
Você também pode remover a data de expiração explícita com:
sudo chage -E -1 USER
Onde USER é o nome do usuário em questão.
E é assim, meus amigos, que vocês podem gerenciar senhas de usuários na linha de comando.