Expirou "token de autenticação" para usuário com senha excluída

6

A configuração:

1) A senha do usuário foi excluída com o comando "passwd -d"

2) O usuário tem tarefas agendadas em execução

O problema:
Uma vez a cada 30 dias (política de expiração de senha padrão), o cron falha com um erro

Authentication token is no longer valid; new one required
ERROR: failed to open PAM security session: Success
ERROR: cannot set security context

Minhas perguntas:
Existe uma maneira de evitar que isso aconteça?
Por que o token de autenticação expirou para um usuário com senha excluída?

    
por Aleksey Sanin 20.01.2012 / 04:38

3 respostas

1

Parece que o seu sistema removeu a senha, mas não apagou os requisitos de expiração da senha.

Se esse for o caso, você poderá limpá-los manualmente usando vipw - o campo afetado estará no arquivo passwd ou no arquivo shadow , dependendo do seu sistema operacional (consulte man 5 passwd e man 5 shadow para detalhes sobre os formatos de arquivo para saber quais campos você precisa limpar)

    
por 26.01.2012 / 09:09
1

Eu tive esse problema em um droplet Debian 8 DigitalOcean criado usando a opção 'user data' (script de instalação publicado pela web (bash ou cloud-init)).

verifique o diário do sistema em busca de mensagens de erro relevantes:

journalctl | grep -B 1 -i "cron.*authentication token" | tail -n 3

May 19 13:17:01 debian-512mb-fra1-01 CRON[16714]: pam_unix(cron:account): expired password for user root (root enforced)
May 19 13:17:01 debian-512mb-fra1-01 CRON[16714]: Authentication token is no longer valid; new one required
May 19 13:17:01 debian-512mb-fra1-01 cron[470]: Authentication token is no longer valid; new one required

veja qual conta (s) expirou status

cut -d: -f 1 /etc/passwd | while read U ; do chage -l $U | sed "s|^|$U:|"; done | grep "must be"

root:Last password change                   : password must be changed
root:Password expires                   : password must be changed
root:Password inactive                  : password must be changed

use a ferramenta 'chage' para atualizar os campos de expiração, primeiro tente

chage -I -1 -m 0 -M 999999 -W 31 root

Nota: não tive o efeito desejado até que eu também adicionei a opção 'last-changed' (-d)

use a ferramenta 'chage' para atualizar os campos de expiração, segunda tentativa

chage -d 'date "+%F"' -E 2999-01-01 -I -1 -m 0 -M 999999 -W 31 root

verificar o vencimento do campo

chage -l root

Last password change                    : May 19, 2017
Password expires                    : never
Password inactive                   : never
Account expires                     : Jan 01, 2999
Minimum number of days between password change      : 0
Maximum number of days between password change      : 999999
Number of days of warning before password expires   : 31
    
por 19.05.2017 / 15:53
0

No Ubuntu, meu arquivo / etc / shadow estava faltando (embora houvesse um / etc / shadow -) , então tudo que fiz foi executado ...

sudo pwconv

... E isso corrigiu esse problema para mim, recriando o arquivo / etc / shadow.

(Embora eu ainda não possa confirmar que isso é uma correção a longo prazo, pode durar até a mudança da senha / expirar o tempo ou até que algum outro fator aconteça) --- alguém invente ou me corrija

    
por 09.08.2016 / 13:51