3

Я запускаю пакет домашней автоматизации под названием HomeSeer на сервере Ubuntu 15.04. Я настроил его для запуска с учетной записью службы (называемой "_homeseer"), и я выбрал каталог приложения для _homeseer:_homeseer.

Чтобы установить обновления для этого пакета, я загружаю файл tar.gz, а затем запускаю предоставленный поставщиком скрипт «update.sh». Этот скрипт извлекает сжатый файл, который также перезаписывает сам себя (update.sh)... поэтому я думаю, что я не могу просто изменить этот скрипт, если я не скопирую его в отдельную папку где-нибудь.

В рамках update.sh есть строка с названием «sudo update_extra.sh». Поскольку я использую update.sh в качестве учетной записи службы, в этой строке sudo запрашивается пароль учетной записи службы ... который я не помню (и не думаю, что хочу).

Я не хочу предоставлять этой учетной записи полные права sudo без пароля, так как это будет представлять серьезную угрозу безопасности (т. Е. Приложение запускает веб-сервер). Я также немного опасаюсь предоставить ему полные права sudo для запуска этого файла update_extra.sh от имени root, поскольку этот файл может обновляться той же учетной записью службы.

Мой вопрос:

Можно ли настроить sudo (т. Е. Visudo), чтобы, если учетная запись _homeseer пыталась использовать sudo, вместо этого она запрашивала пароль моей личной учетной записи и запускалась с имеющимися у меня правами sudo? Я бы предпочел не устанавливать пароль пользователя root, если смогу его избежать ... но предварительный взгляд показывает, что у меня может не быть большого выбора, если я хочу пойти по этому пути.

Или мне нужно изменить этот скрипт update.sh, настроить разрешения для группы, чтобы я мог применять обновления как сам, а затем привязать их к учетной записи службы?

1 ответ1

2

Вы можете иметь дело с sudo.

Если вы добавите это в файл sudoers:

_homeseer hostname = (_homeseer) NOPASSWD: /path/to/update.sh
  • hostname = вывод имени hostname на вашем компьютере.

Следует обратить внимание на то, что нет 100% безопасного способа работы с update.sh, так как он может содержать любую команду, и я предполагаю, что со временем она изменится, то есть вы не можете использовать функцию HASH для убедитесь, что сценарий такой же, как и раньше.

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