Pode ser feito com pam_exec executando um comando que cria os registros de data e hora necessários em /var/lib/sudo .
Anexe o seguinte a /etc/pam.d/sshd e / ou /etc/pam.d/login (mas não common-session ou qualquer coisa assim):
session optional pam_exec.so /usr/lib/sudo-auth
O script pode ser:
#!/bin/sh
# Depends on your distro. May be /var/db/sudo, /var/spool/sudo, etc.
root="/var/lib/sudo"
if [ "$PAM_USER" ]; then
dir="$root/$PAM_USER/"
if [ "$PAM_TYPE" = open_session ]; then
mkdir -p "$dir" && touch "$dir"
fi
else
echo "Must be run from PAM." >&2
fi
Requer que a opção tty_tickets seja desativada em sudoers , devido ao modo como o SSH (e o opensshd em particular) funcionam com o ttys.
Isso pode ser modificado para autenticar somente hosts remotos especificados, colocando pam_access acima de pam_exec na pilha do PAM ou apenas comparando $PAM_RHOST no script. (Essas verificações não funcionariam com clientes móveis, no entanto.)