2017-06-09 26 views
11

Tôi có thiết lập jenkins với nhiều người dùng đang đăng nhập bằng Active Directory plugin. Điều này rất hữu ích để mỗi người dùng có thể truy cập các nhiệm vụ của riêng mình.jenkins slave chạy như người dùng

Tuy nhiên mỗi người dùng cũng có các quyền khác nhau trên mạng cục bộ, chẳng hạn như quyền truy cập vào các thư mục khác nhau, v.v. Tôi nhận thấy rằng các quyền được cấp cho mỗi tác vụ không được liên kết với người dùng mà đến tài khoản mà nô lệ đang chạy như dịch vụ. Có cách nào để thay đổi điều đó để nhiệm vụ được thực hiện trên slave theo ủy nhiệm (và do đó cho phép) của người dùng?

Cảm ơn bạn

Trả lời

4

Vấn đề là: chỉ có một quy trình nô lệ chạy công việc khác được gán cho máy chủ đó bởi chủ Jenkins.
Vì vậy, bản thân nô lệ chạy như một người dùng (thường là tài khoản chuyên dụng hoặc tài khoản hệ thống).

Vì bạn có thể lấy id người dùng làm biến môi trường (với plugin như JENKINS Build User Vars Plugin), bạn có thể xem xét định cấu hình công việc để xây dựng bước "chạy dưới dạng" người dùng đã kích hoạt bản dựng.
Xem ví dụ: JENKINS Authorize Project plugin.

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

Tuy nhiên, như mentioned this answer:

"Dự án Authorize" plugin không thay đổi người dùng cấp hệ điều hành đang chạy lệnh.
Nó chỉ đặt người dùng Jenkins đang chạy công việc và bất kỳ công việc hạ lưu nào, bằng cách sử dụng xác thực Jenkins (bất kể nó có thể là gì).

Vì vậy, bạn là trái với build step with runas or su -c commands để có chắc chắn rằng nhiệm vụ của bạn không chạy với đúng người dùng.

+0

Ví dụ: đối với Windows runas, hãy xem http://jenkins-ci.361315.n4.nabble.com/Error-running-Windows-batch-file-via-build-step-td4570615.html và/savecred Tùy chọn. – VonC

0

Tôi có vấn đề tương tự và tôi có thể gọi lại để quản lý nhiều quyền kiểm soát hơn đối với các dự án tôi đã sử dụng role strategy plugin và thiết lập bảo mật toàn cầu bằng máy chủ LDAP (Thư mục hoạt động cũng sẽ ổn). Và tôi đã sử dụng authorized project plugin. Có một cái nhìn và tôi hy vọng nó sẽ giải quyết mục đích của bạn. Hãy cho tôi biết về phần bình luận cho bất kỳ làm rõ. Ví dụ:

+1

Thật không may "Plugin ủy quyền-dự án chỉ kiểm soát ủy quyền của Jenkins, chứ không phải cho phép của hệ điều hành." – RockScience

Các vấn đề liên quan