3

Я пытаюсь быть хорошим. Это моя большая ошибка.

У меня все хорошо, когда я наблюдаю за процессами: я наблюдаю за некоторыми ключевыми процессами и перезапускаю их, если они терпят неудачу.

У меня все хорошо, я не запускаю с правами root: Monit запускает веб-сервер, и я не хочу, чтобы он запускался с правами root в случае проблем с безопасностью. Итак, у меня есть специальный пользователь 'monit', у которого есть разрешения, необходимые для запуска и остановки некоторых ключевых процессов, и это все.

Процесс monit читает из файла ~ monit/.monitrc, и monit настаивает на том, что файл может быть прочитан только тем пользователем, которым он запущен, т.е. пользователем monit.

У меня все хорошо, я храню все свои рабочие сценарии и конфигурации в системе управления версиями (Mercurial), так что я могу перестраивать машины с теми же характеристиками. Я или другие разработчики регистрируем изменения в сценариях управления исходным кодом, а затем перетаскиваем результаты на рабочий компьютер. Символические ссылки указывают из ~ monit/.monitrc в каталог управления исходным кодом.

Тем не менее, вот где все это падает: каталог управления исходным кодом записывается Mercurial, когда я извлекаю последние сценарии, но команда pull не запускается как monit, поэтому файл monitrc доступен для записи другому пользователю ... не любит и не побежит

Я могу постоянно разбивать и изменять файл monitrc до и после каждого извлечения, но это чревато упущениями.

Я не вижу, как попросить Монит расслабиться по поводу владения. Я не вижу, как липкие биты помогут.

Какие-либо предложения?

1 ответ1

0

Вы всегда можете превратить hg в скрипт, который вызывает hg а затем имеет дело с разрешениями. Что-то вроде

!#/bin/bash
/usr/bin/hg.bin $@ && chmod 400 ~monit/monitrc && chown monit ~monit/monitrc

Сохраните скрипт как /usr/bin/hg (или там, где установлен бинарный файл hg ) и

mv /usr/bin/hg /usr/bin/hg.bin
chmod 744 ~monit/monitrc

Если у вашего обычного пользователя есть права на запуск команд chmod и chown , это должно сработать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .