관리 사용자 (관리)

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

이 문서는 관리 문서입니다. 그룹의 사용자 조정에 대한 정보는 그룹 문서를 참조하세요.

GitLab 관리자는 사용자의 접근을 승인, 차단, 금지 또는 비활성화하여 조정할 수 있습니다.

승인 대기 중인 사용자

승인 대기 중 상태의 사용자는 관리자에 의해 조치가 필요합니다. 사용자가 가입할 때 다음 옵션 중 하나가 활성화되어 있으면 승인 대기 중 상태가 될 수 있습니다:

사용자가 이 설정이 활성화된 상태에서 계정을 등록하면:

  • 사용자는 승인 대기 중 상태로 배치됩니다.
  • 사용자는 계정이 관리자의 승인을 기다리고 있다는 메시지를 보게 됩니다.

승인 대기 중인 사용자:

  • 차단된 사용자와 기능적으로 동일합니다.
  • 로그인할 수 없습니다.
  • Git 저장소나 GitLab API에 접근할 수 없습니다.
  • GitLab로부터 어떤 알림도 받지 않습니다.
  • 좌석을 소비하지 않습니다.

관리자는 사용자가 로그인할 수 있도록 가입을 승인해야 합니다.

승인 대기 중인 사용자 가입 보기

  • 사용자를 상태로 필터링하는 기능이 도입됨 GitLab 17.0에서.

승인 대기 중인 사용자 가입을 보려면:

  1. 왼쪽 사이드바의 하단에서 Admin을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 창에서 상태=승인 대기 중으로 필터링하고 Enter를 누릅니다.

사용자 가입 승인 또는 거부

  • 사용자를 상태로 필터링하는 기능이 도입됨 GitLab 17.0에서.

승인 대기 중인 사용자 가입은 Admin 영역에서 승인되거나 거부될 수 있습니다.

사용자 가입을 승인하거나 거부하려면:

  1. 왼쪽 사이드바의 하단에서 Admin을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 창에서 상태=승인 대기 중으로 필터링하고 Enter를 누릅니다.
  4. 승인하거나 거부하려는 사용자 가입에 대해 수직 줄임표 ( )를 선택한 다음 승인 또는 거부를 선택합니다.

사용자 승인:

  • 사용자의 계정을 활성화합니다.
  • 사용자의 상태를 활성으로 변경합니다.
  • 구독 좌석을 소비합니다.

사용자 거부:

  • 사용자가 로그인하거나 인스턴스 정보를 접근하는 것을 방지합니다.
  • 사용자를 삭제합니다.

역할 승격 대기 중인 사용자 보기

사용자 승격 관리가 활성화된 경우, 청구 가능한 역할로 추가되거나 승격된 모든 사용자는 관리자의 승인이 대기 중입니다.

역할 승격 대기 중인 사용자를 보려면:

  1. 왼쪽 사이드바의 하단에서 Admin을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 역할 승격을 선택합니다.

요청된 가장 높은 역할이 있는 사용자 목록이 표시됩니다.
요청을 승인하거나 거부할 수 있습니다.

사용자 차단 및 차단 해제

GitLab 관리자들은 사용자를 차단 및 차단 해제할 수 있습니다.

사용자가 인스턴스에 접근하지 못하도록 하고 싶지만 그들의 데이터를 유지하고 싶을 때 사용자를 차단해야 합니다.

차단된 사용자:

  • 로그인하거나 리포지토리에 접근할 수 없습니다. 차단된 사용자의 데이터는 해당 리포지토리에 남아 있습니다.
  • 슬래시 명령을 사용할 수 없습니다. 자세한 내용은 슬래시 명령을 참조하세요.
  • 좌석을 차지하지 않습니다. 자세한 내용은 청구 가능한 사용자를 참조하세요.

사용자 차단

전제 조건:

  • 인스턴스의 관리자여야 합니다.

사용자의 인스턴스 접근을 차단할 수 있습니다.

사용자를 차단하려면:

  1. 왼쪽 사이드바에서 하단의 Admin를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 차단하려는 사용자에 대해 수직 점 3개 ( )를 선택한 다음 차단을 선택합니다.

사용자는 계정이 차단되었다는 이메일 알림을 받습니다. 이 이메일 이후로 더 이상 알림을 받지 않습니다.

다른 사용자에 대한 신고를 보고하려면 신고하기를 참조하세요. Admin 영역의 신고서에 대한 자세한 내용은 신고서 해결을 참조하세요.

사용자 차단 해제

  • 상태별로 사용자를 필터링하는 기능이 도입됨 GitLab 17.0.

차단된 사용자는 Admin 영역에서 차단 해제할 수 있습니다. 이렇게 하려면:

  1. 왼쪽 사이드바에서 하단의 Admin를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 상태=차단됨으로 필터링하고 Enter를 누릅니다.
  4. 차단 해제하려는 사용자에 대해 수직 점 3개 ( )를 선택한 다음 차단 해제를 선택합니다.

사용자의 상태가 활성으로 설정되며, 그들은 좌석을 소비합니다.

note
사용자는 GitLab API를 사용하여 차단 해제될 수도 있습니다.

차단 해제 옵션은 LDAP 사용자에게 사용할 수 없을 수 있습니다. 차단 해제 옵션을 활성화하려면, 먼저 LDAP ID를 삭제해야 합니다:

  1. 왼쪽 사이드바에서 하단의 Admin를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 상태=차단됨으로 필터링하고 Enter를 누릅니다.
  4. 사용자를 선택합니다.
  5. 아이덴티티 탭을 선택합니다.
  6. LDAP 공급자를 찾아 삭제를 선택합니다.

사용자 활성화 및 비활성화

GitLab 관리자들은 사용자를 비활성화 및 활성화할 수 있습니다.

최근 활동이 없고 인스턴스에서 좌석을 차지하고 싶지 않을 때 사용자를 비활성화해야 합니다.

비활성화된 사용자:

  • GitLab에 로그인할 수 있습니다.
    • 비활성화된 사용자가 로그인하면 자동으로 활성화됩니다.
  • 리포지토리나 API에 접근할 수 없습니다.
  • 슬래시 명령을 사용할 수 없습니다. 자세한 내용은 슬래시 명령을 참조하세요.
  • 좌석을 차지하지 않습니다. 자세한 내용은 청구 가능한 사용자를 참조하세요.

사용자를 비활성화할 때, 그들의 프로젝트, 그룹 및 기록은 유지됩니다.

사용자를 비활성화하기

전제 조건:

  • 사용자가 지난 90일 동안 활동이 없었습니다.

Self-managed GitLab 인스턴스에서 사용자를 비활성화하려면:

  1. 왼쪽 사이드바에서 맨 아래의 Admin을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 비활성화할 사용자의 세로 생략 부호 ( )를 선택한 다음 비활성화를 선택합니다.
  4. 대화 상자에서 비활성화를 선택합니다.

사용자는 계정이 비활성화되었다는 이메일 알림을 받습니다. 이 이메일 이후로 더 이상 알림을 받지 않습니다.

자세한 내용은 사용자 비활성화 이메일을 참조하세요.

GitLab API를 사용하여 사용자를 비활성화하려면 사용자 비활성화를 참조하십시오. 영구 사용자 제한에 대한 정보는 사용자 차단 및 차단 해제를 참조하십시오.

GitLab.com 구독에서 사용자를 제거하려면 구독에서 사용자 제거를 참조하십시오.

휴면 사용자 자동 비활성화

  • 사용자 정의 가능한 기간이 도입됨 GitLab 15.4에
  • 비활성 기간의 하한이 90일로 설정됨 도입됨 GitLab 15.5에

관리자는 다음과 같은 사용자에 대해 자동 비활성화를 활성화할 수 있습니다:

  • 일주일 이상 전에 생성되었고 로그인하지 않은 사용자.
  • 지정된 시간 동안 활동이 없는 사용자(기본 및 최소값은 90일).

이렇게 하려면:

  1. 왼쪽 사이드바에서 맨 아래의 Admin을 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. 계정 및 한도 섹션을 확장합니다.
  4. 휴면 사용자 아래에서 비활성 기간이 지나면 휴면 사용자 비활성화를 체크합니다.
  5. 비활성화 전에 비활성 상태인 일수에서 비활성화 전에 일수를 입력합니다. 최소값은 90일입니다.
  6. 변경 사항 저장을 선택합니다.

이 기능이 활성화되면 GitLab은 하루에 한 번 작업을 실행하여 휴면 사용자를 비활성화합니다.

하루에 최대 100,000명의 사용자를 비활성화할 수 있습니다.

note
GitLab에서 생성된 봇은 휴면 사용자 자동 비활성화에서 제외됩니다.

확인되지 않은 사용자 자동 삭제

Tier: Premium, Ultimate Offering: Self-managed

전제 조건:

  • 관리자인 경우여야 합니다.

다음 두 가지 조건을 모두 충족하는 사용자에 대한 자동 삭제를 활성화할 수 있습니다:

  • 이메일 주소를 확인하지 않음.
  • 지정된 일수 이상 전에 GitLab에 가입했습니다.

다음과 같은 방법으로 이러한 설정을 구성할 수 있습니다. 설정 API 또는 Rails 콘솔에서:

 Gitlab::CurrentSettings.update(delete_unconfirmed_users: true)
 Gitlab::CurrentSettings.update(unconfirmed_users_delete_after_days: 365)

delete_unconfirmed_users 설정이 활성화되면 GitLab은 매시간 작업을 실행하여 확인되지 않은 사용자를 삭제합니다.

이 작업은 unconfirmed_users_delete_after_days일 이상 전에 가입한 사용자만 삭제합니다.

이 작업은 email_confirmation_settingsoft 또는 hard로 설정될 때만 실행됩니다.

하루에 최대 240,000명의 사용자를 삭제할 수 있습니다.

사용자 활성화

  • 상태로 사용자를 필터링하는 기능이 GitLab 17.0에서 소개됨.

비활성화된 사용자는 관리자 영역에서 활성화할 수 있습니다.

이렇게 하려면:

  1. 왼쪽 사이드바에서 하단에 있는 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 상태=비활성화로 필터링하고 Enter를 누릅니다.
  4. 활성화할 사용자의 경우 수직 줄임표 ( )를 선택한 다음 활성화를 선택합니다.

사용자의 상태가 활성으로 설정되고 그들은 좌석을 차지합니다.

참고:
비활성화된 사용자는 UI를 통해 다시 로그인하여 스스로 계정을 활성화할 수도 있습니다.
사용자는 GitLab API를 사용하여 활성화할 수도 있습니다.

사용자 차단 및 차단 해제

  • 차단된 사용자의 병합 요청 숨기기 기능이 GitLab 15.8에서 소개됨 플래그와 함께 hide_merge_requests_from_banned_users. 기본적으로 비활성화됨.
  • 차단된 사용자의 댓글 숨기기 기능이 GitLab 15.11에서 소개됨 플래그와 함께 hidden_notes. 기본적으로 비활성화됨.
  • 차단된 사용자의 프로젝트 숨기기 기능이 GitLab 16.2에서 소개됨 플래그와 함께 hide_projects_of_banned_users. 기본적으로 비활성화됨.

GitLab 관리자들은 사용자를 차단하거나 차단 해제할 수 있습니다.
사용자의 활동을 차단하고 숨기려면 사용자를 차단해야 합니다.

차단된 사용자는:

  • 인스턴스에서 차단됩니다. 차단된 사용자의 프로젝트, 이슈, 병합 요청 및 댓글은 숨겨집니다.
  • 좌석을 차지하지 않습니다.

사용자 차단

사용자를 차단하고 그들의 기여를 숨기려면 관리자가 사용자를 차단할 수 있습니다.

사용자는 관리자 영역을 사용하여 차단할 수 있습니다. 그렇게 하려면:

  1. 왼쪽 사이드바에서 하단에 있는 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 차단할 사용자의 경우 수직 줄임표 ( )를 선택한 다음 사용자 차단을 선택합니다.

사용자 차단 해제

  • 상태로 사용자를 필터링하는 기능이 GitLab 17.0에서 소개됨.

차단된 사용자는 관리자 영역을 사용하여 차단 해제할 수 있습니다. 그렇게 하려면:

  1. 왼쪽 사이드바에서 하단에 있는 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 상태=차단됨으로 필터링하고 Enter를 누릅니다.
  4. 차단 해제할 사용자의 경우 수직 줄임표 ( )를 선택한 다음 사용자 차단 해제를 선택합니다.

사용자의 상태가 활성으로 설정되고 그들은 좌석을 차지합니다.

사용자를 삭제합니다

관리자 영역을 사용하여 사용자를 삭제합니다.

  1. 왼쪽 사이드바에서 하단의 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 삭제하려는 사용자 옆에 있는 수직 점 3개( )를 선택한 후 사용자 삭제를 선택합니다.
  4. 사용자 이름을 입력합니다.
  5. 사용자 삭제를 선택합니다.

참고: 그룹의 상속된 소유자 또는 직접 소유자가 없으면 사용자를 삭제할 수 없습니다. 해당 사용자가 유일한 그룹 소유자인 경우 사용자를 삭제할 수 없습니다.

사용자와 그들의 기여도, 예를 들어 병합 요청, 문제 및 유일한 그룹 소유자인 그룹의 기여도를 삭제할 수도 있습니다.

  1. 왼쪽 사이드바에서 하단의 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 삭제하려는 사용자 옆에 있는 수직 점 3개( )를 선택한 후 사용자 및 기여 삭제를 선택합니다.
  4. 사용자 이름을 입력합니다.
  5. 사용자 및 기여 삭제를 선택합니다.

참고: 15.1 이전에는 삭제된 사용자가 직접 구성원 중 유일한 소유자였던 그룹이 삭제되었습니다.

사용자 신뢰 및 불신

  • GitLab 16.5에서 도입됨.
  • GitLab 17.0에서 도입된 사용자 상태로 필터링 기능.

관리자 영역에서 사용자를 신뢰 및 불신할 수 있습니다.

기본적으로 사용자는 신뢰되지 않으며 스팸으로 간주되는 문제, 노트 및 스니펫을 작성할 수 없습니다. 사용자를 신뢰하면, 해당 사용자는 차단 없이 문제, 노트 및 스니펫을 작성할 수 있습니다.

전제 조건:

  • 관리자가 되어야 합니다.
사용자를 신뢰합니다
  1. 왼쪽 사이드바에서 하단의 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 사용자를 선택합니다.
  4. 사용자 관리 드롭다운 목록에서 사용자 신뢰를 선택합니다.
  5. 확인 대화상자에서 사용자 신뢰를 선택합니다.

사용자가 신뢰됩니다.

사용자의 신뢰를 해제합니다
  1. 왼쪽 사이드바에서 하단의 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 State=Trusted로 필터링하고 Enter를 누릅니다.
  4. 사용자를 선택합니다.
  5. 사용자 관리 드롭다운 목록에서 신뢰 해제 사용자를 선택합니다.
  6. 확인 대화상자에서 신뢰 해제 사용자를 선택합니다.

사용자의 신뢰가 해제됩니다.

문제 해결

사용자를 관리할 때 특정 조건에 따라 일괄 작업을 수행해야 할 수 있습니다. 다음의 Rails 콘솔 스크립트는 이를 위한 몇 가지 예를 보여줍니다. Rails 콘솔 세션을 시작하고 다음과 유사한 스크립트를 사용할 수 있습니다.

최근 활동이 없는 사용자의 비활성화

관리자는 최근 활동이 없는 사용자를 비활성화할 수 있습니다.

경고: 데이터를 변경하는 명령은 올바른 조건에서 실행되지 않으면 손상을 일으킬 수 있습니다. 항상 테스트 환경에서 명령을 먼저 실행하고 복원할 백업 인스턴스를 준비하세요.

days_inactive = 90
inactive_users = User.active.where("last_activity_on <= ?", days_inactive.days.ago)

inactive_users.each do |user|
    puts "user '#{user.username}': #{user.last_activity_on}"
    user.deactivate!
end

최근 활동이 없는 사용자 차단

관리자는 최근 활동이 없는 사용자를 차단할 수 있습니다.

경고:
데이터를 변경하는 명령은 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 초래할 수 있습니다. 항상 명령을 먼저 테스트 환경에서 실행하고 복원할 준비가 된 백업 인스턴스가 있어야 합니다.

days_inactive = 90
inactive_users = User.active.where("last_activity_on <= ?", days_inactive.days.ago)

inactive_users.each do |user|
    puts "user '#{user.username}': #{user.last_activity_on}"
    user.block!
end

프로젝트나 그룹이 없는 사용자 차단 또는 삭제

관리자는 프로젝트나 그룹이 없는 사용자를 차단하거나 삭제할 수 있습니다.

경고:
데이터를 변경하는 명령은 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 손상을 초래할 수 있습니다. 항상 명령을 먼저 테스트 환경에서 실행하고 복원할 준비가 된 백업 인스턴스가 있어야 합니다.

users = User.where('id NOT IN (select distinct(user_id) from project_authorizations)')

# 몇 명의 사용자가 제거되었는가?
users.count

# 그 수가 합리적으로 보인다면:

# 사용자를 차단할 수 있습니다:
users.each { |user|  user.blocked? ? nil  : user.block! }

# 또는 사용자를 삭제할 수 있습니다:
  # 감사 목적으로 '현재 사용자'가 필요합니다
current_user = User.find_by(username: '<your username>')

users.each do |user|
  DeleteUserWorker.perform_async(current_user.id, user.id)
end