是否有一种方法来重置所有(或只是禁用安全设置)从命令行没有用户/密码,因为我已经设法完全锁定自己的詹金斯?


当前回答

我发现有问题的文件位于/var/lib/jenkins中,名为config.xml,修改后解决了这个问题。

其他回答

詹金斯对库贝努特斯和多克

kubectl exec PODID——namespace= Jenkins -it——/bin/bash将允许您直接访问运行Jenkins的容器,但您将没有根访问权限,sudo, vi和许多命令不可用,因此需要一个解决方案。

用kubectl描述pod[…]找到运行Pod的节点和容器ID (docker://…)

SSH进入节点 使用docker exec -ti -u root——/bin/bash以root权限访问容器 apt-get更新 Sudo apt-get安装vim

第二个区别是Jenkins配置文件被放置在与持久卷挂载点对应的不同路径中,即/var/jenkins_home,这个位置可能在将来会改变,运行df检查它。

然后禁用安全性-在/var/jenkins_home/jenkins/config.xml文件中将true改为false。

<useSecurity>false</useSecurity>

现在重新启动Jenkins就足够了,这个操作将导致容器和Pod死亡,它将在几秒钟内重新创建,并更新配置(并且由于持久卷,所有的机会都像vi,更新被擦除)。

整个解决方案已经在谷歌Kubernetes Engine上进行了测试。 更新 请注意,您也可以运行ps -aux,即使没有root访问权限,密码也会以纯文本显示。

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

要在Linux中简单地禁用Jenkins安全性,运行以下命令:

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

它将从config.xml根配置文件中删除usesecsecurity和authorizationStrategy行,并重新启动Jenkins。

请参见:禁用Jenkins网站的安全性


在获得Jenkins的访问权限后,您可以在配置全局安全性页面中通过选择访问控制/安全领域重新启用安全性。之后不要忘记创建admin用户。

我也遇到了类似的问题,在收到ArtB的回复后,

我发现我的用户没有正确的配置。所以我做的是:

注意:手动修改此类XML文件存在风险。做这件事的风险自负。既然我已经被锁在门外了,我也没什么可失去的了。最坏的情况下,我会删除~/.jenkins/config.xml文件,就像前面的帖子提到的那样。

* * > 1。SSH到Jenkins机器

cd ~ /。jenkins(我猜有些安装把它放在/var/lib/jenkins/config.xml下,但在我的情况下没有) vi config.xml,在authorizationStrategy xml标签下,添加以下部分(只是使用我的用户名而不是“put your-username”) 重启詹金斯。在我的情况下,根服务tomcat7停止;; 服务tomcat7启动 请重新登录。(为我工作)**

add:

<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>

现在,你可以去不同的方向。例如,我有github oauth集成,所以我可以尝试替换授权策略如下:

注意:,它在我的情况下工作,因为我有一个特定的github oauth插件,已经配置。所以它比之前的解决方案风险更大。

  <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>

对于使用macOS的用户来说,新版本只能通过自制软件安装。所以为了休息,这个命令行必须使用:

brew services restart jenkins-lts

简单的方法是使用admin psw登录您的admin用户:

修改为root用户:sudo su - 复制密码:xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword 以admin登录,在密码输入框上按ctrl + v。

安装xclip如果你没有它:

安装xclip