Como exibo uma mensagem de login, como um aviso de expiração de senha?

4

Estou usando o sssd para autenticar em um diretório ativo. As senhas para o usuário podem expirar após um determinado tempo.

Em sssd.conf , você pode definir [pam] pam_pwd_expiration_warning = X para alterar os dias em que uma mensagem é exibida antes da expiração da senha. Isso funciona, por exemplo ao usar sudo ou ao efetuar login remotamente via ssh .

Existe uma maneira de exibir tal mensagem (talvez como notificação) após o login?

Estou usando o Xubuntu 14.04. E isso realmente me ajudaria a ver esse aviso em uma posição de destaque. E a melhor maneira de o IMO estar diretamente após o login gráfico.

    
por Bertram Nudelbach 28.10.2015 / 12:10

2 respostas

3

Eu consegui criar um script que funciona exatamente para o meu problema. Graças ao @kos pela resposta - isso me ajudou a mostrar o diálogo em si.

Eu escrevi o script baseado em esta solução mas como dscl não está disponível para mim procurou por outra maneira de consultar o AD. Esta entrada de blog ajudou-me a obter comecei e encontrei uma solução para obter exatamente o que eu estava procurando ..

Então, aqui está meu script, que eu apenas aciono na inicialização da sessão:

#!/bin/bash
pwPolicy=90
warnDays=10
user='whoami'
userRecord='ldapsearch -h mydomain.de -b 'dc=mydomain,dc=de' "(sAMAccountName=${user})" 2>/dev/null'
lastpwdMS='grep -i pwdLastSet <<< "$userRecord" | sed 's/pwdLastSet: //''
todayUnix='date "+%s"'
lastpwdUnix='expr $lastpwdMS / 10000000 - 11644473600'
diffUnix='expr $todayUnix - $lastpwdUnix'
diffdays='expr $diffUnix / 86400'
daysremaining='expr $pwPolicy - $diffdays'

if [ "$daysremaining" -le ${warnDays} ]
then
  zenity --info --title="Password expiration" --text="The password for ${user} will expire in ${daysremaining} days."
fi

Eu não estou familiarizado com o AD, mas tente ldapsearch -h mydomain.de -b 'dc=mydomain,dc=de' "(sAMAccountName=${user})" 2>/dev/null se funcionar para você.

IMO esta solução não é bonita nem utilizável para outros cenários, mas corrige esse problema único. Ainda estou interessado se alguém souber como mostrar apenas uma caixa de diálogo com as mensagens que apareceriam ao fazer login via ssh.

    
por Bertram Nudelbach 30.10.2015 / 14:23
2

Eu desenvolvi um aplicativo de desktop simples para meus usuários para resolver esse problema. É chamado ADpassword.

Ele verifica (via kerberos tickets) a data de expiração da senha e mostra uma caixa de diálogo quando os dias restantes estão abaixo de um limite configurado.

Você pode adicioná-lo ao desktop do usuário e executá-lo todos os dias.

ADpassword no Github

    
por Alfonso E.M. 03.08.2016 / 12:07