У меня есть сценарий сборки, который выполняет apt-get и поэтому требует привилегий root. Как лучше всего запустить этот скрипт в Гудзоне?
В настоящее время я нашел единственное работающее решение - добавить запись в файл sudoers для пользователя hudson следующим образом:
hudson ALL=(ALL) NOPASSWD:ALL
Однако, хотя мой сценарий сборки теперь работает без ошибок в Hudson, мне не совсем комфортно это решение. Есть ли способ лучше?
Я иду еще дальше, с блокировкой apt-get
Я фиксирую, какие параметры вы можете использовать, потому что мы не хотим, чтобы кто-то что-то устанавливал или удалял.
%admins ALL = NOPASSWD: \
/usr/bin/apt-get update, \
/usr/bin/apt-get dist-upgrade, \
/usr/bin/apt-get upgrade
что дает группе admins
разрешения на запуск apt-get update / dist-upgrade / upgrade без ввода пароля.
Вы можете заблокировать команды, которые пользователь hudson может выполнять как root; измените строку в вашем файле sudoers на:
hudson ALL=/usr/bin/apt-get NOPASSWD:ALL
(Проверьте путь к вашему двоичному файлу apt-get - я работаю в Fedora, поэтому у меня нет этой команды)