Làm cách nào để thiết lập lại cài đặt bảo mật Jenkins từ dòng lệnh?


217

Có cách nào để thiết lập lại tất cả (hoặc chỉ vô hiệu hóa cài đặt bảo mật) khỏi dòng lệnh mà không cần người dùng / mật khẩu vì tôi đã tự khóa hoàn toàn Jenkins?

Câu trả lời:


275

Giải pháp đơn giản nhất là vô hiệu hóa hoàn toàn bảo mật - thay đổi truethành falsetrong /var/lib/jenkins/config.xmltệp.

<useSecurity>true</useSecurity>

Sau đó, chỉ cần khởi động lại Jenkins, bởi

sudo service jenkins restart

Và sau đó vào bảng quản trị và thiết lập mọi thứ một lần nữa.

Nếu bạn trong trường hợp đang chạy Jenkins bên trong pod k8 từ docker, đó là trường hợp của tôi và không thể chạy servicelệnh, thì bạn có thể khởi động lại Jenkins bằng cách xóa pod:

kubectl delete pod <jenkins-pod-name>

Khi lệnh được ban hành, k8s sẽ chấm dứt nhóm cũ và bắt đầu một nhóm mới.


3
Tôi cần phải khởi động lại Jenkins để thay đổi để áp dụng.
Hoặc Arbel

12
sudo service jenkins restart
MonoThreaded

10
Đối với những người không thể tìm thấy nó, tệp config.xml của họ sử dụng find / -name "config.xml" trong thiết bị đầu cuối của bạn.
Laser Hawk

Sau khi thay đổi thẻ Bảo mật của người dùng thành false để khởi động lại jenking từ dấu nhắc lệnh --- stackoverflow.com/questions/14869311/
Kẻ

1
Ngoài ra tập tin có thể được đặt trong ~ / .jenkins / thư mục
Andrii Abramov

181

Một cách khác là chỉnh sửa thủ công tệp cấu hình cho người dùng của bạn (ví dụ: /var/lib/jenkins/users/username/config.xml) và cập nhật nội dung của passwordHash :

<passwordHash>#jbcrypt:$2a$10$razd3L1aXndFfBNHO95aj.IVrFydsxkcQCcLmujmFQzll3hcUrY7S</passwordHash>

Khi bạn đã hoàn thành việc này, chỉ cần khởi động lại Jenkins và đăng nhập bằng mật khẩu này:

test

1
Điều gì xảy ra nếu mục này không có ở đó - nơi thực sự đặt nó?
serup

2
các <passwordHash>thẻ xml là con của <hudson.security.HudsonPrivateSecurityRealm_-Details>. Nhìn vào người dùng quản trị mặc định để biết ý tưởng về cấu trúc XML tổng.
ivandov

2
Đây là một giải pháp tốt giúp giữ an toàn cho việc cài đặt. Vì tò mò, làm thế nào để tạo ra mật khẩu băm đó?
kontextify

Cảm ơn bạn, đây chính xác là những gì tôi cần!
Matt Cavanagh

Sửa đổi nội dung của tệp có trong C: \ Users \ <USER> \. Jenkins \ users \ admin đã giúp giải quyết vấn đề
Sakshi Singla

45

Tôi tìm thấy tệp trong câu hỏi nằm trong / var / lib / jenkins được gọi là config.xml, sửa đổi đã khắc phục sự cố.


1
Tôi đang sử dụng El-Capitan và config.xml không thể tìm thấy ở vị trí
Durai Amuthan.H

@ DuraiAmuthan.H Bạn đã cài đặt nó với ngăn xếp bitnami chưa? Tệp cấu hình sẽ ở trong/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
siegy22

@ryanzec, câu trả lời của Nowakers sử dụng cùng một tệp nhưng giải thích rõ hơn, bạn nên xem xét chấp nhận nó là câu trả lời đúng.
Katu

nơi chúng tôi sẽ tìm thấy tệp trong hight sierra
prabakaran iOS

44

Phần <passwordHash>tử trong users/<username>/config.xmlsẽ chấp nhận dữ liệu của định dạng

salt:sha256("password{salt}")

Vì vậy, nếu muối của bạn là barvà mật khẩu của bạn foothì bạn có thể sản xuất SHA256 như thế này:

echo -n 'foo{bar}' | sha256sum

Bạn sẽ nhận được 7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349kết quả. Lấy băm và đặt nó với muối vào <passwordHash>:

<passwordHash>bar:7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349</passwordHash>

Khởi động lại Jenkins, sau đó thử đăng nhập bằng mật khẩu foo. Sau đó đặt lại mật khẩu của bạn để một cái gì đó khác. (Jenkins sử dụng bcrypt theo mặc định và một vòng SHA256 không phải là cách an toàn để lưu trữ mật khẩu. Bạn sẽ nhận được bcrypt băm được lưu trữ khi bạn đặt lại mật khẩu.)


1
Điều này dường như không hoạt động. một ví dụ bắt đầu bằng một muối #jbscrypt và sau đó xác định các trường mã hóa $ 2a $ 10 $. Chúng có nghĩa là gì?
jrwren

Câu trả lời của tôi đã làm việc cho tôi. Các trường bổ sung bạn đang thấy là cho một định dạng băm khác nhau. Thư viện Jenkins sử dụng để xử lý mật khẩu băm hỗ trợ nhiều hơn một định dạng. Định dạng jbcrypt mà bạn đề cập là an toàn hơn sha256 với một loại muối, nhưng định dạng muối sha256 + có thể dễ dàng được tạo ra từ dòng lệnh --- nhớ lại rằng mục đích của bài tập là quay trở lại vào Jenkins, và sau đó thay đổi mật khẩu từ giao diện web của Jenkins.
uckelman

Điều này cũng không làm việc cho tôi. Tôi sẽ cố gắng tìm thêm thông tin về bcrypt
Laurent Picquet

nó làm việc cho tôi Tôi đã sử dụng các lệnh sau: `` `PASSWORD_DIGEST =" $ (echo -n "$ {ADMIN_PASSWORD} {$ {SALT}}" | sha256sum | awk '{print $ 1}') "echo" digest: $ PASSWORD -i -e "s # <passwordHash>. * </ passwordHash> # <passwordHash> $ {SALT}: $ {PASSWORD_DIGEST} </ passwordHash> #" "/ usr / share / jenkins / ref / users / admin / config .xml "sed -i -e" s # <apiToken>. * </ apiToken> # <apiToken> $ {API_TOKEN} </ apiToken> # "" / usr / share / jenkins / ref / users / admin / config. xml "` ``
Laurent Picquet

Cảm ơn một triệu. Được sử dụng chính xác cùng giá trị và làm việc như một nét duyên dáng. Đã trở lại và thiết lập lại vượt qua.

26

Trong El-Capitan config.xml không thể tìm thấy tại

/ var / lib / jenkins /

Nó có sẵn trong

~ / .jenkins

sau đó, như đã đề cập, hãy mở tệp config.xml và thực hiện các thay đổi sau

  • Trong này thay thế <useSecurity>true</useSecurity>bằng<useSecurity>false</useSecurity>

  • Xóa <authorizationStrategy><securityRealm>

  • Lưu nó và khởi động lại jenkins ( sudo service jenkins restart )


Tôi thực sự không thể chỉnh sửa tập tin config.xml. Khi tôi cố lưu nó bằng vim, nó ném ra rằng đó là một tệp chỉ đọc và thao tác để làm cho nó ghi quyền truy cập không được phép.
Emjey

19

Câu trả lời về sửa đổi là chính xác. Tuy nhiên, tôi nghĩ rằng nó nên được đề cập /var/lib/jenkins/config.xmltrông giống như thế này nếu bạn đã kích hoạt "Chiến lược ủy quyền ma trận dựa trên dự án". Xóa /var/lib/jenkins/config.xmlvà khởi động lại jenkins cũng thực hiện các mẹo. Tôi cũng đã xóa người dùng /var/lib/jenkins/usersđể bắt đầu lại từ đầu.

<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
    <permission>hudson.model.Computer.Configure:jenkins-admin</permission>
    <permission>hudson.model.Computer.Connect:jenkins-admin</permission>
    <permission>hudson.model.Computer.Create:jenkins-admin</permission>
    <permission>hudson.model.Computer.Delete:jenkins-admin</permission>
    <permission>hudson.model.Computer.Disconnect:jenkins-admin</permission>
    <!-- if this is missing for your user and it is the only one, bad luck -->
    <permission>hudson.model.Hudson.Administer:jenkins-admin</permission>
    <permission>hudson.model.Hudson.Read:jenkins-admin</permission>
    <permission>hudson.model.Hudson.RunScripts:jenkins-admin</permission>
    <permission>hudson.model.Item.Build:jenkins-admin</permission>
    <permission>hudson.model.Item.Cancel:jenkins-admin</permission>
    <permission>hudson.model.Item.Configure:jenkins-admin</permission>
    <permission>hudson.model.Item.Create:jenkins-admin</permission>
    <permission>hudson.model.Item.Delete:jenkins-admin</permission>
    <permission>hudson.model.Item.Discover:jenkins-admin</permission>
    <permission>hudson.model.Item.Read:jenkins-admin</permission>
    <permission>hudson.model.Item.Workspace:jenkins-admin</permission>
    <permission>hudson.model.View.Configure:jenkins-admin</permission>
    <permission>hudson.model.View.Create:jenkins-admin</permission>
    <permission>hudson.model.View.Delete:jenkins-admin</permission>
    <permission>hudson.model.View.Read:jenkins-admin</permission>
  </authorizationStrategy>

14

Để đặt lại nó mà không vô hiệu hóa bảo mật nếu bạn đang sử dụng quyền ma trận (có thể dễ dàng thích ứng với các phương thức đăng nhập khác):

  1. Trong config.xml, đặt disableSignupthành false.
  2. Khởi động lại Jenkins.
  3. Truy cập trang web Jenkins và đăng ký với người dùng mới .
  4. Trong config.xml, sao chép một trong các <permission>hudson.model.Hudson.Administer:username</permission>dòng và thay thế usernamebằng người dùng mới.
  5. Nếu đó là một máy chủ riêng, thiết lập disableSignuptrở lại truetrong config.xml.
  6. Khởi động lại Jenkins.
  7. Truy cập trang web Jenkins và đăng nhập với tư cách là người dùng mới .
  8. Đặt lại mật khẩu của người dùng ban đầu.
  9. Đăng nhập như người dùng ban đầu.

Dọn dẹp tùy chọn:

  1. Xóa người dùng mới.
  2. Xóa <permission>dòng tạm thời trong config.xml.

Không có chứng khoán bị tổn hại trong câu trả lời này.


Thêm vào dọn dẹp thiết lập vô hiệu hóa Đặt lại thành đúng và khởi động lại jenkins
Marc

14

Để vô hiệu hóa bảo mật Jenkins trong các bước đơn giản trong Linux, hãy chạy các lệnh sau:

sudo ex +g/useSecurity/d +g/authorizationStrategy/d -scwq /var/lib/jenkins/config.xml
sudo /etc/init.d/jenkins restart

Nó sẽ xóa useSecurityauthorizationStrategydòng từ config.xmltập tin cấu hình gốc của bạn và khởi động lại Jenkins của bạn.

Xem thêm: Vô hiệu hóa bảo mật tại trang web Jenkins


Sau khi có quyền truy cập vào Jenkins, bạn có thể bật lại bảo mật trong trang Cấu hình Bảo mật Toàn cầu của mình bằng cách chọn Vương quốc Kiểm soát truy cập / Bảo mật . Sau đó, đừng quên tạo người dùng quản trị .


Nó làm việc cho tôi, tuy nhiên, bây giờ nó bỏ qua ủy quyền.
hemanto

@hemanto Bạn cần kích hoạt bảo mật để kích hoạt lại ủy quyền. Tôi đã cập nhật câu trả lời.
kenorb

12

Trong trường hợp bạn vô tình tự khóa mình khỏi Jenkins do lỗi cấp phép và bạn không có quyền truy cập phía máy chủ để chuyển sang người dùng jenkins hoặc root ... Bạn có thể tạo một công việc trong Jenkins và thêm điều này vào Shell Script:

sed -i 's/<useSecurity>true/<useSecurity>false/' ~/config.xml

Sau đó nhấp vào Xây dựng ngay và khởi động lại Jenkins (hoặc máy chủ nếu bạn cần!)


1
Làm thế nào để bạn tạo ra một công việc trong Jenkins trong trường hợp bạn bị khóa trong đó?
GeroldBroser phục hồi Monica

Trong trường hợp này, tôi đã có một cửa sổ Chrome bình thường đăng nhập và tôi đã thay đổi cài đặt bảo mật và đã thử nghiệm trong Cửa sổ ẩn danh trước khi đăng xuất khỏi cửa sổ chính. Bài kiểm tra không cho phép tôi đăng nhập, nhưng các phiên của tôi vẫn tồn tại trong cửa sổ chính để tôi có thể sửa chữa thiệt hại.
Nick

1
Tôi tin rằng một phần của cài đặt bảo mật mà tôi đã thay đổi cũng có nghĩa là phiên xác thực của tôi không còn được phép thay đổi cấu hình bảo mật của Jenkins.
Nick

Chạy vào vấn đề này sau khi kích hoạt ProjectMatrixAuthorization. Khi tôi thực hiện thay đổi và khởi động lại Jenkins, tôi thấy một ngoại lệ Java trong Jenkins-UI. Để khắc phục điều này, tôi cũng gỡ bỏ dòng này authorizationStrategyvà nó đã ổn trở lại. Jenkins đã đánh dấu nó vào lần bắt đầu tiếp theo dưới dạng một thẻ trống.
Peter Schneider

12

Chúng tôi có thể thiết lập lại mật khẩu trong khi vẫn bảo mật.

Tệp config.xml trong / var / lib / Jenkins / users / admin / hành động giống như tệp / etc / bóng của các hệ thống giống như Linux hoặc UNIX hoặc tệp SAM trong Windows, theo nghĩa là nó lưu trữ hàm băm của mật khẩu của tài khoản.

Nếu bạn cần đặt lại mật khẩu mà không cần đăng nhập, bạn có thể chỉnh sửa tệp này và thay thế hàm băm cũ bằng mật khẩu mới được tạo từ bcrypt:

$ pip install bcrypt
$ python
>>> import bcrypt
>>> bcrypt.hashpw("yourpassword", bcrypt.gensalt(rounds=10, prefix=b"2a"))
'YOUR_HASH'

Điều này sẽ xuất ra hàm băm của bạn, với tiền tố 2a, tiền tố chính xác cho băm Jenkins.

Bây giờ, hãy chỉnh sửa tệp config.xml:

...
<passwordHash>#jbcrypt:REPLACE_THIS</passwordHash>
...

Khi bạn chèn hàm băm mới, hãy đặt lại Jenkins:

(nếu bạn đang ở trên một hệ thống có systemd):

sudo systemctl restart Jenkins

Bây giờ bạn có thể đăng nhập và bạn không để hệ thống của mình mở trong một giây.


5
\.jenkins\secrets\initialAdminPassword

Sao chép mật khẩu từ tệp initAdminPassword và dán nó vào Jenkins.


4

Để xóa bảo mật theo mặc định cho jenkins trong Windows OS,

Bạn có thể duyệt qua tập tin Config.xml được tạo bên trong /users/ đũaUserName Bolog /.jenkins.

Trong tập tin này, bạn có thể thay đổi mã từ

<useSecurity>true</useSecurity>

Đến,

<useSecurity>false</useSecurity>

4

Trước tiên hãy kiểm tra vị trí nếu bạn cài đặt war hoặc Linux hoặc windows dựa trên đó

ví dụ: nếu chiến tranh trong Linux và cho người dùng quản trị

/home/"User_NAME"/.jenkins/users/admin/config.xml

đi tới thẻ này sau #jbcrypt:

<passwordHash>#jbcrypt:$2a$10$3DzCGLQr2oYXtcot4o0rB.wYi5kth6e45tcPpRFsuYqzLZfn1pcWK</passwordHash>

thay đổi mật khẩu này bằng cách sử dụng bất kỳ trang web nào cho trình tạo hàm bcrypt

https://www.dailycred.com/article/bcrypt-calculator

hãy chắc chắn rằng nó bắt đầu với $ 2a vì điều này jenkens sử dụng


4

bước 1: đi tới thư mục cd .jenkins / secret sau đó bạn sẽ nhận được một 'initAdminPassword'.

bước 2: nano initAdminPassword

bạn sẽ nhận được một mật khẩu


2

thay đổi <useSecurity>true</useSecurity>thành <useSecurity>false</useSecurity>sẽ không đủ, bạn cũng nên loại bỏ <authorizationStrategy><securityRealm>các yếu tố và khởi động lại máy chủ jenkins của bạn bằng cách thực hiện sudo service jenkins restart.

hãy nhớ điều này, được đặt <usesecurity>thành falsechỉ có thể gây ra sự cố cho bạn, vì các hướng dẫn này được đề cập trong tài liệu chính thức của họ ở đây .


1

Cách dễ dàng để làm điều này là sử dụng psw quản trị để đăng nhập với người dùng quản trị của bạn:

  • Thay đổi thành người dùng root: sudo su -
  • Sao chép mật khẩu: xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
  • Đăng nhập với quản trị viên và nhấn ctrl + vvào hộp nhập mật khẩu.

Cài đặt xclip nếu bạn không có nó:

  • $ sudo apt-get install xclip

Sử dụng mật khẩu mặc định làm việc cho tôi. Để đơn giản, bạn chỉ có thể thực hiện 'bí mật mèo / initAdminPassword' thay vì cài đặt xclip một lần.
Paul

Đôi khi mật khẩu này không có. Tôi không chắc làm thế nào bạn có thể bỏ qua cấu hình này nhưng đối với tôi, nó không có mặt và tôi đã phải chỉnh sửa config.xml
vinicius.hisao

1

Jenkins trên KUBENETES và Docker

Trong trường hợp của Jenkins trên một container bởi một quản lý Kubernetes POD là phức tạp hơn một chút kể từ khi: kubectl exec PODID --namespace=jenkins -it -- /bin/bashbạn sẽ cho phép truy cập trực tiếp vào container chạy Jenkins, nhưng bạn sẽ không có quyền truy cập root , sudo, vivà nhiều lệnh không có sẵn và do đó một workaround là cần thiết.

Sử dụng kubectl describe pod [...]để tìm nút chạy Pod của bạn và ID container(docker://...)

  • SSH vào nút
  • chạy docker exec -ti -u root -- /bin/bashđể truy cập vào container với quyền Root
  • apt-get update
  • sudo apt-get install vim

Sự khác biệt thứ hai là tệp cấu hình Jenkins được đặt trong một đường dẫn khác tương ứng với điểm lắp của âm lượng liên tục, nghĩa là /var/jenkins_homevị trí này có thể thay đổi trong tương lai, kiểm tra xem nó có chạy không df.

Sau đó vô hiệu hóa bảo mật - thay đổi true thành false trong /var/jenkins_home/jenkins/config.xmltệp.

<useSecurity>false</useSecurity>

Bây giờ đã đủ để khởi động lại Jenkins, hành động sẽ khiến container và Pod chết, nó sẽ được tạo lại sau vài giây với cấu hình được cập nhật (và tất cả các cơ hội như vi, cập nhật bị xóa) nhờ vào khối lượng liên tục.

Toàn bộ giải pháp đã được thử nghiệm trên Google Kubernetes Engine. CẬP NHẬT Lưu ý rằng bạn cũng có thể chạy ps -auxmật khẩu trong văn bản thuần túy được hiển thị ngay cả khi không có quyền truy cập root.

jenkins@jenkins-87c47bbb8-g87nw:/$ps -aux
[...]
jenkins [..] -jar /usr/share/jenkins/jenkins.war --argumentsRealm.passwd.jenkins=password --argumentsRealm.roles.jenkins=admin
[...]

1

Rất nhiều lần bạn sẽ không có quyền chỉnh sửa tệp config.xml.

Điều đơn giản nhất là quay lại config.xmlvà xóa bằng lệnh sudo.

Khởi động lại jenkins bằng lệnh sudo /etc/init.d/jenkins restart

Điều này sẽ vô hiệu hóa tất cả bảo mật trong Jenkins và tùy chọn đăng nhập sẽ biến mất


Nếu bạn có thể xóa config.xml bằng sudo, bạn cũng có thể chỉnh sửa nó bằng sudo. ví dụ: sudo vi ...
Lee Meador

1

Sử dụng bcrypt bạn có thể giải quyết vấn đề này. Mở rộng câu trả lời @Reem cho ai đó đang cố gắng tự động hóa quy trình bằng bash và python.

#!/bin/bash

pip install bcrypt
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install xmlstarlet

cat > /tmp/jenkinsHash.py <<EOF
import bcrypt
import sys

if not sys.argv[1]:
  sys.exit(10)

plaintext_pwd=sys.argv[1]
encrypted_pwd=bcrypt.hashpw(sys.argv[1], bcrypt.gensalt(rounds=10, prefix=b"2a"))
isCorrect=bcrypt.checkpw(plaintext_pwd, encrypted_pwd)

if not isCorrect:
   sys.exit(20);

print "{}".format(encrypted_pwd)
EOF

chmod +x /tmp/jenkinsHash.py
cd /var/lib/jenkins/users/admin*
pwd
while (( 1 )); do
    echo "Waiting for Jenkins to generate admin user's config file ..."

    if [[ -f "./config.xml" ]]; then
        break
    fi

    sleep 10
done

echo "Admin config file created"

admin_password=$(python /tmp/jenkinsHash.py password 2>&1)

# Repalcing the new passowrd
xmlstarlet -q ed --inplace -u "/user/properties/hudson.security.HudsonPrivateSecurityRealm_-Details/passwordHash" -v '#jbcrypt:'"$admin_password" config.xml

# Restart
systemctl restart jenkins
sleep 10

Tôi đã giữ mật khẩu được mã hóa cứng ở đây nhưng nó có thể là đầu vào của người dùng tùy theo yêu cầu. Ngoài ra, hãy đảm bảo thêm rằng sleepnếu không bất kỳ lệnh nào khác xoay quanh Jenkins sẽ thất bại.


1

Để đơn giản vô hiệu hóa cả bảo mật và trình hướng dẫn khởi động, hãy sử dụng thuộc tính JAVA:

-Djenkins.install.runSetupWizard=false

Điều thú vị ở đây là bạn có thể sử dụng nó trong hình ảnh Docker sao cho container của bạn sẽ luôn khởi động ngay lập tức mà không cần màn hình đăng nhập:

# Dockerfile
FROM jenkins/jenkins:lts
ENV JAVA_OPTS -Djenkins.install.runSetupWizard=false

Lưu ý rằng, như được đề cập bởi những người khác, tệp cấu /var/jenkins_homehình Jenkins có trong hình ảnh, nhưng việc sử dụng sedđể sửa đổi nó từ Dockerfile không thành công, vì (có lẽ) cấu hình không tồn tại cho đến khi máy chủ khởi động.


0

Tôi đã có một vấn đề tương tự, và sau khi trả lời từ ArtB,

Tôi thấy rằng người dùng của tôi không có cấu hình phù hợp. vì vậy những gì tôi đã làm:

Lưu ý: sửa đổi thủ công các tệp XML như vậy là rủi ro. Làm điều đó có nguy cơ của riêng bạn. Vì tôi đã bị khóa, tôi không có gì để mất. AFAIK Trường hợp xấu nhất tôi đã xóa tệp ~ / .jenkins / config.xml như bài đăng đã đề cập.

**> 1. ssh vào máy jenkins

  1. cd ~ / .jenkins (Tôi đoán rằng một số cài đặt đặt nó dưới /var/lib/jenkins/config.xml, nhưng không phải trong trường hợp của tôi)
  2. vi config.xml và dưới thẻ xml ủy quyền, thêm phần bên dưới (chỉ sử dụng tên người dùng của tôi thay vì "put-your-username")
  3. khởi động lại jenkins. trong trường hợp của tôi là dịch vụ root tomcat7 dừng; ; dịch vụ tomcat7 bắt đầu
  4. Hãy thử đăng nhập lại. (đã làm cho tôi)**

Dưới

thêm vào:

<permission>hudson.model.Computer.Build:put-your-username</permission>
<permission>hudson.model.Computer.Configure:put-your-username</permission>
<permission>hudson.model.Computer.Connect:put-your-username</permission>
<permission>hudson.model.Computer.Create:put-your-username</permission>
<permission>hudson.model.Computer.Delete:put-your-username</permission>
<permission>hudson.model.Computer.Disconnect:put-your-username</permission>
<permission>hudson.model.Hudson.Administer:put-your-username</permission>
<permission>hudson.model.Hudson.ConfigureUpdateCenter:put-your-username</permission>
<permission>hudson.model.Hudson.Read:put-your-username</permission>
<permission>hudson.model.Hudson.RunScripts:put-your-username</permission>
<permission>hudson.model.Hudson.UploadPlugins:put-your-username</permission>
<permission>hudson.model.Item.Build:put-your-username</permission>
<permission>hudson.model.Item.Cancel:put-your-username</permission>
<permission>hudson.model.Item.Configure:put-your-username</permission>
<permission>hudson.model.Item.Create:put-your-username</permission>
<permission>hudson.model.Item.Delete:put-your-username</permission>
<permission>hudson.model.Item.Discover:put-your-username</permission>
<permission>hudson.model.Item.Read:put-your-username</permission>
<permission>hudson.model.Item.Workspace:put-your-username</permission>
<permission>hudson.model.Run.Delete:put-your-username</permission>
<permission>hudson.model.Run.Update:put-your-username</permission>
<permission>hudson.model.View.Configure:put-your-username</permission>
<permission>hudson.model.View.Create:put-your-username</permission>
<permission>hudson.model.View.Delete:put-your-username</permission>
<permission>hudson.model.View.Read:put-your-username</permission>
<permission>hudson.scm.SCM.Tag:put-your-username</permission>

Bây giờ, bạn có thể đi đến các hướng khác nhau. Ví dụ: tôi đã tích hợp github oauth, vì vậy tôi có thể đã cố gắng thay thế ủy quyềnStrargety bằng một cái gì đó như dưới đây:

Lưu ý:, Nó hoạt động trong trường hợp của tôi vì tôi có một plugin github oauth cụ thể đã được cấu hình. Vì vậy, nó là rủi ro hơn so với giải pháp trước đây.

  <authorizationStrategy class="org.jenkinsci.plugins.GithubAuthorizationStrategy" plugin="github-oauth@0.14">
    <rootACL>
      <organizationNameList class="linked-list">
        <string></string>
      </organizationNameList>
      <adminUserNameList class="linked-list">
        <string>put-your-username</string>
        <string>username2</string>
        <string>username3</string>
        <string>username_4_etc_put_username_that_will_become_administrator</string>
      </adminUserNameList>
      <authenticatedUserReadPermission>true</authenticatedUserReadPermission>
      <allowGithubWebHookPermission>false</allowGithubWebHookPermission>
      <allowCcTrayPermission>false</allowCcTrayPermission>
      <allowAnonymousReadPermission>false</allowAnonymousReadPermission>
    </rootACL>
  </authorizationStrategy>

0

Chỉnh sửa tệp $ JENKINS_HOME / config.xml và thay đổi cấu hình bảo mật bằng cách này:

<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>

Sau đó, khởi động lại Jenkins.


0

Đối với một người đang sử dụng macOS, phiên bản mới có thể được cài đặt bằng homebrew. Vì vậy, để nghỉ ngơi, dòng lệnh này phải được sử dụng:

brew services restart jenkins-lts
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.