Como receber uma notificação quando outros usuários fazem login no sistema "meu"?

9

Conheço o whocomando que mostra todos os usuários conectados. Mas, de alguma forma, quero ser informado quando alguém além de mim fizer login no meu sistema. Algum applet? Também seria bom se o applet mostrasse o número de usuários distintos conectados, o que significa ter um shell de login e uma conexão ssh estabelecida.

matemática
fonte
BTW: alguém pode comentar sobre as tentativas de quebra. O /etc/profile.d ainda é executado? Eu acho que depende da invasão, portanto, para ataques ssh de força bruta isso pode valer, pela escalada de direitos dos serviços em execução, isso pode não acontecer. Ahh, parece que o monitoramento do usuário não é uma tarefa fácil.
math

Respostas:

10

Para a parte da notificação quando alguém faz logon no seu sistema, você pode tentar colocar um pequeno script em um /etc/profile.dscript. Usando o notify-send (parte do pacote libnotify-bin), você pode tentar o seguinte:

/etc/profile.d/notify_log.sh

notify-send -t 3000 "User logged in" `whoami`

e então, toda vez que alguém fizer login no seu sistema, você será notificado.

EDIT: Portanto, não funciona bem :( Se você configurou um servidor de correio em sua máquina, poderá usar o comando mail em vez de notify-send.

Mas, de acordo com o post aqui , a melhor solução seria um script pam_exec .

Cédric Julien
fonte
Boa ideia, mas não é necessário torná-lo executável nem ter um shebang, porque os arquivos /etc/profile.d/são originados. Somente shells de login (terminais virtuais e login ssh) e algum login da GUI executam a inicialização do perfil.
enzotib
@enzotib: Obrigado pelas dicas, eu corrigi a minha resposta :)
Cédric Julien
Ok, eu tentei, mas sem sorte até agora. O motivo é que um usuário não pode notificar outro facilmente. Portanto, algumas variáveis ​​de ambiente devem ser definidas, consulte: g-loaded.eu/2007/11/18/… . Até agora eu tenho alguns executáveis ​​que fazem as coisas, mas não quando eu faço o login!?! Se eu apenas source /etc/profile.d/notify_log.shapós o login via ssh, a notificação é enviada. Eu acho que não é executado corretamente após o login. Eu observei /var/log/auth.log sem sorte. Qualquer ajuda?
math
Eu encontrei o motivo: eu uso o ZSH e / etc / zsh / zprofile está vazio, ele deveria ser fonte / etc / profile, que por sua vez deveria ser fonte /etc/profile.d/*.sh, mas não faz nada! > - (.. Vou fonte deste explicitamente, em seguida, e verificar todos os outros shells instalados, desde que eu não sei qual conchas de login são utilizados por todos os usuários LDAP .. De qualquer forma, obrigado.
matemática
@brubelsabs: oups, eu editei a minha resposta com outras soluções
Cédric Julien
2

Fazemos isso criando um arquivo /etc/profile.d/notify.shcom o seguinte conteúdo:

#!/bin/sh

sender="[email protected]"
recepient="[email protected]"
subject="Privileged Account logon used"
message="`env`"
    echo "$message" | mail -s "$subject" -r "$sender" -Smtp=mail.example.com "$recepient"

Supondo que o mailx esteja instalado.

Antonio
fonte
Sim, às vezes você pode perder uma notificação na área de trabalho, mas o email geralmente permanece.
math
@ Antonio Você precisa adicionar o script ao crontab? Não parece estar funcionando.
Cokedude 14/10/19