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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM