우분투 실전 명령어 | 사용자/그룹 계정 관리(useradd, usermod, passwd)

언제 쓰는가

서버에 작업자 계정을 새로 만들거나, 기존 계정 권한을 조정해야 할 때 가장 자주 쓰는 조합입니다. 특히 운영 서버에서 root만으로 일하면 추적이 어려워져서, 사용자별 계정을 분리해 두는 게 안전합니다. 퇴사자 계정 잠금, sudo 권한 부여/회수 같은 작업도 이 흐름으로 처리합니다.

바로 쓰는 명령어

# 1) 새 사용자 생성
sudo useradd -m -s /bin/bash devops1

# 2) 비밀번호 설정
sudo passwd devops1

# 3) sudo 그룹에 추가
sudo usermod -aG sudo devops1

# 4) 계정 정보 확인
id devops1
getent passwd devops1

# 5) 그룹 목록 확인
groups devops1

# 6) 계정 잠금/해제
sudo passwd -l devops1   # lock
sudo passwd -u devops1   # unlock

# 7) 로그인 셸 변경
sudo usermod -s /bin/zsh devops1
# 만료일 지정
sudo usermod -e 2026-12-31 contractor1

# 홈 디렉터리 경로 변경 + 기존 데이터 이동
sudo usermod -d /home/newhome/devops1 -m devops1

# 계정 삭제
sudo userdel devops1
sudo userdel -r tempuser

자주 하는 실수

  • usermod -G sudo devops1처럼 -a 없이 실행해서 기존 보조 그룹을 날려버리는 경우가 많습니다. 보조 그룹 추가는 항상 -aG로 처리하세요.
  • useradd만 하고 passwd를 설정하지 않아 로그인 불가 상태를 만드는 실수가 잦습니다.
  • 운영 계정을 삭제할 때 userdel -r를 바로 써서 홈 디렉터리까지 날리는 사고가 납니다. 먼저 id, lastlog, 파일 소유권을 확인한 뒤 삭제하세요.
  • 셸을 /bin/bash 대신 존재하지 않는 경로로 바꿔서 로그인 자체가 막히기도 합니다. 변경 전 cat /etc/shells로 확인이 안전합니다.

검증 방법

# 사용자/UID/GID/보조그룹 확인
id devops1

# /etc/passwd 엔트리 확인
getent passwd devops1

# 계정 잠금 상태 확인
sudo passwd -S devops1

# sudo 권한이 실제로 적용되는지 확인
su - devops1
sudo -l

실행 결과 예시

$ id devops1
uid=1002(devops1) gid=1002(devops1) groups=1002(devops1),27(sudo)

$ getent passwd devops1
devops1:x:1002:1002::/home/devops1:/bin/bash

$ sudo passwd -S devops1
devops1 P 2026-02-18 0 99999 7 -1
$ groups devops1
devops1 : devops1 sudo

$ sudo -l
User devops1 may run the following commands on ubuntu-host:
    (ALL : ALL) ALL

출처

  • Ubuntu Server Guide
  • man useradd
  • man usermod
  • man passwd