사용자 관리 Rake 작업
Offering: GitLab.com, GitLab Self-Managed
GitLab은 사용자 관리를 위한 Rake 작업을 제공합니다. 사용자를 모든 프로젝트에 개발자로 추가하려면 다음을 실행하세요: 모든 사용자를 모든 프로젝트에 추가하려면 다음을 실행하세요: 관리자는 관리자 권한으로 추가되고, 다른 모든 사용자는 개발자 권한으로 추가됩니다.
GitLab은 사용자 관리를 위한 Rake 작업을 제공합니다. 관리자는 관리 영역을 통해 사용자를 관리할 수도 있습니다.
사용자를 모든 프로젝트에 개발자로 추가#
사용자를 모든 프로젝트에 개발자로 추가하려면 다음을 실행하세요:
# 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
모든 사용자를 모든 프로젝트에 추가#
모든 사용자를 모든 프로젝트에 추가하려면 다음을 실행하세요:
# 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
관리자는 관리자 권한으로 추가되고, 다른 모든 사용자는 개발자 권한으로 추가됩니다.
사용자를 모든 그룹에 개발자로 추가#
사용자를 모든 그룹에 개발자로 추가하려면 다음을 실행하세요:
# 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
모든 사용자를 모든 그룹에 추가#
모든 사용자를 모든 그룹에 추가하려면 다음을 실행하세요:
# 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
관리자는 소유자 권한으로 추가되어 그룹에 추가 사용자를 추가할 수 있습니다.
특정 그룹의 모든 사용자를 project_limit:0 및 can_create_group: false로 업데이트#
특정 그룹의 모든 사용자를 project_limit: 0 및 can_create_group: false로 업데이트하려면 다음을 실행하세요:
# omnibus-gitlab
sudo gitlab-rake gitlab:user_management:disable_project_and_group_creation\[:group_id\]
# installation from source
bundle exec rake gitlab:user_management:disable_project_and_group_creation\[:group_id\] RAILS_ENV=production
이 명령은 지정된 그룹, 해당 하위 그룹 및 이 그룹 네임스페이스의 프로젝트에 있는 모든 사용자를 지정된 제한으로 업데이트합니다.
청구 가능 사용자 수 제어#
새 사용자가 관리자에 의해 승인될 때까지 차단된 상태로 유지하려면 이 설정을 활성화하세요.
기본값은 false입니다:
block_auto_created_users: false
모든 사용자에 대한 2단계 인증 비활성화#
이 작업은 2단계 인증(2FA)을 활성화한 모든 사용자에 대해 2FA를 비활성화합니다. 예를 들어
GitLab config/secrets.yml 파일이 손실되어 사용자가 로그인할 수 없는 경우에 유용합니다.
모든 사용자에 대해 2단계 인증을 비활성화하려면 다음을 실행하세요:
# 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
2단계 인증 암호화 키 교체#
GitLab은 2단계 인증(2FA)에 필요한 시크릿 데이터를 암호화된 데이터베이스 열에 저장합니다.
이 데이터의 암호화 키는 otp_key_base라고 하며,
config/secrets.yml에 저장됩니다.
해당 파일이 유출되었지만 개별 2FA 시크릿은 유출되지 않은 경우, 새 암호화 키로 해당 시크릿을 재암호화할 수 있습니다. 이를 통해 모든 사용자가 2FA 세부 정보를 변경하도록 강제하지 않고 유출된 키를 변경할 수 있습니다.
2단계 인증 암호화 키를 교체하려면:
-
config/secrets.yml파일에서 이전 키를 찾되, 운영 섹션에서 작업하고 있는지 반드시 확인하세요. 필요한 줄은 다음과 같습니다:production: otp_key_base: fffffffffffffffffffffffffffffffffffffffffffffff -
새 시크릿을 생성하세요:
# omnibus-gitlab sudo gitlab-rake secret # installation from source bundle exec rake secret RAILS_ENV=production -
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<old key>값은config/secrets.yml에서 읽을 수 있습니다 (<new key>는 앞서 생성된 것입니다). 사용자 2FA 시크릿의 암호화된 값은 지정된filename에 기록됩니다. 오류 발생 시 롤백을 위해 이를 사용할 수 있습니다. -
config/secrets.yml에서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의 백업을
복원하고 변경 사항을 롤백할 수 있습니다:
# 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
GitLab Duo에 사용자 일괄 할당#
사용자 이름이 담긴 CSV 파일을 사용하여 GitLab Duo에 사용자를 일괄 할당할 수 있습니다.
CSV 파일에는 username이라는 헤더가 있어야 하며, 이후 각 행에 사용자 이름이 있어야 합니다.
username
user1
user2
user3
user4
GitLab Duo Pro#
히스토리
- Introduced in GitLab 16.9.
GitLab Duo Pro에 대한 사용자 일괄 할당을 수행하려면 다음 Rake 작업을 사용할 수 있습니다:
bundle exec rake duo_pro:bulk_user_assignment DUO_PRO_BULK_USER_FILE_PATH=path/to/your/file.csv
파일 경로에 대괄호를 사용하려면 이스케이프하거나 큰따옴표를 사용할 수 있습니다:
bundle exec rake duo_pro:bulk_user_assignment\['path/to/your/file.csv'\]
# or
bundle exec rake "duo_pro:bulk_user_assignment[path/to/your/file.csv]"
GitLab Duo Pro 및 Enterprise#
히스토리
- Introduced in GitLab 18.0.
GitLab Self-Managed#
이 Rake 작업은 구매된 애드온에 따라 CSV 파일의 사용자 목록에 인스턴스 수준에서 GitLab Duo Pro 또는 Enterprise 시트를 일괄 할당합니다.
GitLab Self-Managed 인스턴스에 대한 사용자 일괄 할당을 수행하려면:
bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment DUO_BULK_USER_FILE_PATH=path/to/your/file.csv
파일 경로에 대괄호를 사용하려면 이스케이프하거나 큰따옴표를 사용할 수 있습니다:
bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment\['path/to/your/file.csv'\]
# or
bundle exec rake "gitlab_subscriptions:duo:bulk_user_assignment[path/to/your/file.csv]"
GitLab.com#
GitLab.com 관리자는 이 Rake 작업을 사용하여 해당 그룹에서 구매된 애드온에 따라 GitLab.com 그룹에 대해 GitLab Duo Pro 또는 Enterprise 시트를 일괄 할당할 수도 있습니다.
GitLab.com 그룹에 대한 사용자 일괄 할당을 수행하려면:
bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment DUO_BULK_USER_FILE_PATH=path/to/your/file.csv NAMESPACE_ID=<namespace_id>
파일 경로에 대괄호를 사용하려면 이스케이프하거나 큰따옴표를 사용할 수 있습니다:
bundle exec rake gitlab_subscriptions:duo:bulk_user_assignment\['path/to/your/file.csv','<namespace_id>'\]
# or
bundle exec rake "gitlab_subscriptions:duo:bulk_user_assignment[path/to/your/file.csv,<namespace_id>]"
문제 해결#
사용자 일괄 할당 시 오류#
사용자 일괄 할당을 위한 Rake 작업을 사용할 때 다음과 같은 오류가 발생할 수 있습니다:
User is not found: 지정된 사용자를 찾을 수 없습니다. 제공된 사용자 이름이 기존 사용자와 일치하는지 확인하세요.ERROR_NO_SEATS_AVAILABLE: 사용자 할당을 위한 시트가 더 이상 없습니다. 현재 시트 할당을 확인하려면 할당된 GitLab Duo 사용자 보기를 참조하세요.ERROR_INVALID_USER_MEMBERSHIP: 사용자가 비활성화되어 있거나, 봇이거나, 고스트이기 때문에 할당 대상이 아닙니다. 사용자가 활성 상태이며 GitLab.com의 경우 제공된 네임스페이스의 멤버인지 확인하세요.
