是否有一种方法来重置所有(或只是禁用安全设置)从命令行没有用户/密码,因为我已经设法完全锁定自己的詹金斯?
当前回答
使用bcrypt可以解决这个问题。为试图使用bash和python自动化该过程的人扩展@Reem答案。
#!/bin/bash
pip install bcrypt
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install xmlstarlet
cat > /tmp/jenkinsHash.py <<EOF
import bcrypt
import sys
if not sys.argv[1]:
sys.exit(10)
plaintext_pwd=sys.argv[1]
encrypted_pwd=bcrypt.hashpw(sys.argv[1], bcrypt.gensalt(rounds=10, prefix=b"2a"))
isCorrect=bcrypt.checkpw(plaintext_pwd, encrypted_pwd)
if not isCorrect:
sys.exit(20);
print "{}".format(encrypted_pwd)
EOF
chmod +x /tmp/jenkinsHash.py
cd /var/lib/jenkins/users/admin*
pwd
while (( 1 )); do
echo "Waiting for Jenkins to generate admin user's config file ..."
if [[ -f "./config.xml" ]]; then
break
fi
sleep 10
done
echo "Admin config file created"
admin_password=$(python /tmp/jenkinsHash.py password 2>&1)
# Repalcing the new passowrd
xmlstarlet -q ed --inplace -u "/user/properties/hudson.security.HudsonPrivateSecurityRealm_-Details/passwordHash" -v '#jbcrypt:'"$admin_password" config.xml
# Restart
systemctl restart jenkins
sleep 10
我把密码硬编码在这里,但它可以是一个用户输入取决于要求。还要确保添加sleep,否则围绕Jenkins的任何其他命令都将失败。
其他回答
很多时候你没有权限编辑config.xml文件。
最简单的方法是返回config.xml,然后使用sudo命令删除。
使用命令sudo /etc/init.重启jenkinsd / jenkins重启
这将禁用Jenkins中的所有安全性,登录选项将消失
为了删除Windows操作系统中jenkins的默认安全性,
您可以遍历在/users/{UserName}/.jenkins中创建的Config.xml文件。
在这个文件中,您可以更改代码
<useSecurity>true</useSecurity>
To,
<useSecurity>false</useSecurity>
如果你使用矩阵权限(可能很容易适应其他登录方法),在不禁用安全性的情况下重置它:
在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
1首先检查位置,如果你安装战争或Linux或windows基于它
例如,如果战争在Linux和admin用户
/ home / User_NAME”。詹金斯/ \用户/行政/ xml配置。
转到#jbcrypt后面的标签:
<passwordHash>#jbcrypt:$2a$10$3DzCGLQr2oYXtcot4o0rB.wYi5kth6e45tcPpRFsuYqzLZfn1pcWK</passwordHash>
使用使用任何网站的bcrypt哈希生成器更改此密码
https://www.dailycred.com/article/bcrypt-calculator
确保以$2a开头,因为这是jenkens用的
推荐文章
- 如何从终端/命令行调用VS代码编辑器
- 在Bash中检查变量是否存在于列表中
- 在Jar文件中运行类
- 查看PS命令的全部输出
- 如何在Windows命令提示符下运行.sh ?
- Linux命令将域名转换为IP
- 如何从命令行通过mysql运行一个查询?
- JavaScript:客户端验证与服务器端验证
- ASP。NET身份的默认密码散列器-它是如何工作的,它是安全的?
- 如何从命令行在windows中找到mysql数据目录
- 如何从命令行安装cygwin组件?
- 如何更改Git日志日期格式
- 如何使用GitHub Org Plugin从jenkins管道(jenkinsfile)触发另一个作业?
- 有效地测试Linux上的端口是否打开?
- 主体、使用者和主体之间的意义和区别是什么?