En el sistema de escritorio Linux, quiero ejecutar un comando cuando el usuario inicia sesión.
Después de leer algunas otras publicaciones, intenté insertar el comando ~/.bashrc
pero sin éxito. Además, el sistema utiliza una interfaz gráfica para el inicio de sesión del usuario, por lo que el comando no debe estar relacionado con el inicio de un shell.
También intenté agregar el comando a uno de los scripts contenidos /etc/profile.d
sin resultados.
Hay otra manera de hacer esto? ¿Algún archivo que el sistema lee después del inicio de sesión?
Respuestas:
No hay garantía de que el administrador de pantalla gráfica lea los archivos de inicio clásicos. Esto cambia entre distribuciones y entre administradores de pantalla. Sin embargo, uno de los siguientes debería funcionar.
Use el método nativo de su entorno de escritorio para configurar aplicaciones de inicio. Los detalles dependerán del DE que esté utilizando, pero puede crear un script que ejecute su comando y agregarlo a la lista de aplicaciones de inicio. Por ejemplo, en mi sistema (Cinnamon), puede hacerlo a través de "Configuración del sistema" => "Aplicaciones de inicio".
Uso
~/.xprofile
, esto proviene de al menos los administradores de inicio de sesión GDM, LDM, LightDM y LXDM.Si ninguno de los anteriores funciona, intente agregar el comando a
~/.profile
: Este es el archivo de inicialización principal para shells de inicio de sesión y también es leído por algunos shells gráficos al iniciar sesión.Como señaló @derobert en los comentarios, también puede usar los estándares de escritorio gratuitos :
El
~/.bashrc
es completamente irrelevante aquí, sólo es leído por conchas interactivo de no ingreso, por lo que se ignora en shells de entrada, gráfica o no.fuente
~/.config/autostart
y/etc/xdg/autostart/
cuáles son las ubicaciones estándar de acuerdo con la especificación de inicio automático de la aplicación de escritorio . Y también/etc/X11/Xsession.d
y~/.xsession
.Otra opción es usar pam; esto le dará una forma precisa de definir acciones de inicio de sesión.
Para una acción genérica, puede confiar en pam_exec ( http://manpages.ubuntu.com/manpages/hardy/man8/pam_exec.8.html ). Sin embargo, si necesita realizar una acción más específica de manera segura, es posible que existan módulos de pam más especializados que se ajusten mejor, como pam_mount de uso común (para montajes al iniciar sesión: http: //manpages.ubuntu. com / manpages / hardy / man8 / pam_mount.8.html ) o pam_echo (para mensajes arbitrarios a los usuarios: http://manpages.ubuntu.com/manpages/hardy/man8/pam_echo.8.html ).
En general, pam es un sistema muy ordenado para personalizar los inicios de sesión, por lo que es posible que desee analizarlo un poco más, en lugar de confiar en secuencias de comandos potencialmente inseguras, como otros sugirieron.
Ejemplo
Dado un /etc/pam.d/system-auth bastante típico, podemos emplear pam_exec después de iniciar sesión de esta manera:
donde
/usr/local/bin/my_prog
se ejecuta un programa arbitrario después de un inicio de sesión de usuario exitoso.fuente
pam
configuración, ya que no es trivial.De acuerdo con este tema: ¿ Ejecutar comando automáticamente después de iniciar sesión?
Tiene la solución de
.bashrc
(no lo que necesita) y la solución de las aplicaciones de inicio. Cito a Daniel S .:fuente