ioerror

usermod 사용법 및 옵션 - 기존 사용자 계정의 정보 및 설정을 변경하는 리눅스 관리 명령어 본문

OS

usermod 사용법 및 옵션 - 기존 사용자 계정의 정보 및 설정을 변경하는 리눅스 관리 명령어

반응형

 

usermod 사용법 및 옵션 - 기존 사용자 계정의 정보 및 설정을 변경하는 리눅스 관리 명령어

usermod - User Modify

리눅스 시스템에 이미 존재하는 사용자 계정의 속성, 그룹, 홈 디렉터리, 기본 셸, 계정 만료일 등을 수정하는 시스템 관리 명령어이다. 실행 시 /etc/passwd, /etc/shadow, /etc/group 등의 시스템 계정 관련 파일을 직접 업데이트하여 변경 사항을 적용한다. 계정 정보 수정은 시스템 보안 및 사용자 권한에 직접적인 영향을 미치므로 반드시 root 권한이나 sudo를 사용하여 실행해야 한다.

1. usermod 용도

  • 기존 사용자의 로그인 ID(계정명) 변경
  • 사용자의 기본 그룹(Primary Group) 및 보조 그룹(Supplementary Groups) 수정
  • 사용자 홈 디렉터리 경로 변경 및 기존 파일 이전
  • 기본 로그인 셸 변경 및 계정 잠금/잠금 해제 처리

2. usermod 서식

Bash
 
usermod [옵션] 사용자명

3. usermod 옵션

옵션 설명 사용가능 OS 및 쉘
-c, --comment 사용자의 설명(주석, GECOS 필드)을 변경함 Linux
-d, --home 사용자의 홈 디렉터리 경로를 변경함 Linux
-m, --move-home -d 옵션과 함께 사용하며, 기존 홈 디렉터리의 내용을 새 경로로 이동함 Linux
-e, --expiredate 계정 만료일을 변경함 (YYYY-MM-DD) Linux
-g, --gid 기본 그룹(Primary Group)을 변경함 Linux
-aG, --append --groups 기존 보조 그룹을 유지하면서 새로운 보조 그룹을 추가함 Linux
-G, --groups 보조 그룹 목록을 새로 지정함 (기존 보조 그룹은 대체됨) Linux
-l, --login 사용자의 로그인 계정 이름을 변경함 Linux
-L, --lock 사용자 계정을 잠금 처리함 (비밀번호 앞에 ! 추가) Linux
-U, --unlock 잠긴 사용자 계정을 해제함 Linux
-s, --shell 기본 로그인 셸을 변경함 Linux
-u, --uid 사용자의 UID를 변경함 Linux
Bash
 
# 1. 보조 그룹 추가 (기존 소속 그룹 유지)
sudo usermod -aG docker,sudo john
# john 계정이 기존 그룹을 유지한 채 docker 및 sudo 보조 그룹에 추가됨

# 2. 기본 로그인 셸 변경
sudo usermod -s /bin/zsh john
# john 계정의 기본 로그인 셸이 zsh로 변경됨

# 3. 홈 디렉터리 경로 변경 및 기존 파일 데이터 함께 이동
sudo usermod -d /home/john_new -m john
# john 계정의 홈 디렉터리가 /home/john_new로 변경되고 기존 파일들이 모두 이동됨

# 4. 사용자 계정명 변경
sudo usermod -l john_dev john
# 계정명이 john에서 john_dev로 변경됨 (홈 디렉터리 이름은 자동으로 바뀌지 않음)

# 5. 계정 잠금 및 잠금 해제
sudo usermod -L john
# john 계정이 잠금 상태가 되어 로그인 불가능함
sudo usermod -U john
# john 계정의 잠금 상태가 해제됨
  • -aG: -G 단독 사용 시 기존 보조 그룹에서 탈퇴되는 현상을 방지하기 위해 -a(append) 옵션과 함께 사용하여 그룹을 누적 추가함
  • -s: 사용자 로그인 시 할당되는 기본 셸 환경을 다른 셸 경로로 교체함
  • -m: -d 옵션 지정 시 단순 경로 수정에 그치지 않고 기존 파일 시스템 내의 홈 데이터를 신규 위치로 안전하게 이전함
  • -L / -U: shadow 파일 내 비밀번호 해시값을 조정하여 계정의 접속 가능 여부를 즉시 제어함

4. usermod 특이사항(유의사항)

  • 보조 그룹을 추가할 때 -G 옵션만 단독으로 사용하면 기존에 속해 있던 보조 그룹 목록이 새로 지정한 그룹으로 덮어씌워져 이전 그룹에서 제외될 수 있다. 따라서 기존 그룹 소속을 유지하려면 반드시 -aG 옵션을 같이 사용해야 한다.
  • 현재 로그인되어 있거나 백그라운드 프로세스를 실행 중인 계정의 정보(특히 계정명, UID, 홈 디렉터리 등)는 변경할 수 없다. 해당 사용자의 프로세스를 먼저 종료한 후 작업해야 한다.
  • 계정 이름만 변경(-l)할 경우 홈 디렉터리명과 그룹명은 자동으로 변경되지 않으므로, 필요한 경우 -d -m 옵션을 조합하거나 groupmod 명령어를 별도로 실행해야 한다.
  • UID를 변경(-u)할 경우 해당 사용자가 소유했던 기존 파일들의 ownership(소유권)이 자동으로 바뀌지 않아 파일 접근 권한 문제가 생길 수 있으므로 chown 명령을 통해 시스템 내 파일 권한을 재정리해야 한다.

관련 명령어들

  • useradd: 새로운 사용자 계정을 생성함
  • userdel: 기존 사용자 계정 및 관련 파일을 삭제함
  • groupmod: 기존 그룹의 정보를 수정함
  • passwd: 사용자 비밀번호 변경 및 계정 상태를 관리함
  • chown: 파일이나 디렉터리의 소유자 및 소유 그룹을 변경함
  • id: 사용자의 UID, GID 및 소속 그룹 정보를 확인함

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

 

반응형
Comments