Comando passwd do Linux
Sobre passwd
Em sistemas operacionais do tipo Unix, o comando passwd é usado para alterar a senha de uma conta de usuário. Um usuário normal pode executar o passwd para alterar sua própria senha e um administrador do sistema (o superusuário ) pode usar o passwd para alterar a senha de outro usuário ou definir como a senha dessa conta pode ser usada ou alterada.
Este documento cobre a versão Linux do passwd .
Descrição
O comando passwd altera senhas para contas de usuário . Um usuário normal só pode alterar a senha da sua própria conta, mas o superusuário pode alterar a senha de qualquer conta. O passwd também pode alterar ou redefinir o período de validade da conta – quanto tempo pode passar antes que a senha expire e precise ser alterada.
Antes que um usuário normal possa alterar sua própria senha, ele deve primeiro inserir sua senha atual para verificação. (O superusuário pode ignorar esta etapa ao alterar a senha de outro usuário.)
Após a verificação da senha atual, o passwd verifica se o usuário pode alterar sua senha no momento. Caso contrário, o passwd se recusa a continuar e sai.
Caso contrário, o usuário será solicitado duas vezes por uma senha de substituição. As duas entradas devem corresponder para que a senha continue.
Em seguida, a senha é testada quanto à complexidade. Como orientação geral, as senhas devem consistir em pelo menos 6 caracteres , incluindo um ou mais de cada um dos seguintes itens:
- minúsculas letras
- dígitos de 0 a 9
- sinais de pontuação
Sintaxe
senha [ OPTION ] [ USER ]
Opções
As seguintes opções mudarão a maneira como o passwd opera:
-a , –all | Quando usada com -S (veja abaixo), esta opção mostra o status da senha para todos os usuários. Esta opção não funcionará se usada sem -S . |
-d , –delete | Exclua a senha de um usuário (deixe-a vazia). Essa opção é uma maneira rápida de desativar logins de uma conta, sem desativar a própria conta. |
-e , –expire | Expirar imediatamente a senha de uma conta. Isso força um usuário a alterar sua senha na próxima vez que efetuar login. |
-h , –help | Exiba informações sobre como usar o comando passwd . |
-i , –inactive INACTIVE | Esta opção é usada para desativar uma conta depois que a senha expirar por alguns dias. Depois que uma conta de usuário tiver uma senha expirada por dias inteiros INATIVOS , o usuário não poderá mais entrar na conta. |
-k , –keep-tokens | Mantenha tokens de senha. Indica que a senha deste usuário só deve ser alterada se tiver expirado. |
-l , –lock | Bloqueie a senha da conta nomeada. Essa opção desativa uma senha, alterando-a para um valor que não corresponda a nenhum valor criptografado possível. Isso é feito adicionando um caractere no início da senha criptografada. Observe que isso não desativa a conta. O usuário ainda poderá fazer login usando outro método de autenticação (uma chave SSH , por exemplo). Para desativar a conta, o superusuário pode usar o comando usermod com a opção –expiredate 1 . Essa opção definirá a data de validade da conta para uma data anterior – ou seja, 2 de janeiro de 1970. Usuários com uma senha bloqueada não têm permissão para alterar sua senha. |
-n , –dias MIN_DAYS | Defina o número mínimo de dias entre as alterações de senha como MIN_DAYS . Um valor zero para este campo indica que o usuário pode alterar sua senha a qualquer momento. |
-q , –quiet | Modo silencioso; O passwd funcionará sem exibir nenhuma saída. |
-R , –root CHROOT_DIR | Para usuários avançados: esta opção aplicará alterações no diretório chroot CHROOT_DIR e usará os arquivos de configuração do diretório CHROOT_DIR . |
-S , –status | Exibir informações de status da conta. As informações de status consistem em 7 campos:
Nos campos 4 a 7, as idades das senhas são expressas em dias. A especificação de -a além de -S exibe o status da senha para todos os usuários. |
-u , –unlock | Desbloqueie a senha da conta nomeada. Esta opção reativa uma senha alterando-a novamente para seu valor antes que a opção -l fosse usada para bloqueá-la. |
-w , –manuais WARN_DAYS | Defina o número de dias de aviso antes que uma alteração de senha seja necessária. WARN_DAYS é o número de dias antes da expiração da senha que avisa o usuário que sua senha está prestes a expirar. |
-x , –maxdays MAX_DAYS | Defina o número máximo de dias em que uma senha permanece válida. Após MAX_DAYS , a senha deve ser alterada. |
Notas
A complexidade da senha varia de acordo com o sistema. Consulte a documentação do sistema operacional para obter as regras de complexidade padrão e como alterá-las.
Em sistemas que usam NIS (Network Information Services), os usuários podem não conseguir alterar sua senha se não estiverem conectados ao servidor NIS.
Arquivos usados pelo passwd
/ etc / passwd | Informações da conta do usuário. |
/ etc / shadow | Proteja as informações da conta do usuário. |
/etc/pam.d/passwd | Configuração de PAM para passwd . |
Exemplos
Mude sua senha
passwd
Correndo passwd sem opções irá alterar a senha da conta da execução do comando. Primeiro, você será solicitado a inserir a senha atual da conta:
senha atual do UNIX:
Se estiver correto, você será solicitado a inserir uma nova senha:
Digite a nova senha do UNIX:
… e para inserir a mesma senha novamente, para verificar:
Digite novamente a nova senha UNIX:
Se as senhas corresponderem, a senha será alterada.
Alterar a senha de outro usuário
sudo passwd jeff
Se você tiver privilégios de superusuário, poderá alterar a senha de outro usuário. Aqui, prefixamos o comando com sudo para executá-lo como superusuário. Este comando alterará a senha do usuário jeff . Você não será solicitado a fornecer a senha atual de jeff .
Altere sua senha sem saber sua senha atual
Se você precisar alterar sua senha porque a esqueceu, será necessário fazer login na conta raiz . Para fazer isso, você precisará saber a senha do usuário root .
Digamos que seu nome de usuário seja sally e você não se lembra da sua senha. No entanto, você tem acesso de administrador ao sistema: é possível efetuar login como root , usando a senha dessa conta. Efetue login como raiz e, na linha de comando, execute:
passly sally
Mas e se você esqueceu a senha do root também? Nesse caso, você precisará fazer login na máquina no modo de usuário único, também conhecido como Nível de Execução 1 . Isso não pode ser feito pela rede; portanto, você precisará de acesso físico à máquina para inicializar neste nível de execução.
Reinicie a máquina. Quando estiver inicializando, você deverá receber um menu do gerenciador de inicialização . Em muitos sistemas, como Debian ou Ubuntu , o menu de inicialização incluirá uma opção para “Recovery Mode” ou “Single User Mode” (como na imagem abaixo). Selecione esta opção de inicialização.
Essa opção inicializa você no modo somente texto e efetua login como root.
Se você precisar montar / , faça o seguinte:
mount -rw -o remount /
Agora mude a senha de sally :
passly sally
Ou raiz :
passwd
Quando terminar, reinicie o sistema:
shutdown -r now
Inicie o sistema normalmente, e você deve ser capaz de login como Sally com a nova senha.
Exemplos adicionais
sudo passwd -S ted
Verifique o status da senha do usuário chamado ted . A saída será semelhante ao seguinte:
P 13/13/2014 2 365 7 28
Aqui, vemos o nome do usuário ( ted ), seguido de um P , indicando que sua senha é atualmente válida e utilizável. A senha expirará em 5 de maio de 2014 . Ted não pode alterar sua senha com mais frequência a cada dois dias e deve alterar a senha a cada 365 dias. Ele será avisado 7 dias antes da alteração de senha necessária e, se permitir que sua senha expire, sua conta será desativada 28 dias depois.
sudo passwd -S -a
Semelhante ao comando acima, mas verifica o status da senha para todas as contas de usuário, em todo o sistema.
sudo passwd -l jane
Bloqueie a senha do usuário Jane . Ela não poderá fazer login até que um administrador do sistema a desbloqueie.
sudo passwd -u jane
Desbloqueie a senha de Jane . Ele será redefinido automaticamente para o que era antes de ser bloqueado e ela poderá fazer login novamente.
sudo passwd -e alan
Expirar a senha de Alan . Na próxima vez que ele fizer login, ele precisará definir uma nova senha.
Comandos relacionados
chfn – altera as informações do dedo de um usuário.
finger – Relaciona informações sobre um usuário.
login – Inicia uma sessão em um sistema.
nispasswd – altera as informações da senha do NIS +.
nistbladm – Administra tabelas NIS +.
useradd – Adicione um usuário ao sistema.
vipw – Edite com segurança o arquivo de senha.
yppasswd – Altere uma senha de rede em um banco de dados NIS.