無法登錄的原因
- 忘記管理員admin賬號密碼;
- 管理員admin賬號登錄權限丟失/全局角色被刪除(一般都是操作不當引起的)
本人之前一不小心刪除了管理員admin賬號的全局角色權限,然後導致管理員admin賬號再登錄時無權限,當時的情況就是我也沒有建立其他登錄賬號,這樣就導致我的代碼發佈工作一時無法進行。如下:
解決方案(原理)
查了一些資料最後找到解決辦法,其實一開始jenkins安裝好之後是有 admin用戶+默認初始密碼可以登錄的,但是那個初始密碼是系統隨機生成的很長字符串,我們往往會將admin的密碼修改成我們容易記住的字符串。並且爲了安全起見,系統都會允許我們建立其他普通用戶並分配不同的權限讓我們可以登錄(條件是:必須進入系統管理-全局安全配置-勾選‘啓用安全’選項)。在jenkins中你建立的所有用戶的權限配置最終都是寫入到jenkins軟件中的config.xml文件中的,我們在瀏覽器頁面中沒有辦法登錄成功的時候,都可以直接去安裝jenkins服務端的config.xml修改配置(注意:1.修改配置文件前記得備份;2.修改完畢之後需要重啓jenkins服務)然後用戶再以空密碼登錄,只要能登錄成功,後面再重置密碼並重新設置權限就好啦。
解決方案(實操)
情況一、admin密碼從未更改
-
進入/var/lib/jenkins/secrets目錄,打開initialAdminPassword文件,複製密碼;
-
訪問Jenkins頁面,輸入管理員admin,以及剛纔複製的默認初始密碼;
-
登錄管理員admin賬號之後便可更改所有用戶密碼及權限。
情況二、admin密碼更改過並忘記的情況
- 找到jenkins安裝目錄下的config.xml文件並進行備份;
- 刪除config.xml文件中以下代碼,並保存文件。
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
- 重啓Jenkins服務;
- 進入jenkins首頁>“系統管理”>“Configure Global Security/全局安全配置”;
- 勾選“啓用安全”選項;
- 點選“Jenkins專有用戶數據庫”,並點擊“保存”;
- 重新進入jenkins首頁>“系統管理”,此時頁面會出現“管理用戶”選項;
- 點擊進入展示“用戶列表”;
- 點擊右側進入修改密碼頁面,修改後即可重新登錄。