우분투 실전 명령어 | 사용자/그룹 계정 관리(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