Запрос пароля другого пользователя при использовании sudo

Запрос пароля другого пользователя при использовании sudo

Я запускаю пакет домашней автоматизации HomeSeer на сервере Ubuntu 15.04. Я настроил его на запуск с учетной записью службы (называемой "_homeseer"), и я сделал chown'ом каталога приложения _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

С этим можно справиться с помощью sudo.

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

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

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

Связанный контент