사용자 삭제
Offering: GitLab Self-Managed
사용자는 다음 중 한 명에 의해 GitLab 인스턴스에서 삭제될 수 있습니다: 사용자를 삭제하면 해당 사용자 네임스페이스의 모든 프로젝트가 삭제됩니다. GitLab Self-Managed에서 이 기능은 기본적으로 비활성화되어 있습니다.
사용자는 다음 중 한 명에 의해 GitLab 인스턴스에서 삭제될 수 있습니다:
- 사용자 본인.
- 관리자.
사용자를 삭제하면 해당 사용자 네임스페이스의 모든 프로젝트가 삭제됩니다.
자신의 계정 삭제#
히스토리
- 사용자가 자신의 계정을 삭제하는 것과 사용자 레코드 삭제 사이의 지연이 GitLab 16.0에서 플래그 이름
delay_delete_own_user로 도입됨. GitLab.com에서 기본적으로 활성화됨.
GitLab Self-Managed에서 이 기능은 기본적으로 비활성화되어 있습니다. 애플리케이션 설정 API를 사용하여 인스턴스에 대한 delay_user_account_self_deletion 설정을 활성화하세요.
계정 삭제를 예약할 수 있습니다. 계정을 삭제하면 보류 중 삭제 상태로 전환됩니다. 일반적으로 삭제는 1~2시간 내에 완료되지만 댓글, 이슈, 머지 리퀘스트, 노트 또는 스니펫과 관련된 계정의 경우 최대 7일이 걸릴 수 있습니다.
계정이 삭제 대기 중인 동안:
- 계정이 차단됨.
- 동일한 사용자 이름으로 새 계정을 만들 수 없습니다.
- 이메일 주소를 먼저 변경하지 않으면 동일한 기본 이메일 주소로 새 계정을 만들 수 없습니다.
계정이 삭제된 후에는 어떤 사용자든 동일한 사용자 이름으로 사용자 계정을 만들 수 있습니다. 다른 사용자가 사용자 이름을 가져가면 되찾을 수 없습니다.
자신의 계정을 삭제하려면:
- 오른쪽 상단에서 아바타를 선택합니다.
- 프로필 편집을 선택합니다.
- 왼쪽 사이드바에서 계정을 선택합니다.
- 계정 삭제를 선택합니다.
GitLab.com에서 계정을 삭제할 수 없는 경우 GitLab에서 계정과 데이터를 제거하려면 개인 데이터 요청을 제출하세요.
사용자 및 사용자 기여 삭제#
사전 요구사항:
- 인스턴스 관리자여야 합니다.
사용자를 삭제하려면:
- 오른쪽 상단에서 관리자를 선택합니다.
- 왼쪽 사이드바에서 개요 > 사용자를 선택합니다.
- 사용자를 선택합니다.
- 계정 탭에서 다음을 선택합니다:
- 사용자 삭제: 사용자만 삭제하되 관련 레코드를 유지합니다. 선택한 사용자가 어떤 그룹의 유일한 소유자인 경우 이 옵션을 사용할 수 없습니다.
- 사용자 및 기여 삭제: 사용자와 관련 레코드를 삭제합니다. 이 옵션은 사용자가 그룹의 유일한 직접 소유자인 모든 그룹(및 해당 그룹 내 프로젝트)도 제거합니다. 상속된 소유권은 적용되지 않습니다.
사용자 및 기여 삭제 옵션을 사용하면 의도한 것보다 더 많은 데이터가 제거될 수 있습니다. 추가 세부 사항은 관련 레코드를 참조하세요.
관련 레코드#
사용자를 삭제할 때 다음 중 하나를 선택할 수 있습니다:
- 사용자만 삭제하되 기여를 고스트 사용자로 이동:
- 이 내부 사용자는 삭제된 모든 사용자의 기여를 위한 컨테이너 역할을 합니다.
- GitLab.com에서 이 사용자는 Ghost User(
@ghost1)라고 합니다. - 사용자의 프로필과 개인 프로젝트는 Ghost User로 이동하는 대신 삭제됩니다.
- 다음을 포함한 사용자와 기여 삭제:
두 경우 모두 커밋은 사용자 정보를 유지하므로 Git 저장소 내에서 데이터 무결성이 보장됩니다.
삭제의 대안으로 사용자 차단이 있습니다.
남용 신고 또는 스팸 로그에서 사용자가 삭제되면 관련 레코드는 항상 제거됩니다.
관련 레코드 삭제 옵션은 API와 관리자 영역에서도 요청할 수 있습니다.
사용자 승인은 사용자 ID와 연결됩니다. 다른 사용자 기여는 연결된 사용자 ID가 없습니다. 사용자를 삭제하고 기여가 고스트 사용자로 이동하면 승인 기여가 누락되거나 유효하지 않은 사용자 ID를 참조합니다. 사용자를 삭제하는 대신 차단, 금지 또는 비활성화를 고려하세요.
GitLab Self-Managed 인스턴스에서 루트 계정 삭제#
루트 계정은 시스템에서 가장 권한이 높은 계정입니다. 루트 계정을 삭제하면 인스턴스에 다른 관리자가 없는 경우 인스턴스 관리자 영역에 대한 액세스가 손실될 수 있습니다.
UI 또는 GitLab Rails 콘솔을 사용하여 루트 계정을 삭제할 수 있습니다.
루트 계정을 삭제하기 전에:
- 루트 계정에 대해 프로젝트 또는 개인 액세스 토큰을 만들고 워크플로에서 사용하는 경우, 새 관리자에게 필요한 권한이나 소유권을 이전하세요.
- GitLab Self-Managed 인스턴스 백업.
- 루트 계정을 삭제하는 대신 비활성화 또는 차단을 고려하세요.
UI 사용#
사전 요구사항:
- GitLab Self-Managed 인스턴스 관리자여야 합니다.
루트 계정을 삭제하려면:
- 관리자 영역에서 관리자 액세스 권한이 있는 새 사용자를 만듭니다. 이렇게 하면 루트 계정 삭제와 관련된 위험을 완화하면서 인스턴스에 대한 관리자 액세스를 유지할 수 있습니다.
- 루트 계정을 삭제합니다.
GitLab Rails 콘솔 사용#
데이터를 변경하는 명령은 올바르게 실행되지 않거나 적절한 조건 하에서 실행되지 않으면 손상을 일으킬 수 있습니다. 항상 먼저 테스트 환경에서 명령을 실행하고 복원할 수 있는 백업 인스턴스를 준비하세요.
사전 요구사항:
- GitLab Rails 콘솔에 액세스할 수 있어야 합니다.
Rails 콘솔에서 루트 계정을 삭제하려면:
-
다른 기존 사용자에게 관리자 액세스 권한을 부여합니다:
user = User.find(username: 'Username') # 또는 이메일로 찾으려면 User.find_by(email: 'email@example.com') 사용 user.admin = true user.save!이렇게 하면 루트 계정 삭제와 관련된 위험을 완화하면서 인스턴스에 대한 관리자 액세스를 유지할 수 있습니다.
-
루트 계정을 삭제하려면 다음 중 하나를 수행합니다:
-
루트 계정 차단:
# 현재 관리자 사용자여야 합니다 current_user = User.find(username: 'Username') # 차단할 루트 사용자입니다 user = User.find(username: 'Username') ::Users::BlockService.new(current_user).execute(user) -
루트 사용자 비활성화:
# 현재 관리자 사용자여야 합니다 current_user = User.find(username: 'Username') # 비활성화할 루트 사용자입니다 user = User.find(username: 'Username') ::Users::DeactivateService.new(current_user, skip_authorization: true).execute(user)
-
