• Gerrit 2.16管理员帐号丢失的一次处理


    接手别人的几个项目,项目管理在gerrit上,由于中途经过多次转手,管理员帐号已经丢失。

    服务器在手,但大家都只能得到普通用户权限。

    因此目标是拿到Administrators群组的权限,即,将一个帐号加入此群组。

    基本信息:

    Gerrit版本:2.16.7

    Gerrit认证方式:LDAP

    Gerrit数据库存储方式:H2

    Gerrit安装在:/data/gerrit/gerrit_app

    Gerrit仓库位于:/data/gerrit/gerrit_app/git/repositories

    前期走了很多弯路,因为网络上的资料大多是2.4版本,都是指导让登陆gsql,在数据库中去操作。

    停掉Gerrit服务后,手工登陆进gsql,完全找不到要操作的诸如accounts、account_group_by_id等表。来回折腾很久还是搞不定。

    最近随着Gerrit了解的深入,看到Gerrit的版本日志提到,2.15版本将account表已经转为NoteDB,2.16版本将group表转为NoteDB。

    这才恍然大悟,转向搜索gerrit notedb的资料搜索。

    找到如下网页信息参考:

    https://blog.nanpuyue.com/2018/044.html

    虽然上文,操作的是迁移登陆插件,但其基本原因是大致相同的。

    最终一顿操作猛如虎,终究搞定这个难题。

    原理大致是,NoteDB实际在后台会是一个Git仓库,直接从Git仓库中Clone出数据来,然后修改相应Groups下的信息,提交上去,就OK了。

    在Gerrit文档中/Documentation/config-groups.html有groups的一些操作说明。

    如下命令均是在Gerrit服务器上直接执行的。

    第0步,停止gerrit服务

    /data/gerrit/gerrit_app/bin/gerrit.sh stop

    第一步,克隆出All-Users仓库

    git clone /data/gerrit/gerrit_app/git/repositories/All-Users.git

    这儿的克隆命令实际为从裸仓库克隆出一个工作仓库出来。

    第二步,从All-Users/groups中得到Administrators群组的UUID

     第三步,修改当前工作仓库的指向

    cd All-Users
    git fetch origin refs/groups/f4/f417bd0437a0e6f7e08885d07626b0698b4ecec2:refs/groups/f4/f417bd0437a0e6f7e08885d07626b0698b4ecec2

    如果当前工作仓库是由root用户创建,则git命令前,应添加sudo

    第四步,取出当前指向的内容。

    git checkout refs/groups/f4/f417bd0437a0e6f7e08885d07626b0698b4ecec2

    此时,All-Users取得就是gerrit文档中所说的groups的信息(即Administrators群组下的信息)

     可以看到,没有subgroups,而members信息即为我们要修改的文件。

    vim打开后,将一个新用户的id插入在末尾(此ID通常是10000打头)。

    修改好后,保存,准备提交。

    第五步,add并commit

    git add .
    git commit -m"xxxx"

    第六步,更新引用

    git update-ref refs/groups/f4/f417bd0437a0e6f7e08885d07626b0698b4ecec2 $(git rev-parse HEAD)

    第七步,推上修改至仓库

    git push origin refs/groups/f4/f417bd0437a0e6f7e08885d07626b0698b4ecec2

    至此,重新启动Gerrit服务,新用户就添加进了Administrators群组了。

    PS,用户ID的信息取得。

    首先用户应是Gerrit中已注册的一个用户,在用户的Groups页面,任一群组里打开相应的Audit Log,即可看到相应用户的Id

    比如:

  • 相关阅读:
    武汉科技大学ACM :1004: 零起点学算法74——Palindromes _easy version
    武汉科技大学ACM :1003: 零起点学算法14——三位数反转
    武汉科技大学ACM :1002: 零起点学算法38——求阶乘和
    武汉科技大学ACM :1001: 零起点学算法34——继续求多项式
    cos实现文件上传--推荐
    文件夹分级保存文件
    apache_fileupload实现文件上传_上传多个文件
    UEFI模式下安装Win 7系统
    武汉科技大学ACM :1008: A+B for Input-Output Practice (VIII)
    武汉科技大学ACM :1007: A+B for Input-Output Practice (VII)
  • 原文地址:https://www.cnblogs.com/eaglexmw/p/15421218.html
Copyright © 2020-2023  润新知