Encontrei uma solução para criar um script que procura usuários.
este é o meu script /etc/rc.local:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/usr/bin/detect_login
exit 0
e este é o script detect_login:
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
import os, time
Buffer_list=[]
while True:
users=os.popen('''who | cut -d' ' -f1 | sort | uniq''')
users=users.read()
Current_List=users.split('\n')
Current_List=filter(None,Current_List)
if Current_List:
if Current_List != Buffer_list:
if len(Current_List) > len(Buffer_list):
#HERE YOU ADD THE COMMANDS, inside the triple quotes.
# add each command in a new line
# i let you an example for turning the brightness down..
os.system('''/usr/bin/xdotool key XF86MonBrightnessDown''')
Buffer_list=Current_List
time.sleep(0.5)
Eu aconselho a executar uma vez o script como root para verificar se funciona bem, porque se houver um erro rc.local parará. (Erros burros podem ser, por exemplo, espaços recuados, isso acontece frequentemente ao copiar scripts python de fóruns do stackexchange)