Existe-t-il un moyen de lancer une application au démarrage sous un compte utilisateur donné?
Par exemple, j'aimerais que a_small_app
soit exécuté sous le compte d'utilisateur bob
(qui appartient au groupe bobsgroup
). Est-ce que j'ajoute quelque chose à /etc/init.d
?
Remarque: je ne veux pas que l'application démarre après qu'un utilisateur se soit connecté, mais plutôt au démarrage de l'ordinateur.
Une méthode agnostique du système de démarrage. Vous pouvez utiliser cela dans /etc/rc.local
, un script /etc/init.d/...
, un fichier de configuration Upstart et probablement aussi une configuration systemd.
Sudo -u oli /full/path/to/application
Cette commande s'exécutera en tant qu'utilisateur root et Sudo
sera redirigé vers l'utilisateur "oli". Évidemment, changez l'utilisateur et la commande pour vos besoins.
Je devrais ajouter qu'il existe au moins une douzaine de façons de faire cela ... Mais d'après mon expérience, elles ont toutes un effet identique. Voici un exemple récent utilisant sa strophe setuid
:
start on (filesystem and stopped udevtrigger)
stop on runlevel [06]
setuid oli
respawn
exec /full/path/to/application
Il semble que la première réponse ne fonctionne plus dans Ubuntu 14.10.
Voici comment je le fais ici (mettez-le dans /etc/rc.local)
su <username> - -c "<command>"