Jenkins权限配置失误后导致登录失败(Access Denied)的解决办法
2016-06-16 09:17
399 查看
为了便于管理,Jenkins一般需要设置用户,而且这些用户是需要配置相应的权限的,如果一不小心配置的时候出了问题,那么,你就斯巴达了。这里,用我的切身经历,为大家说一下Jenkins因为权限配置失误而导致的登录失败如何解决。
问题出现原因:
情况是这样的:当时俺还不知道配置权限如果点击确定了,当前用户如果权限不够会直接被踢出来,于是,小伙伴就很开心的进行了这样的额操作:打开权限配置中的安全矩阵,没有给任何用户配置权限或设置了不正确的权限就点击了保存。如下图所示
于是,被系统踢出来了,再次登录的时候,系统很有好的提示我:Access Denied test用户没有overall/RunScripts权限。如图所示:
小伙伴当时就斯巴达了,经过我的不(shang)懈(wang)努(qiu)力(zhu),终于成功的再次登录了,现在将这些解决方案分享给大家。
解决办法1 (不建议此种方法)
有一个比较简单的方法:
• 删除用户相关的目录
• 修改$Jenkins_home/config.xml文件:false
• 删除authorizationStrategy、securityRealm节点
• 重新启动Jenkins
这种方法将删除Jenkins的权限管理,恢复成初始状态。不过可能会丢一些东西。
解决办法2 (本人使用此方法)
找到保存用户权限的config.xml文件,该文件一般在Jenkins的主目录下,打开后是这个样纸的:
是不是感觉有点乱,没关系的了,我们只需要从中找到你的一个用户,然后给它分配所有的权限,然后就可以了。
我们要找到其中的两句代码
然后,将它们之间的代码选中,替换为下面的代码:
<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文件中的代码将代码:
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>[code]将上面的8080修改为你需要的端口号,保存,重启,然后就可以了。
参考资料 http://www.aichengxu.com/view/2417623
相关文章推荐
- Material Design效果实践记录
- 在 OpenStack 云中测试 Fedora 24 Beta
- React Native微信分享 朋友圈分享 Android/iOS 通用
- 【代码笔记】iOS-推荐收听,左右两个tableView
- 【代码笔记】iOS-推荐收听,左右两个tableView
- 获取系统进程
- 职场新人的六大金玉良言
- Java中抓取 Thread Dumps 的方式汇总
- 如何调用webservice接口
- <LeetCode OJ> 241. Different Ways to Add Parentheses
- 第十四周项目二两个成员的类模板——2
- python 实现Hadoop的partitioner和二次排序
- 用创业思维复盘:写技术博客到出书
- 基于麦克风阵列的混响环境下声源定位和波束形成技术的研究
- iOS开发emoji处理方式大起底
- 用创业思维复盘:写技术博客到出书
- 用创业思维复盘:写技术博客到出书
- Linux Kernel: buffers和cached的区别
- 第十六周实践项目4————用二进制文件处理学生信息
- python大规模数据处理技巧之一:数据常用操作