사용자 중재
Offering: GitLab Self-Managed
인스턴스 관리자인 경우 사용자 액세스를 중재하고 제어하는 몇 가지 옵션이 있습니다. 이 항목은 GitLab Self-Managed에서의 사용자 중재와 관련이 있습니다. 사용자를 선택하여 계정 정보를 봅니다. 확립된 GitLab 인스턴스에는 종종 많은 수의 인간 및 봇 사용자가 있을 수 있습니다.
인스턴스 관리자인 경우 사용자 액세스를 중재하고 제어하는 몇 가지 옵션이 있습니다.
이 항목은 GitLab Self-Managed에서의 사용자 중재와 관련이 있습니다. 그룹 관련 정보는 그룹 문서를 참조하세요.
사용자 보기#
인스턴스의 모든 사용자를 보려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
사용자를 선택하여 계정 정보를 봅니다.
유형별 사용자 보기#
히스토리
- 유형별 사용자 필터가 GitLab 18.1에서 도입.
확립된 GitLab 인스턴스에는 종종 많은 수의 인간 및 봇 사용자가 있을 수 있습니다. 사용자 목록을 필터링하여 인간 또는 봇 사용자만 표시할 수 있습니다.
유형별로 사용자를 보려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 검색 상자에 필터를 입력합니다.
- 인간 사용자를 표시하려면 Type=Humans를 입력합니다.
- 봇 사용자를 표시하려면 Type=Bots를 입력합니다.
- Enter를 누릅니다.
청구 가능 사용자#
Rails 콘솔을 통해 인스턴스의 청구 가능 사용자를 보고 업데이트할 수 있습니다.
일별 및 과거 청구 가능 사용자 확인#
GitLab 인스턴스의 일별 및 과거 청구 가능 사용자 목록을 가져오려면:
-
인스턴스의 사용자 수 계산:
User.billable.count -
지난 1년 동안 인스턴스의 최대 과거 사용자 수 가져오기:
::HistoricalData.max_historical_user_count(from: 1.year.ago.beginning_of_day, to: Time.current.end_of_day)
일별 및 과거 청구 가능 사용자 업데이트#
GitLab 인스턴스의 일별 및 과거 청구 가능 사용자의 수동 업데이트를 트리거하려면:
-
일별 청구 가능 사용자 강제 업데이트:
identifier = Analytics::UsageTrends::Measurement.identifiers[:billable_users] ::Analytics::UsageTrends::CounterJobWorker.new.perform(identifier, User.minimum(:id), User.maximum(:id), Time.zone.now) -
과거 최대 청구 가능 사용자 강제 업데이트:
::HistoricalDataWorker.new.perform
승인 대기 중인 사용자#
승인 대기 중 상태의 사용자는 관리자의 조치가 필요합니다. 관리자가 다음 옵션 중 하나를 활성화했기 때문에 사용자 가입이 승인 대기 중 상태일 수 있습니다:
- 새 사용자 계정에 대한 관리자 승인 필요 설정.
- 사용자 한도.
- 사용 가능한 라이선스 시트가 없을 때 휴면 사용자가 다시 로그인하려는 경우 제한된 접근.
- 자동 생성된 사용자 차단 (OmniAuth)
- 자동 생성된 사용자 차단 (LDAP)
이 설정이 활성화된 동안 사용자가 계정에 등록하면:
- 사용자는 Pending approval 상태로 배치됩니다.
- 사용자는 계정이 관리자의 승인을 기다리고 있다는 메시지를 봅니다.
승인 대기 중인 사용자:
- 기능적으로 차단된 사용자와 동일합니다.
- 로그인할 수 없습니다.
- Git 저장소나 GitLab API에 액세스할 수 없습니다.
- GitLab에서 어떠한 알림도 받지 않습니다.
- 시트를 소비하지 않습니다.
관리자는 로그인을 허용하기 위해 가입을 승인해야 합니다.
승인 대기 중인 사용자 가입 보기#
히스토리
- 상태별 사용자 필터가 GitLab 17.0에서 도입.
승인 대기 중인 사용자 가입을 보려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 검색 상자에서 State=Pending approval로 필터링하고 Enter를 누릅니다.
새 사용자 계정 승인 또는 거부#
히스토리
- 상태별 사용자 필터가 GitLab 17.0에서 도입.
승인 대기 중인 사용자 가입은 Admin 영역에서 승인하거나 거부할 수 있습니다.
사용자 가입을 승인하거나 거부하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 검색 상자에서 State=Pending approval로 필터링하고 Enter를 누릅니다.
- 승인하거나 거부할 사용자 가입에 대해 세로 줄임표 (⋮)를 선택한 다음 Approve 또는 Reject를 선택합니다.
사용자 승인 시:
- 계정이 활성화됩니다.
- 사용자 상태가 active로 변경됩니다.
- 구독 시트를 소비합니다.
사용자 거부 시:
- 사용자가 로그인하거나 인스턴스 정보에 액세스하는 것을 방지합니다.
- 사용자를 삭제합니다.
역할 승격 대기 중인 사용자 보기#
역할 승격에 대한 관리자 승인이 켜져 있는 경우 기존 사용자를 청구 가능한 역할로 승격하는 멤버십 요청은 관리자 승인이 필요합니다.
역할 승격 대기 중인 사용자를 보려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- Role Promotions를 선택합니다.
요청된 최고 역할이 있는 사용자 목록이 표시됩니다. 요청을 Approve 또는 Reject할 수 있습니다.
사용자 차단 및 차단 해제#
GitLab 관리자는 사용자를 차단하고 차단 해제할 수 있습니다. 인스턴스에 대한 액세스를 원하지 않지만 데이터를 유지하려는 경우 사용자를 차단해야 합니다.
차단된 사용자:
- 로그인하거나 저장소에 액세스할 수 없습니다.
- 관련 데이터는 이 저장소에 남아 있습니다.
- Slack의 슬래시 명령을 사용할 수 없습니다.
- 시트를 차지하지 않습니다.
사용자 차단#
사전 조건:
- 인스턴스의 관리자여야 합니다.
인스턴스에 대한 사용자 액세스를 차단할 수 있습니다.
사용자를 차단하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 차단할 사용자에 대해 세로 줄임표 (⋮)를 선택한 다음 Block을 선택합니다.
다른 사용자의 남용을 신고하려면 남용 신고를 참조하세요. Admin 영역의 남용 신고에 대한 자세한 내용은 남용 신고 해결을 참조하세요.
사용자 차단 해제#
히스토리
- 상태별 사용자 필터가 GitLab 17.0에서 도입.
사용자를 차단 해제하여 인스턴스에 대한 액세스를 복원할 수 있습니다.
사용자를 차단 해제하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 검색 상자에서 State=Blocked로 필터링하고 Enter를 누릅니다.
- 차단 해제할 사용자에 대해 세로 줄임표 (⋮)를 선택한 다음 Unblock을 선택합니다.
사용자의 상태가 active로 설정되고 시트를 소비합니다.
사용자는 GitLab API를 사용하여 차단 해제할 수도 있습니다.
LDAP 사용자의 경우 차단 해제 옵션을 사용할 수 없을 수 있습니다. 차단 해제 옵션을 활성화하려면 먼저 LDAP 아이덴티티를 삭제해야 합니다:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 검색 상자에서 State=Blocked로 필터링하고 Enter를 누릅니다.
- 사용자를 선택합니다.
- Identities 탭을 선택합니다.
- LDAP 공급자를 찾아 Delete를 선택합니다.
사용자 비활성화 및 재활성화#
GitLab 관리자는 사용자를 비활성화하고 재활성화할 수 있습니다. 최근 활동이 없는 사용자가 인스턴스의 시트를 차지하는 것을 원하지 않는 경우 사용자를 비활성화해야 합니다.
비활성화된 사용자:
- GitLab에 로그인할 수 있습니다.
- 비활성화된 사용자가 로그인하면 자동으로 재활성화됩니다.
- 저장소 또는 API에 액세스할 수 없습니다.
- Slack의 슬래시 명령을 사용할 수 없습니다.
- 시트를 차지하지 않습니다. 자세한 내용은 청구 가능 사용자를 참조하세요.
사용자를 비활성화하면 프로젝트, 그룹 및 기록이 유지됩니다.
사용자 비활성화#
사전 조건:
- 사용자는 최근 90일 동안 활동이 없어야 합니다.
사용자를 비활성화하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 비활성화할 사용자에 대해 세로 줄임표 (⋮)를 선택한 다음 Deactivate를 선택합니다.
- 대화 상자에서 Deactivate를 선택합니다.
사용자는 계정이 비활성화되었다는 이메일 알림을 받습니다. 이 이메일 이후에는 더 이상 알림을 받지 않습니다. 자세한 내용은 사용자 비활성화 이메일을 참조하세요.
GitLab API로 사용자를 비활성화하려면 사용자 비활성화를 참조하세요. 영구적인 사용자 제한에 대한 정보는 사용자 차단 및 차단 해제를 참조하세요.
GitLab.com 구독에서 사용자를 제거하려면 구독에서 사용자 제거를 참조하세요.
휴면 사용자 자동 비활성화#
관리자는 다음 중 하나에 해당하는 사용자의 자동 비활성화를 활성화할 수 있습니다:
- 1주일 이상 전에 생성되었으며 로그인하지 않은 경우.
- 지정된 기간 동안 활동이 없는 경우(기본값 및 최소값은 90일).
휴면 멤버를 자동으로 비활성화하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Settings > General을 선택합니다.
- Account and limit 섹션을 확장합니다.
- Dormant users 아래에서 Deactivate dormant users after a period of inactivity를 선택합니다.
- Days of inactivity before deactivation 아래에 비활성화 전 일수를 입력합니다. 최소값은 90일입니다.
- Save changes를 선택합니다.
이 기능이 활성화되면 GitLab은 매일 작업을 실행하여 휴면 사용자를 비활성화합니다.
하루에 최대 100,000명의 사용자를 비활성화할 수 있습니다.
기본적으로 계정이 비활성화되면 사용자는 이메일 알림을 받습니다. 사용자 비활성화 이메일을 비활성화할 수 있습니다.
GitLab이 생성한 봇은 휴면 사용자의 자동 비활성화에서 제외됩니다.
GitLab은 다음 두 항목 중 가장 최근 값인 last_active_at 타임스탬프를 기반으로 사용자의 최근 활동을 판단합니다:
-
last_activity_on: GitLab에서 사용자의 마지막 기록된 활동 타임스탬프(이슈, 머지 리퀘스트 또는 댓글 생성 등). -
current_sign_in_at: 사용자의 가장 최근 로그인 타임스탬프.
사용자의 현재 로그인 타임스탬프가 마지막 기록된 활동보다 최근인 경우, 사용자는 로그인 이후 GitLab 기능을 사용하지 않았더라도 최근 활동한 것으로 간주됩니다.
미확인 사용자 자동 삭제#
히스토리
사전 조건:
- 관리자여야 합니다.
다음 두 가지 조건을 모두 충족하는 사용자의 자동 삭제를 활성화할 수 있습니다:
- 이메일 주소를 확인한 적 없는 경우.
- 지정된 날수 이전에 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_setting이 soft 또는 hard로 설정된 경우에만 실행됩니다.
하루에 최대 240,000명의 사용자를 삭제할 수 있습니다.
사용자 재활성화#
히스토리
- 상태별 사용자 필터가 GitLab 17.0에서 도입.
사용자를 재활성화하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 검색 상자에서 State=Deactivated로 필터링하고 Enter를 누릅니다.
- 재활성화할 사용자에 대해 세로 줄임표 (⋮)를 선택한 다음 Activate를 선택합니다.
사용자의 상태가 active로 설정되고 시트를 소비합니다.
비활성화된 사용자는 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 18.0에서 일반 사용 가능. 기능 플래그
hide_merge_requests_from_banned_users제거됨.
GitLab 관리자는 사용자를 금지하고 금지 해제할 수 있습니다. 사용자를 차단하고 인스턴스에서 활동을 숨기려는 경우 사용자를 금지해야 합니다.
금지된 사용자:
- 로그인하거나 저장소에 액세스할 수 없습니다.
- 관련 프로젝트, 이슈, 병합 요청 또는 댓글이 숨겨집니다.
- Slack의 슬래시 명령을 사용할 수 없습니다.
- 시트를 차지하지 않습니다.
사용자 금지#
사용자를 차단하고 기여를 숨기기 위해 금지할 수 있습니다.
사용자를 금지하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 금지할 멤버 옆의 세로 줄임표 (⋮)를 선택합니다.
- 드롭다운 목록에서 Ban member를 선택합니다.
사용자 금지 해제#
히스토리
- 상태별 사용자 필터가 GitLab 17.0에서 도입.
사용자를 금지 해제하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 검색 상자에서 State=Banned로 필터링하고 Enter를 누릅니다.
- 금지 해제할 멤버 옆의 세로 줄임표 (⋮)를 선택합니다.
- 드롭다운 목록에서 Unban member를 선택합니다.
사용자의 상태가 active로 설정되고 시트를 소비합니다.
사용자 삭제#
사용자를 삭제하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 삭제할 사용자에 대해 세로 줄임표 (⋮)를 선택한 다음 Delete user를 선택합니다.
- 사용자 이름을 입력합니다.
- 다음 중 하나를 선택합니다:
- Delete user: 사용자만 삭제합니다.
- Delete user and contributions: 사용자와 병합 요청, 이슈, 유일한 그룹 소유자인 그룹과 같은 기여를 삭제합니다.
사용자가 그룹의 상속된 또는 직접 소유자인 경우에만 사용자를 삭제할 수 있습니다. 사용자가 유일한 그룹 소유자인 경우에는 삭제할 수 없습니다.
사용자 신뢰 및 신뢰 해제#
기본적으로 사용자는 신뢰받지 않으며 스팸으로 간주되는 이슈, 노트 및 스니펫 생성이 차단됩니다. 사용자를 신뢰하면 차단 없이 이슈, 노트 및 스니펫을 생성할 수 있습니다.
사용자 신뢰#
사용자를 신뢰하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 사용자를 선택합니다.
- User administration 드롭다운 목록에서 Trust user를 선택합니다.
- 확인 대화 상자에서 Trust user를 선택합니다.
사용자 신뢰 해제#
사용자 신뢰를 해제하려면:
- 오른쪽 상단에서 Admin을 선택합니다.
- 왼쪽 사이드바에서 Overview > Users를 선택합니다.
- 검색 상자에서 State=Trusted로 필터링하고 Enter를 누릅니다.
- 사용자를 선택합니다.
- User administration 드롭다운 목록에서 Untrust user를 선택합니다.
- 확인 대화 상자에서 Untrust user를 선택합니다.
문제 해결#
사용자를 중재할 때 특정 조건에 따라 대량 작업을 수행해야 할 수 있습니다. 다음 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
