Я хочу создать ситуацию, когда что-то непривилегированный пользователь делает (через SSH), запускает событие, которое заставляет задание upstart выполнить какое-то действие. Действия основаны на изменениях файловой системы, поэтому я приветствую альтернативные методы.
В основном я хочу иметь что-то вроде:
description "Foo job"
exec foo
start on foo
а затем попросите пользователя вызвать событие как foo. Когда я говорю "пользователь", я на самом деле имею в виду скрипт ловушки git, который запускается автоматически, когда git передает SSH в хранилище на хосте.
Я попытался просто запустить initctl emit foo
, но это работает только тогда, когда я делаю это как root.
Я также не могу использовать пользовательские задания для этого конкретного случая, потому что я хочу, чтобы рассматриваемая работа перезапускала серверы и создавала структуры каталогов, к которым у пользователя, отправляющего событие, нет доступа.
Любые идеи о том, как я мог бы сделать это без предоставления пользователю ненужных привилегий?
РЕДАКТИРОВАТЬ: Просто чтобы добавить требование, которое я забыл упомянуть. Это должно быть в сценарии, поэтому ввод паролей не вариант.