GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration du service Systemd pour qu'il s'exécute avec un accès root

Solution 1 :

dire à systemd d'exécuter le service avec sudo ?

sudo n'a rien à voir avec ça.

Généralement, vous demandez à systemd d'exécuter un service en tant qu'utilisateur/groupe spécifique avec un User= et Group= directive dans le [Service] section du fichier unité.

Définissez-les sur root (ou supprimez-les, car l'exécution en tant que root est la valeur par défaut).

Solution 2 :

Pour effacer, systemd les services système s'exécutent en tant que root par défaut, mais il existe toujours une différence entre le comportement par défaut et l'exécution d'un service système avec User=root .

Comme documenté dans Variables d'environnement dans les processus générés, ces variables ne sont définies que si User= est défini :

$USER, $LOGNAME, $HOME, $SHELL

J'ai testé pour confirmer ce constat. Donc, si vous voulez exécuter un service systemd en tant que root qui a besoin de l'une des variables ci-dessus, vous devez définir User=root .

Solution 3 :

une solution temporaire, mais l'a fait fonctionner en un clin d'œil :

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

Peut s'exécuter avec un utilisateur disposant des privilèges sudo dans un fichier d'unité systemd comme ceci :

[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 - Comment obtenir moins de Ttys avec Systemd ?

  2. Linux - Exécuter le script toutes les 30 minutes avec Systemd ?

  3. Sans accès root, exécutez R avec BLAS réglé lorsqu'il est lié à la référence BLAS

  4. Comment arrêter le service systemd

  5. Démarrer automatiquement PHP-FPM avec l'option root

Comment exécuter Jenkins Container en tant que service Systemd avec Docker

Comment exécuter des conteneurs en tant que service Systemd avec Podman

Installer et exécuter Jenkins avec Systemd et Docker

Gestion des cgroups avec systemd

Comment exécuter des pods en tant que services systemd avec Podman

Comment exécuter un script Shell en tant que service SystemD sous Linux