| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- 유닉스명령어
- sysadmin
- JavaScript
- coreutils
- bash
- tcsh
- PackageManagement
- linuxcommand
- Solaris
- linux
- 사용자관리
- Unix명령어
- 자바스크립트
- UnixCommand
- 리눅스명령어
- js
- shell
- UNIX
- 유닉스
- 리눅스
- 파일시스템
- 쉘스크립트
- 정규표현식
- 터미널
- cups
- 명령어
- 시스템관리
- terminal
- php
- environment
Archives
- Today
- Total
ioerror
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
반응형
'OS' 카테고리의 다른 글
| vipw 사용법 및 옵션 - 시스템 패스워드 파일을 안전하게 수정하는 리눅스 관리 명령어 (0) | 2026.07.31 |
|---|---|
| vi 사용법 및 옵션 - 리눅스 및 유닉스 환경의 표준 텍스트 에디터 (0) | 2026.07.31 |
| userdel 사용법 및 옵션 - 기존 사용자 계정 및 관련 파일을 시스템에서 삭제하는 리눅스 관리 명령어 (0) | 2026.07.31 |
| useradd 사용법 및 옵션 - 새로운 사용자 계정을 생성하는 리눅스 시스템 관리 명령어 (0) | 2026.07.31 |
| uptime 사용법 및 옵션 - 시스템 가동 시간 및 평균 부하 확인 (0) | 2026.07.31 |
Comments