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


当前回答

将< usesecsecurity >true</ usesecsecurity >更改为< usesecsecurity >false</ usesecsecurity >是不够的,你应该删除<authorizationStrategy>和<securityRealm>元素,并通过执行sudo service jenkins restart重启jenkins服务器。

请记住,仅将< usesecsecurity >设置为false可能会给您带来问题,因为这些说明在这里的官方文档中提到了。

其他回答

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

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

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

安装xclip如果你没有它:

安装xclip

windows下文件所在的目录config.xml

C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins

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

brew services restart jenkins-lts

我会在解决方案的基础上增加一些改进:

https://stackoverflow.com/a/51255443/5322871

在我的场景中,它部署了带有nfs卷的Swarm集群,为了执行密码重置,我做了以下工作:

附着在豆荚上:

$ docker exec -it <pod-name> bash

使用python生成哈希密码(不要忘记在你的引用密码之外指定字母b,方法hashpw需要一个以字节为单位的参数):

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

一旦进入容器,找到所有config.xml文件:

$ find /var/ -type f -iname "config.xml"

一旦确定,修改字段的值(在我的情况下,config.xml在另一个位置):

$ vim /var/jenkins_home/users/admin_9482805162890262115/config.xml
...
<passwordHash>#jbcrypt:YOUR_HASH</passwordHash>
...

重新启动服务:

docker service scale <service-name>=0
docker service scale <service-name>=1

希望这对任何人都有帮助。