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


当前回答

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

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

安装xclip如果你没有它:

安装xclip

其他回答

在El-Capitan中,config.xml不能在

/var/lib/jenkins/

它可在

~ / .jenkins

然后,如前所述,打开config.xml文件并进行以下更改

将< usesecsecurity >true</ usesecsecurity >替换为< usesecsecurity >false</ usesecsecurity > 删除<authorizationStrategy>和<securityRealm> 保存它并重新启动jenkins(sudo service jenkins restart)

如果你使用矩阵权限(可能很容易适应其他登录方法),在不禁用安全性的情况下重置它:

在config.xml中,将disableSignup设置为false。 重启詹金斯。 去詹金斯的网页,注册一个新用户。 在config.xml中,复制<permission>hudson.model.Hudson. xml中的一个。管理:username</permission>行,用新用户替换username。 如果它是私有服务器,在config.xml中将disableSignup设置为true。 重启詹金斯。 进入Jenkins网页,以新用户身份登录。 重置原用户密码。 以原用户登录。

可选的清理:

删除新用户。 删除config.xml中临时的<permission>行。

在此回答过程中,没有任何证券受到损害。

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

brew services restart jenkins-lts

users/<username>/config.xml中的<passwordHash>元素将接受该格式的数据

salt:sha256("password{salt}")

所以,如果你的salt是bar,你的密码是foo,那么你可以像这样生成SHA256:

echo -n 'foo{bar}' | sha256sum

结果应该是7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349。将哈希值和盐一起放入<passwordHash>:

<passwordHash>bar:7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349</passwordHash>

重新启动Jenkins,然后尝试使用密码foo登录。然后将密码重置为其他密码。(Jenkins默认使用bcrypt,一轮SHA256并不是存储密码的安全方式。当你重置密码时,你会得到一个bcrypt哈希存储。)

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

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