Készítettem még 12.04-en egy upstart daemont. Most akartam a 14.04-re frissíteni a rendszeremet, viszont találkoztam egy érdekes problémával. Méghozzá, hogy az upstartban meghívott python daemon nem root joggal fut, hanem az aktuálisan bejelentkezett felhasználó jogával. Így nem tudok lefuttatni olyan kéréseket, amihez root jog kell. Először azt hittem, hogy nem figyeltem oda, és user sessionként határoztam meg a feladatot, de most elolvasva a cookbook-ot, tudom, hogy jó helyre tettem, azaz a /etc/init mappába az upstart file-t. Mégis úgy látom, hogy az aktuálisan bejelentkezett felhasználóval fut a python.
Itt az upstart scriptem, ami elég egyszerű:
author "idioty"
description "Ez fogja inditani a main_daemont, ez kell majd a vegleges, telepitendo verzioba."
start on started networking
stop on runlevel [016]
chdir /root/daemons
respawn
respawn limit 20 20
exec python main_daemon.py
Próbáltam az is, hogy exec su -u root python main_daemon.py
Próbáltam azt is, hogy előtte setuid root parancsot állítottam be.
A pythonban lehet magában egy olyan beállítás, hogy automatikusan a bejelentkezett felhasználó jogával indul el a biztonság miatt?