Ir al contenido principal

Ejecutando cosas al inicio de la máquina y del usuario

Mi compañero bloguero me preguntaba esta mañana de sábado cómo consigo lanzar scripts que hagan cosas en Gecos. La verdad es que tenía que haberlo publicado hace tiempo. Ahora toca. 
Como casi todo en las distros Linux, se puede hacer de muy diversas maneras. Éste es mi camino:

En primer lugar hay que distinguir perfectamente entre lo que vamos a hacer en el inicio de la máquina y lo que vamos a hacer en el espacio de usuario. Cosas como editar ficheros de configuración de servicios quedarán en el script de inicio de máquina (/usr/local/bin/iniciomaquina.sh) y se ejecutan como root. Cosas como aplicar un tema o lanzar un navegador de archivos al inicio de la sesión quedarán lógicamente en el inicio de sesión de usuario (/usr/local/bin/iniciousuario.sh) y se ejecutan con los permisos del usuario activo.

Ahora vamos con las cosas que ejecutamos al iniciar la máquina. En primer lugar tenemos que colocar una política de "Archivos locales" para que el archivo se nos descargue a los Gecos de nuestra red como ésta:


Y para su ejecución nada más fácil que aplicar otra política. Ésta:

Ya lo tenemos configurado para nuestras cositas de inicio de máquina. El tema de los permisos quizá se pueda afinar más. Acepto sugerencias. 
Ahora vamos con los comandos de ejecución en el espacio de usuario, cuando se inicia sesión. 
Primero colocamos el archivo con el contenido que vamos a ejecutar mediante una política de "archivos locales". Hay que dar permisos de ejecución a "otros" para que funcione.


Ahora el problema es que no existe una política del Gecos-CC para lanzar scripts en el inicio de sesión de usuario, por lo que tenemos que buscarnos la manera de hacerlo por nosotros mismos. Yo lo hago mediante el iniciador de scripts de Cinnamon, que básicamente consiste en poner un archivo .desktop en la ubicación /etc/xdg/autostart/iniciarusuario.sh.desktop. El formato del archivo es el siguiente:

[Desktop Entry]
#Lanzador de operaciones en el espacio de usuario
Type=Application
Exec=/usr/local/bin/iniciousuario.sh <-- Cuidado con la ruta y el nombre. Tienen que estar perfectos.
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
#Terminal=true
Name[es_ES]=
Name=InicioUsuarioGecos
Comment[es_ES]=Lanzador de operaciones Gecos en Usuario
Comment=
X-GNOME-Autostart-Delay=10 <-- Le introduzco un retraso de 10 segundos por si acaso
Categories=System;Settings;

Un último aviso. Para que todo esto funcione necesitaremos un par de reinicios de máquina y sesión. En el primero se "bajan" los ficheros, y en el segundo ya se ejecutan. También podemos forzar la descarga mediante el comando "sudo gecos-chef-client-wrapper" o dándole a actualizar al engranaje que nos aparece junto al reloj.

Comentarios

Entradas populares de este blog

El error SAF_19 en Autofirma y Firefox (cuando sí tienes certificados válidos instalados)

(Actualización: instalar la firma en todos los perfiles que el sistema haya creado automáticamente también puede ser una solución viable. Para ello arrancamos Firefox desde la línea de comandos con firefox -p y seleccionamos primero un perfil, instalamos el certificado, volvemos a arrancar Firefox con el otro perfil y lo instalamos ahí. Hay que tener cuidado con terminar marcando como predeterminado nuestro perfil real.) En ocasiones y sobre todo si hemos estado trasteando con el sistema nos puede suceder que al intentar acceder a Portafirmas (o cualquier otro servicio que use Autofirma) el sistema nos devuelve un error extraño conocido como error SAF_19, en el que se nos dice que no hay ningún certificado válido en el almacén. Tras ir al almacén de certificados de Firefox comprobamos que todo está bien, que el certtificado con nuestro nombre y apellidos está correctamente instalado y que no hemos dado un salto en el tiempo que haga que las fechas de validez del certificado produzcan

Eliminando entradas de dispositivos "extraños" en el visor de ficheros

Un buen día me apareció en mi escritorio de mi sesión de trabajo en el servidor de terminales el icono de una disquetera. Sí, el acceso a una disquetera de las de toda la vida. Los usuarios no podían montarla, por falta de permisos y porque este dispositivo no existía de ninguna de las maneras, pero les daba error cuando pulsaban en ella sin querer y me reportaban la incidencia. Revisé la configuración de la máquina virtual y nada, no aparecía ninguna disquetera en el panel de control de Hyper-V. Así que decidí eliminarla de su UI. Para ello ejecuté lo siguiente: echo "blacklist floppy" | sudo tee /etc/modprobe.d/blacklist-floppy.conf sudo rmmod floppy sudo update-initramfs -u Básicamente lo que conseguimos con ello es decirle al cargador de módulos del kernel que no cargue el controlador de disqueteras. Súbitamente el icono de la misma desaparece del UI. Otra cosa que también debemos de hacer si mantenemos servidores de terminales es evitar compartir carpetas remotas en loca

Fuentes. Y no las de agua

Desde el Gecos-CC instalo el paquete “msttfcorefonts” con una política. Además podemos instalar fuentes si las subimos a un servidor web y en el script de inicio de sesión añadimos el código siguiente. USUARIO=`whoami` mkdir -p /home/$USUARIO/.fonts /usr/bin/wget -r -nH --cut-dirs=2 --no-parent --directory-prefix=/home/$USUARIO/.fonts/ -R "index.html" http://intraweb/gecos/fonts /usr/bin/fc-cache -fv No podemos hacerlo en el script de inicio de máquina porque se ejecuta ANTES de arrancar la red, por lo que no puede descargarlas. Imagen de "taitantas" fuentes instaladas en un cliente Gecos sin despeinarse. Bueno, en mi caso dada la imposibilidad de ello, diremos sin pestañear.