Você pode ter o script acionado quando uma sessão de login é aberta.
pam-script é um módulo PAM que permite você executar scripts dentro da pilha do PAM durante a autorização, alterações de senha e na abertura ou fechamento da sessão.
Nas distribuições Linux baseadas no Debian, ele é fornecido pelo pacote libpam-script
. No Fedora, o pacote é simplesmente chamado pam-script
.
Os seguintes scripts podem ser acionados pelo pam-script:
-
pam_script_auth
- executado durante a autenticação -
pam_script_acct
- invocado durante o gerenciamento de contas -
pam_script_passwd
- invocado ao alterar senhas -
pam_script_ses_open
- invocado quando a sessão é aberta -
pam_script_ses_close
- invocado quando uma sessão é encerrada
Para executar um script na sessão aberta, adicione isso a /etc/pam.d/common-session
:
# Attempt to run pam_script_ses_open and pam_script_ses_close.
# Report success even if script is not found.
session optional pam_script.so onerr=success
No Debian, por padrão, o pam-script executará /usr/share/libpam-script/pam_script_ses_open
. A localização dos scripts pode ser configurada com a opção dir=/path/to/scripts/
.
Com o pam-script, também é conveniente acessar o endereço IP do host remoto em um script bash. Cada script receberá as seguintes variáveis de ambiente (todas existirão, mas algumas podem ser nulas, se não forem aplicáveis):
-
PAM_SERVICE
- o aplicativo que está invocando a pilha PAM -
PAM_TYPE
- o tipo de módulo (por exemplo, auth, conta, sessão, senha) -
PAM_USER
- o usuário sendo autenticado em -
PAM_RUSER
- o usuário remoto, o usuário invocando o aplicativo -
PAM_RHOST
- host remoto -
PAM_TTY
- o controle tty -
PAM_AUTHTOK
- senha em texto legível