526.md 5.8 KB
Newer Older
Lab机器人's avatar
readme  
Lab机器人 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
# User management

> 原文:[https://docs.gitlab.com/ee/raketasks/user_management.html](https://docs.gitlab.com/ee/raketasks/user_management.html)

*   [Add user as a developer to all projects](#add-user-as-a-developer-to-all-projects)
*   [Add all users to all projects](#add-all-users-to-all-projects)
*   [Add user as a developer to all groups](#add-user-as-a-developer-to-all-groups)
*   [Add all users to all groups](#add-all-users-to-all-groups)
*   [Control the number of active users](#control-the-number-of-active-users)
*   [Disable two-factor authentication for all users](#disable-two-factor-authentication-for-all-users)
*   [Rotate two-factor authentication encryption key](#rotate-two-factor-authentication-encryption-key)

# User management[](#user-management-core-only "Permalink")

GitLab 提供 Rake 任务用于用户管理.

## Add user as a developer to all projects[](#add-user-as-a-developer-to-all-projects "Permalink")

要将用户作为开发人员添加到所有项目中,请运行:

```
# omnibus-gitlab
sudo gitlab-rake gitlab:import:user_to_projects[username@domain.tld]

# installation from source
bundle exec rake gitlab:import:user_to_projects[username@domain.tld] RAILS_ENV=production 
```

## Add all users to all projects[](#add-all-users-to-all-projects "Permalink")

要将所有用户添加到所有项目,请运行:

```
# omnibus-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_projects

# installation from source
bundle exec rake gitlab:import:all_users_to_all_projects RAILS_ENV=production 
```

**注意:**管理员用户被添加为维护者.

## Add user as a developer to all groups[](#add-user-as-a-developer-to-all-groups "Permalink")

要将用户作为开发人员添加到所有组,请运行:

```
# omnibus-gitlab
sudo gitlab-rake gitlab:import:user_to_groups[username@domain.tld]

# installation from source
bundle exec rake gitlab:import:user_to_groups[username@domain.tld] RAILS_ENV=production 
```

## Add all users to all groups[](#add-all-users-to-all-groups "Permalink")

要将所有用户添加到所有组,请运行:

```
# omnibus-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_groups

# installation from source
bundle exec rake gitlab:import:all_users_to_all_groups RAILS_ENV=production 
```

**注意:**管理员用户被添加为所有者,因此他们可以将其他用户添加到组中.

## Control the number of active users[](#control-the-number-of-active-users "Permalink")

启用此设置可以阻止新用户被阻止,直到管理员将其清除为止. 默认为`false`

```
block_auto_created_users: false 
```

## Disable two-factor authentication for all users[](#disable-two-factor-authentication-for-all-users "Permalink")

此任务为所有启用了双重身份验证的用户禁用两因素身份验证(2FA). 例如,如果 GitLab 的`config/secrets.yml`文件丢失并且用户无法登录,这将很有用.

要为所有用户禁用双重身份验证,请运行:

```
# omnibus-gitlab
sudo gitlab-rake gitlab:two_factor:disable_for_all_users

# installation from source
bundle exec rake gitlab:two_factor:disable_for_all_users RAILS_ENV=production 
```

## Rotate two-factor authentication encryption key[](#rotate-two-factor-authentication-encryption-key "Permalink")

GitLab 将两因素身份验证(2FA)所需的机密数据存储在加密的数据库列中. 此数据的加密密钥称为`otp_key_base` ,存储在`config/secrets.yml` .

如果该文件泄漏了,但单个 2FA 机密没有泄漏,则可以使用新的加密密钥重新加密这些机密. 这使您可以更改泄漏的密钥,而不必强制所有用户更改其 2FA 详细信息.

旋转两因素身份验证加密密钥:

1.  查找旧密钥. 该文件位于`config/secrets.yml`文件中,但请**确保您正在使用 Production 部分** . 您感兴趣的行将如下所示:

    ```
    production:
      otp_key_base: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 
    ```

2.  生成一个新的秘密:

    ```
    # omnibus-gitlab
    sudo gitlab-rake secret

    # installation from source
    bundle exec rake secret RAILS_ENV=production 
    ```

3.  停止 GitLab 服务器,备份现有的机密文件,然后更新数据库:

    ```
    # omnibus-gitlab
    sudo gitlab-ctl stop
    sudo cp config/secrets.yml config/secrets.yml.bak
    sudo gitlab-rake gitlab:two_factor:rotate_key:apply filename=backup.csv old_key=<old key> new_key=<new key>

    # installation from source
    sudo /etc/init.d/gitlab stop
    cp config/secrets.yml config/secrets.yml.bak
    bundle exec rake gitlab:two_factor:rotate_key:apply filename=backup.csv old_key=<old key> new_key=<new key> RAILS_ENV=production 
    ```

    可以从`config/secrets.yml`读取`<old key>`值( `<new key>`是先前生成的). 用户 2FA 机密的**加密**值将被写入指定的`filename` . 如果发生错误,可以使用它进行回滚.

4.  更改`config/secrets.yml` `otp_key_base`以将`otp_key_base`设置为`<new key>`并重新启动. 同样,请确保您在**生产**部分中进行操作.

    ```
    # omnibus-gitlab
    sudo gitlab-ctl start

    # installation from source
    sudo /etc/init.d/gitlab start 
    ```

如果有任何问题(也许为`old_key`使用了错误的值),则可以还原`config/secrets.yml` `old_key`的备份并回滚更改:

```
# omnibus-gitlab
sudo gitlab-ctl stop
sudo gitlab-rake gitlab:two_factor:rotate_key:rollback filename=backup.csv
sudo cp config/secrets.yml.bak config/secrets.yml
sudo gitlab-ctl start

# installation from source
sudo /etc/init.d/gitlab start
bundle exec rake gitlab:two_factor:rotate_key:rollback filename=backup.csv RAILS_ENV=production
cp config/secrets.yml.bak config/secrets.yml
sudo /etc/init.d/gitlab start 
```