사용자 관리 Rake 작업

Tier: Free, Premium, Ultimate Offering: Self-Managed

GitLab은 사용자를 관리하기 위한 Rake 작업을 제공합니다. 관리자는 또한 관리자 영역을 사용하여 사용자를 관리할 수 있습니다.

모든 프로젝트에 사용자를 개발자로 추가

사용자를 모든 프로젝트에 개발자로 추가하려면 다음을 실행하세요.

# 옴니버스-gitlab
sudo gitlab-rake gitlab:import:user_to_projects[username@domain.tld]

# 소스에서 설치하는 경우
bundle exec rake gitlab:import:user_to_projects[username@domain.tld] RAILS_ENV=production

모든 사용자를 모든 프로젝트에 추가

모든 사용자를 모든 프로젝트에 추가하려면 다음을 실행하세요.

# 옴니버스-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_projects

# 소스에서 설치하는 경우
bundle exec rake gitlab:import:all_users_to_all_projects RAILS_ENV=production

관리자는 유지자로 추가됩니다.

모든 그룹에 사용자를 개발자로 추가

모든 그룹에 사용자를 개발자로 추가하려면 다음을 실행하세요.

# 옴니버스-gitlab
sudo gitlab-rake gitlab:import:user_to_groups[username@domain.tld]

# 소스에서 설치하는 경우
bundle exec rake gitlab:import:user_to_groups[username@domain.tld] RAILS_ENV=production

모든 사용자를 모든 그룹에 추가

모든 사용자를 모든 그룹에 추가하려면 다음을 실행하세요.

# 옴니버스-gitlab
sudo gitlab-rake gitlab:import:all_users_to_all_groups

# 소스에서 설치하는 경우
bundle exec rake gitlab:import:all_users_to_all_groups RAILS_ENV=production

관리자는 소유자로 추가되어 해당 그룹에 추가로 사용자를 추가할 수 있습니다.

특정 그룹의 모든 사용자를 project_limit:0can_create_group: false로 업데이트

특정 그룹의 모든 사용자를 project_limit: 0can_create_group: false로 업데이트하려면 다음을 실행하세요.

# 옴니버스-gitlab
sudo gitlab-rake gitlab:user_management:disable_project_and_group_creation\[:group_id\]

# 소스에서 설치하는 경우
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단계 인증을 비활성화하려면 다음을 실행하세요.

# 옴니버스-gitlab
sudo gitlab-rake gitlab:two_factor:disable_for_all_users

# 소스에서 설치하는 경우
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단계 인증 암호화 키를 회전하려면:

  1. config/secrets.yml 파일에서 이전 키를 찾지만 반드시 프로덕션 섹션에서 작업 중인지 확인하십시오. 관련된 줄은 다음과 같이 보입니다:

    production:
      otp_key_base: fffffffffffffffffffffffffffffffffffffffffffffff
    
  2. 새로운 비밀값을 생성합니다:

    # 옴니버스-gitlab
    sudo gitlab-rake secret
    
    # 소스에서 설치하는 경우
    bundle exec rake secret RAILS_ENV=production
    
  3. GitLab 서버를 중지하고 기존 비밀 파일을 백업한 후 데이터베이스를 업데이트합니다.

    # 옴니버스-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>
    
    # 소스에서 설치하는 경우
    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에 작성됩니다. 에러가 발생할 경우에 대비해 롤백에 사용할 수 있습니다.

  4. config/secrets.yml을 변경하여 otp_key_base<new key>로 설정하고 다시 시작합니다. 다시 한 번 프로덕션 섹션에서 작업 중임을 확인하십시오.

    # 옴니버스-gitlab
    sudo gitlab-ctl start
    
    # 소스에서 설치하는 경우
    sudo /etc/init.d/gitlab start
    

문제가 발생한 경우 (old_key에 잘못된 값 사용 등), config/secrets.yml의 백업을 복원하고 변경 사항을 롤백할 수 있습니다:

# 옴니버스-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

# 소스에서 설치하는 경우
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 Pro 대량 사용자 할당

Tier: 프리미엄, 얼티메이트 Offering: 온프레미스, GitLab Dedicate

대량 사용자 할당을 위한 Rake 작업은 GitLab 16.9 이상에서 사용할 수 있습니다. GitLab 16.8의 경우 대신 bulk_user_assignment.rb 스크립트를 사용하십시오.

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'\]
# 또는
bundle exec rake "duo_pro:bulk_user_assignment['path/to/your/file.csv']"

CSV 파일은 다음 형식을 따라야 합니다:

사용자명
user1
user2
user3
user4
기타..

파일에는 username이라는 헤더가 있어야 하며, 각 구성원 행은 사용자 할당을 나타내는 사용자명을 나타내어야 합니다.

작업 중에 다음과 같은 오류 메시지가 발생할 수 있습니다:

  • User is not found: 지정된 사용자를 찾을 수 없습니다.
  • ERROR_NO_SEATS_AVAILABLE: 사용자 할당을 위한 더 이상의 좌석이 없습니다.
  • ERROR_INVALID_USER_MEMBERSHIP: 사용자가 비활성 상태이거나 봇 또는 ghost로 인해 할당 대상이 되지 못합니다.

관련 주제