jenkins slave работает как пользователь

У меня есть настройка jenkins с несколькими пользователями, которые входят в систему с плагином Active Directory. Это полезно, так что каждый пользователь может получить доступ к своим собственным задачам.

Однако каждый пользователь также имеет разные разрешения в локальной сети, такие как доступ к различным папкам и т.д. Я заметил, что разрешения, предоставляемые каждой задаче, не связаны с пользователем, а с учетной записью, под которой подчиненный работает как служба. Есть ли способ изменить это, чтобы задача выполнялась на подчиненном устройстве под учетными данными (и, следовательно, разрешениями) пользователя?

спасибо

Ответ 1

Проблема заключается в том, что только один подчиненный процесс выполняет задание, назначенное этому серверу мастером Jenkins.
Таким образом, сам ведомый работает как один пользователь (как правило, выделенный аккаунт или системная учетная запись).

Так как вы можете получить идентификатор пользователя в качестве переменной среды (с плагином, например, JENKINS Build User Vars Plugin), вы можете подумать о настройке задания, чтобы его шаг сборки выполнялся как "пользователь, который вызвал сборку.
См. Например, плагин JENKINS Authorize Project.

https://wiki.jenkins-ci.org/download/attachments/70877566/authorize-project_01_globalsecurity.png?version=2&modificationDate=1439085782000&api=v2

https://wiki.jenkins-ci.org/download/attachments/70877566/authorization-page.png?version=1&modificationDate=1486871612000&api=v2

Однако, как уже упоминалось, этот ответ:

Плагин "Авторизовать проект" не меняет пользователя уровня ОС, который запускает команды.
Он устанавливает только пользователя Jenkins, выполняющего задание, и любые последующие задания, используя аутентификацию Jenkins (каким бы оно ни было).

Таким образом, вы остаетесь на этапе сборки с командами runas или su -c, чтобы убедиться, что ваша задача выполняется с нужным пользователем.

Ответ 2

У меня была аналогичная проблема, и я могу вспомнить, что для управления большим контролем над проектами я использовал плагин стратегии роли и установил глобальную безопасность с помощью серверов LDAP (Active Directory также должно быть в порядке). И я использовал авторизованный плагин проекта. Посмотрите, и я надеюсь, что это решит вашу цель. Сообщите мне в разделе комментариев какие-либо разъяснения.