보통 사용자(관리)

상세 정보: Tier: Free, Premium, Ultimate Offering: Self-managed

본 문서는 관리 문서입니다. 그룹에서 사용자를 관리하는 정보는 그룹 문서를 참조하십시오.

GitLab 관리자는 사용자의 액세스를 승인, 차단, 금지 또는 비활성화하여 사용자를 관리할 수 있습니다.

승인 대기 중인 사용자

승인 대기 중 상태의 사용자는 관리자의 조치를 필요로 합니다. 사용자 등록은 다음과 같은 이유로 승인 대기 중 상태가 될 수 있습니다:

이 설정이 활성화되어 있으면 사용자가 계정을 등록하면:

  • 사용자는 승인 대기 중 상태가 됩니다.
  • 사용자는 관리자의 승인을 기다리는 메시지를 볼 수 있습니다.

승인 대기 중인 사용자:

  • 차단 상태의 사용자와 기능적으로 동일합니다.
  • 로그인할 수 없습니다.
  • Git 저장소나 GitLab API에 액세스할 수 없습니다.
  • GitLab에서 어떠한 알림도 받지 못합니다.
  • 좌석을 차지하지 않습니다.

관리자는 그들의 등록을 승인하거나 거부하여 로그인하도록 허용해야 합니다.

승인 대기 중인 사용자 보기

  • 사용자 상태로 필터링하는 기능은 GitLab 17.0에서 도입되었습니다.

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

  1. 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 State=Pending approval로 필터링하고 Enter 키를 누릅니다.

사용자 등록 승인 또는 거부

  • 사용자 상태로 필터링하는 기능은 GitLab 17.0에서 도입되었습니다.

승인 대기 중인 사용자의 등록을 승인하거나 거부할 수 있습니다.

사용자 등록을 승인하거나 거부하려면:

  1. 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 State=Pending approval로 필터링하고 Enter 키를 누릅니다.
  4. 승인하거나 거부하려는 사용자 등록 옆에 수직 타원 모양 ()을 선택한 후 승인 또는 거부를 선택합니다.

사용자 승인 시:

  • 사용자 계정이 활성화됩니다.
  • 사용자의 상태가 활성 상태로 변경됩니다.
  • 좌석을 사용합니다.

사용자 거부 시:

  • 사용자의 로그인 및 인스턴스 정보에 액세스하는 것을 방지합니다.
  • 사용자가 삭제됩니다.

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

사용자 승급 관리가 활성화되면 청구 가능한 역할에 추가되거나 승격된 모든 사용자는 관리자 승인을 기다리게 됩니다.

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

  1. 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 역할 승급을 선택합니다.

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

사용자 차단 및 차단 해제

GitLab 관리자는 사용자를 차단하고 차단 해제할 수 있습니다. 사용자의 데이터는 유지하되 해당 사용자가 인스턴스에 액세스하지 못하도록 하려면 사용자를 차단해야 합니다.

차단된 사용자:

  • 로그인하거나 어떠한 저장소에도 액세스할 수 없습니다. 차단된 사용자의 데이터는 해당 저장소에 남아 있습니다.
  • 슬래시 명령을 사용할 수 없습니다. 자세한 내용은 슬래시 명령을 참조하십시오.
  • 좌석을 차지하지 않습니다.

사용자 차단

전제 조건:

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

사용자의 인스턴스 액세스를 차단할 수 있습니다.

사용자를 차단하려면:

  1. 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 차단하려는 사용자 옆에 있는 수직 타원 모양 ()을 선택한 후 차단을 선택합니다.

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

다른 사용자로부터 오는 학대를 신고하려면 학대 신고를 참조하십시오. 관리자 영역에서의 학대 보고에 관한 자세한 내용은 학대 보고서 처리를 참조하십시오.

사용자 차단 해제

  • 사용자 상태로 필터링하는 기능은 GitLab 17.0에서 도입되었습니다.

차단된 사용자는 관리자 영역에서 차단 해제할 수 있습니다. 이를 위해:

  1. 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 State=Blocked로 필터링하고 Enter 키를 누릅니다.
  4. 해제하려는 사용자를 선택한 후 수직 타원 모양 ()을 선택한 후 해제를 선택합니다.

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

차단된 사용자를 GitLab API를 사용하여 해제할 수도 있습니다.

LDAP 사용자의 경우 차단 해제 옵션이 사용 불가능할 수 있습니다. 차단 해제 옵션을 활성화하려면 먼저 LDAP 식별 정보를 삭제해야 합니다:

  1. 왼쪽 사이드바에서 맨 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에서 State=Blocked로 필터링하고 Enter 키를 누릅니다.
  4. 사용자를 선택한 후 Identities 탭을 선택합니다.
  5. LDAP 공급업체를 찾은 후 삭제를 선택합니다.

사용자 활성화 및 비활성화

GitLab 관리자는 사용자를 비활성화하거나 활성화할 수 있습니다. 사용자가 최근 활동이 없거나 인스턴스에서 좌석을 점유하지 않기를 원하는 경우 해당 사용자를 비활성화해야 합니다.

비활성화된 사용자:

  • GitLab에 로그인할 수 있습니다.
    • 비활성화된 사용자가 로그인하면 자동으로 활성화됩니다.
  • 저장소 또는 API에 액세스할 수 없습니다.
  • 슬래시 명령을 사용할 수 없습니다. 자세한 내용은 슬래시 명령을 참조하십시오.
  • 좌석을 점유하지 않습니다. 자세한 내용은 청구 가능한 사용자를 참조하십시오.

사용자를 비활성화하면 해당 사용자의 프로젝트, 그룹 및 이력이 유지됩니다.

사용자 비활성화

필수 사항:

  • 사용자가 지난 90일간 활동이 없는 경우.

자체관리 GitLab 인스턴스에서 사용자를 비활성화하려면:

  1. 왼쪽 사이드바에서 하단에 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 비활성화하려는 사용자를 선택하고, 수직 점선()을 선택한 후 비활성화를 선택합니다.
  4. 대화 상자에서 비활성화를 선택합니다.

사용자는 계정이 비활성화되었음을 알리는 이메일 통지를 받습니다. 이 이메일 이후로는 더 이상 알림을 받지 않습니다. 자세한 내용은 사용자 비활성화 이메일을 참조하십시오.

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

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

자동으로 휴면 사용자 비활성화

  • GitLab 15.4에서 소개된 사용자 정의 가능한 기간
  • GitLab 15.5에서 소개된 비활성 기간의 하한 값은 90일

관리자는 자동으로 비활성화되는 사용자를 활성화할 수 있습니다. 이는 다음과 같은 사용자에게 적용됩니다:

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

이를 수행하려면:

  1. 왼쪽 사이드바에서 하단에 관리자를 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. 계정 및 제한 섹션을 확장합니다.
  4. 휴면 사용자 아래에서 비활성기간 후 휴면 사용자 비활성화를 선택합니다.
  5. 비활성화 전 활동일 수에 비활성화 전의 일수를 입력합니다. 최소값은 90일입니다.
  6. 변경 사항 저장을 선택합니다.

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

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

참고: GitLab에서 생성된 봇은 자동 비활성 기능에서 제외됩니다.

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

Tier: 프리미엄, 얼티메이트 Offering: 자체 관리

필수 사항:

  • 관리자해야 합니다.

귀하는 다음과 같은 사용자를 자동으로 삭제할 수 있습니다:

  • 이메일 주소를 확인하지 않은 사용자.
  • 지정된 일 수 전에 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. 차단하려는 사용자를 선택하고, 수직 엘리시스()를 선택한 후 사용자 차단을 선택합니다.

사용자 차단 해제

차단된 사용자는 관리자 영역을 사용하여 차단 해제할 수 있습니다. 다음을 수행하세요:

  1. 왼쪽 사이드바에서 가장 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에 상태=차단됨으로 필터링하고 Enter를 누릅니다.
  4. 차단 해제하려는 사용자를 선택하고, 수직 엘리시스()를 선택한 후 사용자 차단 해제를 선택합니다.

사용자의 상태가 활성화되고, seat를 사용합니다.

사용자 삭제

관리자 영역을 사용하여 사용자를 삭제하세요.

  1. 왼쪽 사이드바에서 가장 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 삭제하려는 사용자를 선택하고, 수직 엘리시스()를 선택한 후 사용자 삭제를 선택합니다.
  4. 사용자 이름을 입력합니다.
  5. 사용자 삭제를 선택합니다.

참고: 그룹에 대한 상속 또는 직접적인 소유자가 있는 경우에만 사용자를 삭제할 수 있습니다. 사용자가 유일한 그룹 소유자인 경우 사용자를 삭제할 수 없습니다.

또한 그들이 유일한 그룹 소유자인 병합 요청, 이슈 및 그룹과 같은 기여들을 삭제할 수도 있습니다.

  1. 왼쪽 사이드바에서 가장 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 삭제하려는 사용자를 선택하고, 수직 엘리시스()를 선택한 후 사용자 및 기여 삭제를 선택합니다.
  4. 사용자 이름을 입력합니다.
  5. 사용자 및 기여 삭제를 선택합니다.

참고: 15.1 이전에는 삭제된 사용자가 직접 멤버 중 유일한 소유자인 그룹이 추가로 삭제되었습니다.

신뢰되는 사용자 및 비신뢰되는 사용자

  • GitLab 16.5에서 도입됨.
  • GitLab 17.0에서 도입됨 (사용자 상태별로 필터링하는 능력).

관리자 영역에서 신뢰되는 사용자와 비신뢰되는 사용자를 설정할 수 있습니다.

기본적으로 사용자는 신뢰되지 않으며, 쓰레기로 간주되어 이슈, 노트 및 스니펫을 생성할 수 없습니다. 사용자를 신뢰하면, 차단되지 않고 이슈, 노트 및 스니펫을 생성할 수 있습니다.

필수 조건: - 관리자여야 함.

사용자 신뢰
  1. 왼쪽 사이드바에서 가장 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 사용자를 선택합니다.
  4. 사용자 관리 드롭다운 목록에서 사용자 신뢰를 선택합니다.
  5. 확인 대화상자에서 사용자 신뢰를 선택합니다.

사용자가 신뢰됩니다.

사용자 비신뢰
  1. 왼쪽 사이드바에서 가장 아래에서 관리자를 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 검색 상자에 상태=신뢰됨으로 필터링하고 Enter를 누릅니다.
  4. 사용자를 선택합니다.
  5. 사용자 관리 드롭다운 목록에서 사용자 비신뢰를 선택합니다.
  6. 확인 대화상자에서 사용자 비신뢰를 선택합니다.

사용자가 비신뢰됩니다.

문제 해결

사용자를 관리할 때 일정 조건에 따라 사용자에 대해 대량 조치를 취해야 할 수도 있습니다. 다음 레일즈 콘솔 스크립트 중 일부 예를 보여줍니다. 레일즈 콘솔 세션을 시작하고 다음과 유사한 스크립트를 사용할 수 있습니다.

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

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

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

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