Выполнение скрипта Python из inittab не как root

У меня есть скрипт Python, который я хотел бы запустить из inittab, как показано ниже.

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

Я считаю, что initab выполняется от имени пользователя root, поэтому среда a_user недоступна.

Сценарий должен знать домашний каталог «a_user» для настроек файла ini и хранения файла журнала. Я хотел бы избежать жесткого кодирования этих путей в моем сценарии. Можно ли выполнить этот скрипт как a_user, а не как root? Если это возможно, будет ли доступна переменная окружения a_user HOME?

С Уважением


person mikip    schedule 15.12.2010    source источник


Ответы (2)


Используйте runuser (или аналог дистрибутива), чтобы запустить его от имени другого пользователя. runuser изменяет $HOME, а другие подобные команды - нет.

person Ignacio Vazquez-Abrams    schedule 15.12.2010
comment
Спасибо, но я пробовал, и это не работает, т.е. su -a_user /path_to_script/scripy.py - person mikip; 16.12.2010
comment
Спасибо, я использую opensuse, и у него нет команды runuser, а su и sudo не работают. - person mikip; 16.12.2010

вы можете скопировать двоичный файл python в python-suid, передать его пользователю, от имени которого вы хотите запускать скрипты, и указать u+s python-suid

затем в сценарии #!/usr/bin/python-suid

person damir    schedule 15.12.2010