GNU/Linux >> Linux Esercitazione >  >> Linux

Configurazione del servizio Systemd per l'esecuzione con accesso root

Soluzione 1:

di' a systemd di eseguire il servizio con sudo ?

sudo non c'entra nulla.

In genere si ordina a systemd di eseguire un servizio come utente/gruppo specifico con un User= e Group= direttiva nel [Service] sezione del file dell'unità.

Impostali su root (o rimuovili, poiché l'esecuzione come root è l'impostazione predefinita).

Soluzione 2:

Per cancellare, systemd i servizi di sistema vengono eseguiti come root per impostazione predefinita, ma c'è ancora una differenza tra il comportamento predefinito e l'esecuzione di un servizio di sistema con User=root .

Come documentato in Variabili d'ambiente nei processi generati, queste variabili sono impostate solo se User= è impostato:

$USER, $LOGNAME, $HOME, $SHELL

Ho testato per confermare questo risultato. Quindi, se vuoi eseguire un servizio systemd come root che necessita di una delle variabili di cui sopra, devi impostare User=root .

Soluzione 3:

una soluzione temporanea, ma ha funzionato in un attimo:

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

Può essere eseguito con un utente che dispone dei privilegi sudo in un file unit systemd in questo modo:

[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:come ottenere meno Tty con Systemd?

  2. Come eseguire un comando che prevede il reindirizzamento o il piping con Sudo?

  3. Arresto dell'unità Systemd insieme a un'altra. Inizio lavori?

  4. Avvia automaticamente PHP-FPM con l'opzione root

  5. Come eseguire uno script con systemd subito prima dell'arresto?

Come eseguire il contenitore Jenkins come servizio Systemd con Docker

Come eseguire container come servizio Systemd con Podman

Installa ed esegui Jenkins con Systemd e Docker

Gestire cgroup con systemd

Come eseguire i pod come servizi di sistema con Podman

Come eseguire lo script della shell come servizio SystemD in Linux