Redhat init script best practice

Je souhaite écrire un script de service d'init qui exécute le programme en tant qu'user particulier (et non root). Je vais ensuite chkconfig ce script et installer dans mon niveau d'exécution de production.

Je pourrais simplement mettre une command su dans le script, mais je me demandais s'il y avait une meilleure pratique de faire cela.

Merci Garry

Vous pouvez simplement su . Vous n'aurez pas besoin du mot de passe car le script sera en cours d'exécution en tant que root.

Il y a aussi la command runuser .

Si vous utilisez /etc/init.d/functions vous pouvez utiliser la fonction daemon qui a une option pour spécifier l'user à exécuter.

Je serais personnellement opposé à ce dernier toutes choses égales par ailleurs.

Si vous écrivez un script init de style redhat, la fonction daemon possède une option --user .

 daemon --user=$runasuser --pidfile="$PIDFILE" $yourbinary $youroptions 

La meilleure pratique pourrait être d'utiliser sudo, et de modifier les files nécessaires pour s'assurer que cela se produise automatiquement sans être demandé un mot de passe. Si vous ignorez que le mot de passe soit dans le script, je pense que vous pouvez faire quelque chose comme

  echo password | sudo -S -u username command 

Qu'est-ce que tu fais? Peut-être y a-t-il une meilleure façon?

MODIFIER

Merci TCampbell