Cómo ejecutar Bash Script como root durante el inicio en Linux

¿Alguna vez has querido ejecutar un script al iniciar con privilegios de root? Si tienes un servidor en casa, o tal vez sólo un escritorio Linux, esto podría haber pasado por su mente. Esto suena dudoso, pero si entiendes los riesgos, la recompensa por hacer esto puede ser bastante buena.

Las razones principales son que no habrá más arranques del servidor, inicio de sesión sobre ssh, introducción de una contraseña, obtención de un intérprete de comandos raíz y ejecución manual de script tras script. En su lugar, aprovecha la potencia de cron y configura tu sistema para que ejecute automáticamente estos scripts al iniciar el sistema. Aquí está cómo hacerlo.

Configuración de Cron

La mayoría de las distribuciones de Linux vienen con la capacidad de acceder a cron simplemente introduciendo crontab -e. Sin embargo, si has introducido este comando, y no ha pasado nada, estás  en una distribución de Linux que no tiene forma de interactuar con cron.

Esto significa que necesitarás instalar una herramienta para continuar. La herramienta más popular para usar en esta situación es un demonio conocido como «cronie«. Es una herramienta muy popular y reside en los repositorios de distribución de Linux más populares.

Abre terminal e instala cronie con tu gestor de paquetes. Alternativamente, ves a esta página y descarga un paquete para su distribución.

Configurar el script con Cron

Abrir un crontab es muy fácil. Para empezar, abre una ventana de terminal e introduce el siguiente comando:

sudo crontab -e

Nota : el sudo es importante si deseas ejecutar el script como root. Puedes omitir el sudo si quires ejecutar el script como un usuario normal.

Si el sistema no ha usado crontab antes, el usuario necesitará especificar un editor con el que trabajar. Aunque todos los editores son buenos a su manera, elije «nano» ya que es el editor de texto más sencillo y no requiere mucho esfuerzo. Con el editor seleccionado, cron cargará un archivo predeterminado con instrucciones detalladas sobre cómo funciona todo.

Dentro del nano editor en el terminal, desplázate hasta la parte inferior y empieza escribiendo «@reboot». El comando reboot es clave aquí ya que le dice a cron al reiniciar este comando que se ejecute cada vez. Inmediatamente después de reiniciar, agrega la ruta completa del archivo al script de bash.

@reboot /home/derrik/startupscript.sh

Ahora que el comando está configurado, el crontab puede ser guardado. Pulse «Ctrl + o» en el teclado. Esto pedirá al usuario que «escriba el archivo». Por defecto, el cron nombra la pestaña cron, así que no cambies nada. Presione la tecla Enter para guardar el crontab.

Quitar el script del inicio

De la misma manera que el comando fue agregado al crontab, puede ser quitado. Para ello, abra un terminal e introduzca sudo crontab -e. Esto cargará el archivo crontab. Simplemente borra el comando que se agregó, guárdelo y reinicia la computadora (o el servidor).

Solución de problemas Cron

A veces cron no ejecuta comandos, y eso puede ser un problema. La manera más fácil de solucionar cualquier problema con cron (si lo hubiera) es mirar el registro del sistema. Para ello, abre la ventana del terminal e introduzca este comando:

 grep CRON /var/log/syslog

El syslog muestra todos los eventos del sistema, y usando el comando grep, es posible filtrar lo que cron y crontag hacen. Esto debería permitir a los usuarios solucionar fácilmente cualquier problema y arreglar cualquier cosa que pueda salir mal.

Conclusión

La creación de scripts de Bash es algo maravilloso, y es una de las grandes fortalezas de Linux. Facilita la administración de servidores e incluso de ordenadores Linux normales debido a la capacidad de tomar grandes cantidades de comandos y automatizarlos. Al añadir cron a la imagen, estos scripts tienen el poder de ser aún más útiles. No más retoques después de tus arranques de Linux. Sólo tienes que configurarlo y olvidarlo!

¿Qué scripts de raíz ejecutarías al iniciar en tu equipo Linux? Cuéntanos más abajo!

2 comentarios en “Cómo ejecutar Bash Script como root durante el inicio en Linux

  • carlos

    En mi caso es lo único que me funcionó para ejecutar el TS3 – Server, por tema de permisos no me funcionaba nada. hice lo siguiente, Creé un .sh (inicots3.sh) que lo que hace es una llamada para ejecutar el .sh de ts3-server. El .sh (inicots3.sh) lo puse en init.d y además hice el procedimiento descrito arriba.
    Funciona.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *