GNU/Linux >> Tutoriales Linux >  >> Linux

Configuración del servicio Systemd para que se ejecute con acceso de root

Solución 1:

decirle a systemd que ejecute el servicio con sudo ?

sudo no tiene nada que ver.

Por lo general, le indica a systemd que ejecute un servicio como un usuario/grupo específico con un User= y Group= directiva en el [Service] sección del archivo de la unidad.

Configúrelos como root (o elimínelos, ya que la ejecución como root es la opción predeterminada).

Solución 2:

Para borrar, systemd los servicios del sistema se ejecutan como root de forma predeterminada, pero aún existe una diferencia entre el comportamiento predeterminado y la ejecución de un servicio del sistema con User=root .

Como se documenta en Variables de entorno en procesos generados, estas variables solo se establecen si User= está configurado:

$USER, $LOGNAME, $HOME, $SHELL

Probé para confirmar este hallazgo. Entonces, si desea ejecutar un servicio systemd como raíz que necesita una de las variables anteriores, debe configurar User=root .

Solución 3:

una solución temporal, pero funcionó en un abrir y cerrar de ojos:

/usr/bin/sudo /bin/bash -lc 'bundle exec rails server -e demo -p 80'

Puede ejecutarse con un usuario que tenga privilegios sudo en un archivo de unidad systemd así:

[Unit]
Description=Rails Webserver
After=syslog.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/var/www/webserver
ExecStart=/usr/bin/sudo /bin/bash -lc 'bundle exec rails server -e demo -p 80'
Restart=always
KillSignal=SIGQUIT

[Install]
WantedBy=multi-user.target

Linux
  1. Linux:¿cómo obtener menos Ttys con Systemd?

  2. ¿Cómo ejecutar un comando que implique redirigir o canalizar con Sudo?

  3. Linux:¿ejecutar script cada 30 minutos con Systemd?

  4. Detener la unidad Systemd junto con otra. ¿Inicio de obras?

  5. ¿Cómo ejecuto un script antes que todo lo demás al apagar con systemd?

Cómo ejecutar Jenkins Container como servicio Systemd con Docker

Cómo ejecutar contenedores como servicio Systemd con Podman

Instale y ejecute Jenkins con Systemd y Docker

Administrar cgroups con systemd

Cómo ejecutar pods como servicios systemd con Podman

Cómo ejecutar Shell Script como servicio SystemD en Linux