Se você estiver configurando contas para expirar dois dias depois de configurá-las, o script abaixo deverá ajudar.
#!/bin/bash
#
nowsecs=$( date +%s )
while read account
do
username=$( echo $account | cut -d: -f1 )
expiredays=$( echo $account | cut -d: -f2 )
expiresecs=$(( $expiredays * 86400 ))
if [ $expiresecs -le $nowsecs ]
then
echo "$username has expired deleting"
userdel -r "$username"
fi
done < <( cut -d: -f1,8 /etc/shadow | sed /:$/d )
Quando é executado, lê o arquivo de sombra e seleciona contas com datas de expiração definidas. Para cada conta selecionada, funciona se agora for posterior ao tempo de expiração. Se é isso, elimina a conta.
Certificando-se de ter backups antes de testar isso.