問題出現原因
情況是這樣的:當時俺還不知道配置權限如果點擊確定了,當前用戶如果權限不夠會直接被踢出來,於是,小伙伴就很開心的進行了這樣的額操作:打開權限配置中的安全矩陣,沒有給任何用戶配置權限就點擊了保存。如下圖所示
於是,被系統踢出來了,再次登錄的時候,系統很有好的提示我:Access Denied test用戶沒有overall/RunScripts權限。如圖所示:
小伙伴當時就斯巴達了,經過我的不(shang)懈(wang)努(qiu)力(zhu),終於成功的再次登錄了,現在將這些解決方案分享給大家。
解決辦法1
有一個比較簡單的方法:
• 刪除用戶相關的目錄
• 修改$Jenkins_home/config.xml文件:false
• 刪除authorizationStrategy、securityRealm節點
• 重新啟動Jenkins
這種方法將刪除Jenkins的權限管理,恢復成初始狀態。不過可能會丟一些東西。
解決辦法2
找到保存用戶權限的config文件,該文件一般在Jenkins的主目錄下,如圖所示:
選中,右擊,用記事本打開。打開后是這個樣紙的:
是不是感覺有點亂,沒關系的了,我們只需要從中找到你的一個用戶,然后給它分配所有的權限,然后就可以了。
我們要找到其中的兩句代碼
<useSecurity>true</useSecurity>
和
</securityRealm>
然后,將它們之間的代碼選中,替換為下面的代碼:
<useSecurity>true</useSecurity> <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy"> <permission>hudson.model.Computer.Configure:admin</permission> <permission>hudson.model.Computer.Connect:admin</permission> <permission>hudson.model.Computer.Create:admin</permission> <permission>hudson.model.Computer.Delete:admin</permission> <permission>hudson.model.Computer.Disconnect:admin</permission> <permission>hudson.model.Hudson.Administer:admin</permission> <permission>hudson.model.Hudson.Read:admin</permission> <permission>hudson.model.Hudson.Read:anonymous</permission> <permission>hudson.model.Hudson.RunScripts:admin</permission> <permission>hudson.model.Item.Build:admin</permission> <permission>hudson.model.Item.Cancel:admin</permission> <permission>hudson.model.Item.Configure:admin</permission> <permission>hudson.model.Item.Create:admin</permission> <permission>hudson.model.Item.Delete:admin</permission> <permission>hudson.model.Item.Discover:admin</permission> <permission>hudson.model.Item.Read:admin</permission> <permission>hudson.model.Item.Workspace:admin</permission> <permission>hudson.model.Run.Delete:admin</permission> <permission>hudson.model.Run.Update:admin</permission> <permission>hudson.model.View.Configure:admin</permission> <permission>hudson.model.View.Create:admin</permission> <permission>hudson.model.View.Delete:admin</permission> <permission>hudson.model.View.Read:admin</permission> <permission>hudson.scm.SCM.Tag:admin</permission> </authorizationStrategy> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <disableSignup>false</disableSignup> <enableCaptcha>false</enableCaptcha> </securityRealm>
這時,admin這個用戶是擁有所有的權限的,將Jenkins重啟(如果不知道怎么重啟的可以直接保存后重啟電腦,比較簡單。)然后用admin這個賬號登錄就可以了。如果沒有admin用戶,可以將admin替換為Jenkins中有的賬戶名,其他不需要改變。
配置文件的其他作用
配置文件還有其他作用,比如我們在需要修改Jenkins登錄的端口號的時候,通過修改config文件中的代碼將代碼:
[code]<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
[code] 中的8080修改為你需要的端口號,保存,重啟,然后就可以了。