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.