OS 기술/Linux

리눅스 계정 이름 변경 가이드 (usermod, groupmod)

DongT 2025. 8. 8. 12:37
728x90
반응형

 



 

 

계정 이름을 beforeadminafteradmin 으로 변경한 실제 사례를 정리함.
진행 중 “user is currently used by process” 오류를 해결한 방법까지 포함함.

증상

usermod: user beforeadmin is currently used by process 5823

원래 계정명 beforeadmin으로 로그인된 세션 또는 해당 계정으로 동작 중인 프로세스가 있어 변경 불가함.

원인분석

  • usermod -l 명령은 대상 계정이 활성 프로세스를 전혀 가지지 않아야 함
  • SSH 세션, 백그라운드 서비스, screen/tmux, cron 잡, 데몬의 User= 설정 등으로 해당 UID가 사용 중이면 변경이 막힘

조치방법

1) 관리자 권한 확보함

sudo -i      # 또는 root로 로그인함

2) 대상 계정 사용 프로세스 파악 및 종료함

ps -u beforeadmin
lsof -u beforeadmin
kill -9 <PID>

3) 계정 이름과 홈디렉터리 이동을 한 번에 수행함

usermod -l afteradmin -d /home/afteradmin -m beforeadmin

4) (선택) 기본 그룹명도 계정명과 맞춤

groupmod -n afteradmin beforeadmin

5) 변경 사항 확인함

grep '^afteradmin:' /etc/passwd
id afteradmin
ls -ld /home/afteradmin

해결

프로세스 종료 후 usermod 재실행하여 계정명과 홈디렉터리 이동 완료함.
groupmod로 기본 그룹명도 afteradmin으로 통일함.
/etc/passwd, /home 권한 확인 결과 이상 없음을 검증함.

사후계획

  1. 서비스 유닛 및 설정 파일에서 이전 계정명 변경
  2. 크론, 스크립트 경로 확인 및 수정
  3. SSH, sudoers 설정 갱신
  4. 파일 소유자 권한 재조정
    chown -R afteradmin:afteradmin /home/afteradmin

빠른 참조 (치트시트)

# 현재 로그인/프로세스 확인
who
w
ps -u <oldname>
lsof -u <oldname>

# 계정명+홈 이동
usermod -l <newname> -d /home/<newname> -m <oldname>

# 그룹명 변경
groupmod -n <newgroup> <oldgroup>

# 검증
id <newname>
grep '^<newname>:' /etc/passwd
ls -ld /home/<newname>

실제 콘솔 로그 (요약)

[root@SVR01 ~]# usermod -l afteradmin -d /home/afteradmin -m beforeadmin
usermod: user beforeadmin is currently used by process 5823

# 프로세스 정리 후 재시도
[root@SVR01 ~]# usermod -l afteradmin -d /home/afteradmin -m beforeadmin
[root@SVR01 ~]# groupmod -n afteradmin beforeadmin

흔한 오류와 대처

  • usermod: user <name> is currently used by process <PID> → 해당 PID 종료 또는 세션 강제 종료 후 재시도
  • userdel: user is currently used by process → 삭제 시에도 동일하게 세션/프로세스 정리 필요
  • 홈디렉터리 이동 후 권한 꼬임 → chown -R <new>:<new> /home/<new> 로 복구


 

728x90