Inicio de sesión automático de root en servidores Linux

Inicio de sesión automático de root en servidores Linux

Estoy intentando ejecutar una prueba en diferentes distribuciones de servidores Linux (Fedora, Ubuntu, Centos, etc).

Sé que existe un sistema de inicio que puede permitir la ejecución de programas después del inicio (sin iniciar sesión). El problema es que no quiero tener un caso especial para cada sistema de inicio diferente entre distribuciones. ¿Hay alguna manera de permitir el inicio de sesión automático de root después del arranque?

Al hacer esto puedo tener el mismo script de shell para cualquier distribución. ¿O hay alguna manera de solucionar este problema?

Respuesta1

Sé que existe un sistema de inicio que puede permitir la ejecución de programas después del inicio (sin iniciar sesión).

Desafortunadamente estos días no hayunoSistema de inicio Hay media docena de sistemas de inicio populares. Por ejemplo sysv init, systemd, advenedizo, etc.

De todos modos, si realmente desea que un sistema le proporcione una consola con acceso de root, probablemente desee actualizar su sistema de inicio.

Hago esto para un puerto serie en un par de mis sistemas. Tengo dos configuraciones muy diferentes y solo estoy usando Debian con dos versiones diferentes. No puedo imaginar que puedas encontrar un método único que se aplique a todas las distribuciones. Simplemente no hay coherencia en cómo empiezan las cosas. Systemd debería ser bastante similar en todas las distribuciones, pero aún no es ampliamente aceptado.

Debian con sysv init (wheezy) para rootear en el puerto serie

# /etc/inittab
...
# serial port getty spawns sulogin, which drops to a root shell
# on debian if root has a disabled password
T0:23:respawn:/sbin/getty -n -l /sbin/sulogin -L ttyS0 57600 vt102
...

Debian con systemd (jessie) para rootear en el puerto serie

#/etc/systemd/system/getty.target.wants/[email protected]
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Serial Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
BindsTo=dev-%i.device
After=dev-%i.device systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service

# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes

[Service]
ExecStart=-/sbin/agetty -n -l /sbin/sulogin --keep-baud 115200,38400,9600 %I $TERM
Type=idle
Restart=always
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes

[Install]
WantedBy=getty.target

Su mejor opción podría ser renunciar a la idea de iniciar sesión como root y, en su lugar, utilizar una herramienta de administración de configuración como Puppet o que pueda abstraer algunas diferencias entre las distribuciones. Haga que esa herramienta active sus ejecuciones de prueba.

Respuesta2

agregaste un comentario: "Tengo un programa que necesita ser probado físicamente en diferentes distribuciones de Linux para informar el rendimiento"

en este caso, es posible que desee considerar el usoestibador, de esa manera realmente no necesitas un sistema operativo completo ni nada... pero si tu programa por alguna razón necesita ejecutarse en una instancia física, es posible que desees verificar algún entorno de ejecución de trabajos comojenkins

Respuesta3

Estoy confundido acerca de lo que quieres, sin embargo, si quieres ejecutar algo como root después del arranque en Linux, pégalo aquí en la mayoría de las distribuciones:

/etc/rc.local

O algunas veces

/etc/rc.d/rc.local

Respuesta4

Si se trata de una programación de línea de comandos, un mejor enfoque sería ejecutarla a través de SSH. Además, puedes utilizar claves SSH para iniciar sesión sin contraseñas.

información relacionada