sudo внутри конвейерного скрипта Jenkins - PullRequest
0 голосов
/ 18 сентября 2018

У нас есть следующие настройки:

  1. У нас есть несколько блоков UNIX.
  2. Есть пользователи, подготовленные для этих блоков (например: spande ).
  3. Эти пользователи имеют ограниченные привилегии, но могут сделать sudo для повышения разрешений (пользователь sudo: admin ).
  4. sudo происходит без пароля.

У нас в Jenkins есть инструмент CICD, который использует эти Unix-блоки в качестве подчиненных.У нас есть spande учетные данные для входа на серверы Unix через Jenkins.

Мы используем конвейерные сценарии Jenkins (отличные).Все хорошо, но мы хотим, чтобы сценарий Jenkins выполнялся с более высоким преобладанием, и, следовательно, необходимо знать:

  1. как мы можем сделать sudo в сценарии Jenkins?( sudo su - admin )
  2. это лучший метод / хороший подход к sudo в сценарии?Если нет, то какая у нас альтернатива?(наша команда Unix-сервера не готова создать пользователя с паролем с более высокими привилегиями из-за политик организации)

Любая помощь приветствуется !!

1 Ответ

0 голосов
/ 19 сентября 2018

Вообще говоря, использование sudo в качестве части скрипта - это нормально, если вы не предоставляете более высокие разрешения, чем вам нужно.Вместо запуска su - admin обычно лучше выяснить, какие команды Jenkins должен запускать от имени admin, и поместить их непосредственно в файл sudoers.

Скажем, вам нужно запустить следующие программы какuser admin как часть вашей работы в Jenkins:

/usr/bin/execute
/home/admin/calculate
/opt/synergize

Ваш файл sudoers может выглядеть примерно так (при условии, что ваш пользователь Jenkins jenkins):

jenkins ALL = (admin) NOPASSWD: /usr/bin/execute, /home/admin/calculate, /opt/synergize

Это будетразрешить пользователю jenkins выполнять следующие команды без пароля:

sudo -u admin /usr/bin/execute
sudo -u admin /home/admin/calculate
sudo -u admin /opt/synergize

С точки зрения безопасности это предпочтительнее, чем предоставление доступа su - admin, так как тогда jenkins мог бы делать все, что мог adminбез каких-либо реальных ограничений.Файл sudoers очень гибкий , и вы должны иметь возможность ограничивать jenkins, в то же время позволяя ему выполнять свою работу.

...