2012-05-29 20 views
5

Tengo un script que quiero ejecutar justo después de la autenticación de inicio de sesión del usuario. Para lograr esto, agregué el nombre del script en el archivo /etc/rc5.d/S##rc.local. Pero más tarde llegué a saber que todo lo que se agrega en el archivo rc.local se ejecuta en el momento del arranque del sistema, no después de la autenticación de inicio de sesión. ¿Alguien puede decirme cómo ejecutar el script después de la autenticación de inicio de sesión del usuario?Cómo ejecutar un script después de la autenticación de inicio de sesión de usuario en Linux

+1

¿Lo hace por conveniencia o por seguridad? Es decir. ¿Desea configurar su entorno de inicio de sesión (agregar alias, establecer variables, etc.) o desea que el script se ejecute después de cada inicio de sesión sin permitir que los usuarios lo eliminen? – lanzz

+0

Por razones de seguridad. En realidad, quiero ejecutar el script cada vez que admin inicie sesión en el sistema. – user976754

+2

si alguna de las siguientes respuestas lo ayudó, márquelas como aceptadas. Gracias. – woohoo

Respuesta

3

Trate de añadir esto a su /etc/pam.d/login:

session optional pam_exec.so /bin/bash /path/to/your/script.sh 

Usted necesita comprobar en el script si el usuario actual es en realidad un administrador (de acuerdo con lo que sus criterios para ser administrador son).

+0

Hola Lanzz, agregué esto en el script /etc/pam.d/login. Pero no se puede exceder mi script ... – user976754

+0

'pam_exec' aparentemente no muestra su salida en el terminal donde el usuario está conectado. ¿Necesita mostrar algo en su secuencia de comandos o simplemente realizar algo en segundo plano (por ejemplo, enviar una notificación)? Puede agregar un archivo de registro donde se registrará la salida de su script: 'session optional pam_exec.so log =/ruta/a/archivo de registro/bin/bash/ruta/a/su/script.sh' – lanzz

+0

Encontré esta línea como mi '/ etc/pam.d/login'. Creo que es la razón por la que uname se imprime cuando envío ssh a una máquina: 'session optional pam_exec.so type = open_session stdout/bin/uname -snrvm' – Nope

13

O bien, puede agregar su secuencia de comandos a la carpeta /etc/profile.d.

Más sobre este tema here y here.

Básicamente, debe darle a su script la extensión .sh ya que todos estos archivos se ejecutan en un bucle después de que el usuario inicie sesión.

+0

Funcionó realmente. Gracias :) – user976754

+1

@ user976754: Me alegra que te haya ayudado. Marque mi respuesta como la respuesta aceptada para esta pregunta :) – woohoo

+0

Parece que necesita tener permisos de raíz para crear archivos en /etc/profile.d ¿Cómo se ejecuta el archivo cuando el usuario inicia sesión? Como el archivo será propiedad de root. – ams

Cuestiones relacionadas