添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 禁止用户创建项目组,更改属性 gitlab_rails['gitlab_default_can_create_group'] = false
  • 禁止创建个人项目,更改属性 projects limit
  • 修改服务器配置文件之后,创建新的用户,默认就不会带有创建项目组权限了。但是这里有个问题, 之前创建好的用户,不会因为修改了服务端的配置而更改权限,需要人为手动去改。

    禁止创建个人项目

    登录管理员账号 --> 左栏目Settings --> General --> Account and limit --> 点击 expand

    Default projects limit 设置为 0

    禁止用户创建项目组

    当然通过管理用户在后台新建用户或修该用户的时候去掉创建组的复选框。但针对开发注册或与ldap集成的用户怎么配置成默认就不能创建呢?

    解决办法:

    # 在/etc/gitlab/gitlab.rb中
    gitlab_rails['gitlab_default_can_create_group'] = false
    gitlab-ctl reconfigure
    # 查看gitlab的版本信息
    head -1 /opt/gitlab/version-manifest.txt

    批量更改已存在的账户权限

    使用脚本批量更改,排除一些不用修改的用户,比如管理员,或者自己,机器人,僵尸账号等。

    GitLab配置personal access token

    登录gitlab,点击右上角个人账号 -> Settings

    点击左边栏 Access Tokens

    输入token名称,勾选权限,点击绿色按钮添加(注意截至日期 "Expires at" 可不填)

    创建成功后,显示token信息,复制到本地(注意:关闭此页面后Token码将再也看不见,务必复制)

    #!/bin/python3
    __autor__ = "wutf"
    __date__ = "2022-06-17"
    import gitlab
    import logging
    import sys
    pip install python-gitlab
    批量修改gitlab之前创建好的用户权限:
    禁止用户创建项目组
    禁止创建个人项目
    url = 'https://gitlab.test.com/'  # gitlab安装地址
    private_token = 'a_QypV123456NRat'  # gitlab 登录密钥 需自己设置
    ssl_verify = 'E:\important\Gitlab\gitlab.test.com.crt'
    def gitlab_user(urlpath, token, ssl_crt):
        # 定义日志格式
        logging.basicConfig(
            level=logging.INFO,
            format="%(asctime)s [%(levelname)s] %(message)s",
            handlers=[
                logging.FileHandler("debug.log"),
                logging.StreamHandler(sys.stdout)
        logging.debug('This message is skipped as a level is set as INFO')
        logging.info('So should this')
        logging.warning('And this, too')
        logging.error('Testing non-ASCII character, Ø and ö')
        # 登录 获取gitlab操作对象gl
        gl = gitlab.Gitlab(url=urlpath, private_token=token, ssl_verify=ssl_crt)
        # 获取所有的用户列表
        users = gl.users.list(all=True)
        for user in users:
            if user.id != 1 and user.id != 4 and user.id != 79:
                # 修改用户属性权限
                logging.info("正在处理当前用户: {user}".format(user=user.username))
                user.can_create_group = False
                user.projects_limit = 0
                user.save()
                logging.info(
                    "用户名:{user} ,名字: {name}, ID: {id}, projects limit: {pro_limit},允许创建组: {cre_group}".format(
                        user=user.username, name=user.name, id=user.id,
                        pro_limit=user.projects_limit,
                        cre_group=user.can_create_group))
    if __name__ == '__main__':
        start_change = gitlab_user(url, private_token, ssl_verify)
        print(start_change)
    pthon3 gitlab_change_user.py

    代码执行信息

    2022-06-17 13:29:29,004 [INFO] 正在处理当前用户: guojiawen 2022-06-17 13:29:29,056 [INFO] 用户名:guojiawen ,名字: guojiawen, ID: 61, projects limit: 0,允许创建组: False

    验证处理结果

    一些不用修改的用户,比如管理员,我们可以在其账号下看到如下信息

    一些修改的用户,比如test,我们可以在其账号下看到如下信息