중간 사용자 (관리)

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

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

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

승인 대기 중인 사용자

승인 대기 중 상태의 사용자는 관리자의 조치를 필요로 합니다. 사용자 등록은 다음 옵션 중 하나 이상을 관리자가 활성화했기 때문에 승인 대기 중인 상태에 있을 수 있습니다:

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

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

승인 대기 중인 사용자:

  • 차단된 사용자와 기능적으로 동일합니다.
  • 로그인할 수 없습니다.
  • Git 리포지터리나 GitLab API에 액세스할 수 없습니다.
  • GitLab의 알림을 받을 수 없습니다.
  • 자리를 차지하지 않습니다.

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

승인 대기 중인 사용자 등록 확인

승인 대기 중인 사용자 등록을 확인하려면:

  1. 왼쪽 사이드바에서 아래쪽에서 관리자 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 승인 대기 중 탭을 선택합니다.

사용자 등록 승인 또는 거부

승인 대기 중인 사용자 등록은 관리자 영역에서 승인하거나 거부할 수 있습니다.

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

  1. 왼쪽 사이드바에서 아래쪽에서 관리자 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 승인 대기 중 탭을 선택합니다.
  4. 승인하거나 거부할 사용자 등록을 선택하고 수직 엘리프시스 ()를 선택한 후 승인 또는 거부를 선택합니다.

사용자를 승인함으로써:

  • 사용자의 계정이 활성화됩니다.
  • 사용자의 상태가 활성으로 변경됩니다.
  • 구독 자리를 차지합니다.

사용자를 거부함으로써:

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

사용자 차단 및 차단 해제

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

차단된 사용자:

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

사용자 차단

전제 조건:

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

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

사용자를 차단하려면:

  1. 왼쪽 사이드바에서 아래쪽에서 관리자 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 차단하려는 사용자를 선택한 후 수직 엘리프시스 ()를 선택한 후 차단을 선택합니다.

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

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

사용자 차단 해제

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

  1. 왼쪽 사이드바에서 아래쪽에서 관리자 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 차단됨 탭을 선택합니다.
  4. 차단 해제하려는 사용자를 선택한 후 수직 엘리프시스 ()를 선택한 후 차단 해제를 선택합니다.

사용자의 상태가 활성으로 설정되고 자리를 차지합니다.

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

LDAP 사용자의 경우 차단 해제 옵션이 사용할 수 없을 수 있습니다. 차단 해제 옵션을 활성화하려면 먼저 LDAP 신원을 삭제해야 합니다:

  1. 왼쪽 사이드바에서 아래쪽에서 관리자 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 차단됨 탭을 선택합니다.
  4. 사용자를 선택합니다.
  5. 신원 탭을 선택합니다.
  6. LDAP 제공자를 찾은 후 삭제를 선택합니다.

사용자 활성화 및 비활성화

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

비활성화된 사용자는 다음과 같습니다:

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

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

사용자 비활성화

  • GitLab 12.4에서 도입됨.

전제 조건:

  • 사용자의 활동이 지난 90일 동안 없었어야 합니다.

사용자를 비활성화하려면:

  1. 왼쪽 측면 표시줄에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 비활성화하려는 사용자를 선택하고, 수직 점들 ()을 선택한 후 비활성화를 선택합니다.
  4. 대화상자에서 비활성화를 선택합니다.

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

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

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

  • GitLab 14.0에서 도입됨.
  • GitLab 14.5에서 GitLab 생성 봇의 제외 도입.
  • 사용자가 설정 가능한 시간 기간 도입 in GitLab 15.4
  • 비활동 기간의 하한선이 90일로 설정된 도입 in GitLab 15.5

관리자는 다음 중 하나에 해당하는 사용자의 자동 비활성화를 활성화할 수 있습니다:

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

다음을 수행하려면:

  1. 왼쪽 측면 표시줄에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 설정 > 일반을 선택합니다.
  3. 계정 및 제한 섹션을 펼칩니다.
  4. 휴면 사용자 아래에서 비활동 기간 후 휴면 사용자 비활성화를 선택합니다.
  5. 비활성화되기 전의 비활동 기간(일)에 비활성화되기 전의 날 수를 입력합니다. 최솟값은 90일입니다.
  6. 변경 사항 저장을 선택합니다.

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

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

note
GitLab 생성 봇은 자동 휴면 사용자의 제외됩니다.

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

Tier: Premium, Ultimate Offering: Self-managed
  • GitLab 16.1에서 delete_unconfirmed_users_setting이란 플래그로 도입. 기본값은 비활성화됨.
  • GitLab 16.2에서 기본값으로 활성화됨.

전제 조건:

  • 관리자여야 함.

이메일 주소를 확인하지 않은 사용자이고 지정된 날 수보다 오래 전에 GitLab에 가입한 사용자를 자동으로 삭제할 수 있습니다.

이러한 설정은 Settings 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 12.4에서 도입됨.

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

다음을 수행하려면:

  1. 왼쪽 측면 표시줄에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 비활성화됨 탭을 선택합니다.
  4. 활성화하려는 사용자를 선택하고, 수직 점들 ()을 선택한 후 활성화를 선택합니다.

사용자의 상태가 활성으로 설정되며, 해당 사용자는 좌석을 사용합니다.

note
비활성화된 사용자는 UI를 통해 자체적으로 계정을 활성화할 수 있습니다. 사용자는 또한 GitLab API를 사용하여 활성화할 수 있습니다.

사용자 차단 및 차단 해제

  • 소개된 GitLab 14.2에서 ban_user_feature_flag라는 플래그로 함께 도입되었습니다. 기본적으로 비활성화됩니다.
  • 사용자 차단 및 차단 해제는 GitLab 14.8에서 일반적으로 이용 가능합니다. 피처 플래그 ban_user_feature_flag가 제거되었습니다.
  • 차단된 사용자의 Merge Request 숨기기가 GitLab 15.8에서 도입되었습니다. 기본적으로 비활성화됩니다.
  • 차단된 사용자의 코멘트 숨기기가 GitLab 15.11에서 도입되었습니다. 기본적으로 비활성화됩니다.
  • 차단된 사용자의 프로젝트 숨기기가 GitLab 16.2에서 도입되었습니다. 기본적으로 비활성화됩니다.

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

차단된 사용자는:

  • 인스턴스에서 차단됩니다. 차단된 사용자의 프로젝트, 이슈, Merge Request 및 코멘트가 숨겨집니다.
  • 사용자 라이선스를 차지하지 않습니다.

사용자 차단하기

관리자는 사용자를 차단하고 그들의 기여를 숨기기 위해 사용자를 차단할 수 있습니다.

사용자는 관리 영역을 통해 차단할 수 있습니다. 다음과 같이 수행하십시오:

  1. 왼쪽 사이드바에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 차단하려는 사용자를 선택한 후, 수직으로 나타나는 덜킹 버튼 ()을 선택하고 사용자 차단을 선택합니다.

사용자 차단 해제하기

차단된 사용자는 관리 영역을 통해 차단 해제할 수 있습니다. 다음과 같이 수행하십시오:

  1. 왼쪽 사이드바에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 차단됨 탭을 선택합니다.
  4. 차단 해제하려는 사용자를 선택한 후, 수직으로 나타나는 덜킹 버튼 ()을 선택하고 사용자 차단 해제를 선택합니다.

사용자의 상태가 활성화되고 사용자는 사용자 라이선스를 사용합니다.

사용자 삭제

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

  1. 왼쪽 사이드바에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 삭제하려는 사용자를 선택한 후, 수직으로 나타나는 덜킹 버튼 ()을 선택하고 사용자 삭제를 선택합니다.
  4. 사용자 이름을 입력합니다.
  5. 사용자 삭제를 선택합니다.
note
만약 그룹의 상속된 또는 직접적인 소유자가 있는 경우에만 사용자를 삭제할 수 있습니다. 사용자가 유일한 그룹 소유자인 경우 사용자를 삭제할 수 없습니다.

삭제된 사용자가 유일한 그룹 소유자이거나 삭제된 사용자의 기여인 Merge Request, 이슈, 그룹 등을 삭제할 수도 있습니다.

  1. 왼쪽 사이드바에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 삭제하려는 사용자를 선택한 후, 수직으로 나타나는 덜킹 버튼 ()을 선택하고 사용자 및 기여 삭제를 선택합니다.
  4. 사용자 이름을 입력합니다.
  5. 사용자 및 기여 삭제를 선택합니다.
note
버전 15.1 이전에는 삭제된 사용자가 직접 구성원 중 유일한 소유자였던 그룹이 추가로 삭제되었습니다.

사용자 신뢰 및 믿음 해제

  • GitLab 16.5에서 도입되었습니다.

관리 영역에서 사용자를 신뢰하거나 믿음 해제할 수 있습니다.

기본적으로 사용자는 신뢰되지 않으며 스팸으로 간주되는 이슈, 코멘트 및 스니펫을 만들 수 없습니다. 사용자를 신뢰하면 차단되지 않고 이슈, 코멘트 및 스니펫을 만들 수 있습니다.

전제 조건:

  • 귀하는 관리자여야 합니다.
사용자를 신뢰함
  1. 왼쪽 사이드바에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 사용자를 선택합니다.
  4. 사용자 관리 드롭다운 디렉터리에서 사용자 신뢰를 선택합니다.
  5. 확인 대화상자에서 사용자 신뢰를 선택합니다.

사용자가 신뢰됩니다.

사용자의 믿음을 해제함
  1. 왼쪽 사이드바에서 아래쪽에 위치한 관리 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 신뢰됨 탭을 선택합니다.
  4. 사용자를 선택합니다.
  5. 사용자 관리 드롭다운 디렉터리에서 사용자 믿음 해제를 선택합니다.
  6. 확인 대화상자에서 사용자 믿음 해제를 선택합니다.

사용자가 믿음이 해제됩니다.

문제 해결

사용자를 관리할 때 특정 조건에 따라 그들에게 대량 조치를 취해야 할 수 있습니다. 다음 rails 콘솔 스크립트는 그러한 예시를 보여줍니다. rails 콘솔 세션을 시작하고 다음과 유사한 스크립트를 사용할 수 있습니다.

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

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

caution
데이터를 변경하는 명령은 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 피해를 줄 수 있습니다. 항상 먼저 테스트 환경에서 명령을 실행하고 복원할 수 있는 백업 인스턴스가 준비되어 있는지 확인하세요.
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

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

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

caution
데이터를 변경하는 명령은 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 피해를 줄 수 있습니다. 항상 먼저 테스트 환경에서 명령을 실행하고 복원할 수 있는 백업 인스턴스가 준비되어 있는지 확인하세요.
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

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

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

caution
데이터를 변경하는 명령은 올바르게 실행되지 않거나 적절한 조건에서 실행되지 않으면 피해를 줄 수 있습니다. 항상 먼저 테스트 환경에서 명령을 실행하고 복원할 수 있는 백업 인스턴스가 준비되어 있는지 확인하세요.
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