2010-12-15 181 views
1

J'ai un script python que je voudrais lancer à partir inittab, illustré ci-dessousExécution d'un script python de inittab pas en tant que root

s1: respawn: /home/a_user/app/script.py

Je crois que initab s'exécute en tant que root, donc l'envrinment de a_user n'est pas disponible

Le script doit connaître le répertoire de base "a_user" pour les paramètres du fichier ini et le stockage des fichiers journaux. Je voudrais éviter de coder ces chemins dans mon script. Est-il possible d'exécuter ce script en tant que utilisateur et non en tant que root? Si cela est possible, la variable d'environnement a_user HOME sera-t-elle disponible?

Cordialement

Répondre

1

Utilisez runuser (ou equvalent du distro) pour le faire fonctionner comme un autre utilisateur. runuser change $HOME, mais pas d'autres commandes similaires.

+0

Merci, mais j'ai essayé cela et ça ne marche pas, c'est-à-dire su -a_user /path_to_script/scripy.py – mikip

+0

Merci, je cours opensuse et il n'a pas la commande runuser et à la fois su et sudo ne fonctionnent pas – mikip

1

vous pouvez copier binaire python à python-suid, chown à l'utilisateur que vous voulez exécuter des scripts au fur et à chown u + s python-suid

puis dans le script #!/Usr/bin/python-suid