zoukankan      html  css  js  c++  java
  • Docker Nexus3 重置 admin 密码

    背景:因为人员离职,nexus3 admin 密码丢失

    备份

    因为 nexus3 已经使用 docker 运行了很长时间, docker 启动所带的参数早已丢失(docker-compose 是一个好东西)。我们可以通过 runlike 这个命令找回当时启动这个容器的命令。
    通过 runlike 命令,找到本地持久化目录为 /nexus-data。备份 security 文件夹

    cp -rf /nexus-data/db/security /root/
    

    下载对应版本二进制包

    本来按照网上资料和官网文档,通过 docker exec -it 进入容器里面开启 OrientDB控制台,但是我这边失败,报 java.io.FileNotFoundException: .orientdb_history (No such file or directory)

    没找到原因,进而转其他方法,启了一台虚拟机,配置好 JDK,下载对应的二进制包, 我这边是 nexus-3.10.0-04-unix.tar.gz,把该软解压到 /usr/local/ 下并重命名文件夹为 nexus

    cd /usr/local/nexus/bin
    ./nexus run &
    
    # 这里会生成我们需要的 jar 包
    cd /usr/local/
    tar zcvf nexus_20210628.tgz nexus
    
    # 把 nexus_20210628.tgz 上传到 nexus 服务器上
    

    更新密码

    把 nexus_20210628.tgz 解压到 /usr/local/

    # 进入OrientDB控制台:
    java -jar /usr/local/nexus/lib/support/nexus-orient-console.jar 
    
    # 在控制台执行 (nexus-data 是本地持久化目录)
    connect plocal:/nexus-data/db/security admin admin
    
    # 重置密码为admin123:
    update user SET password="$shiro1$SHA-512$1024$NE+wqQq/TmjZMvfI7ENh/g==$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==" UPSERT WHERE id="admin"
    
    

    重启服务

    # 确认目录权限是否一致
    cd /nexus-data/db/security
    
    # 这里的目录文件拥有者为 200,所以要把 root 权限的文件更改了
    chown -R 200.200 /nexus-data/db/security
    
    # 重启
    docker restart nexus
    

    验证

    成功登陆后,不要忘了更改 admin 的密码

    参考

    https://support.sonatype.com/hc/en-us/articles/213467158-How-to-reset-a-forgotten-admin-password-in-Nexus-3-x
    https://support.sonatype.com/hc/en-us/articles/115002930827-Accessing-the-OrientDB-Console

  • 相关阅读:
    注解
    反射机制
    语法糖
    线程安全与锁优化
    java语法糖 之 泛型
    虚拟机字节码执行引擎
    虚拟机的类加载机制
    性能监控之可视化故障处理工具 Visualvm
    性能监控之可视化故障处理工具 JConsole
    Node of C++ Linker.
  • 原文地址:https://www.cnblogs.com/klvchen/p/14944851.html
Copyright © 2011-2022 走看看