리눅스마스터 2급 필기 05 — 기본 명령어 ② 사용자·계정 관리 + 기타 필수 명령어 [1차 리눅스 일반]
출제기준 1차 대단원: 리눅스 일반 — 기본 명령어(사용자 계정 / 기타 명령어)
계정 관련 파일 필드 수(7개 vs 9개)와 옵션 대소문자 구분, 이번 편의 승부처입니다!
사용자 계정 생성 — useradd ⭐⭐⭐⭐
리눅스는 다중 사용자(Multi-user) 시스템이라 root가 계정을 추가하는 일이 잦습니다.
useradd는 /etc/passwd, /etc/shadow, /etc/group에 정보를 등록하고 홈 디렉터리와 초기 파일을 자동으로 만들어 줍니다.
| 옵션 | 의미 | 내용 |
| -u | UID 지정 | 특정 번호의 UID 부여 |
| -g | 기본 그룹 | Primary Group 지정 |
| -d | 홈 디렉터리 | 기본값(/home/계정명) 외 경로 지정 |
| -s | 셸 지정 | 로그인 셸 지정 |
| -c | 설명 | 실명·부서 등 코멘트 |
| -m | 홈 디렉터리 생성 | 홈 디렉터리를 강제로 생성 |
| -e | 만료일 | 계정 유효 기간(YYYY-MM-DD) |
| -f | 비활성 기간 | 패스워드 만료 후 계정이 잠기기까지 유예 |
예시: useradd -m -d /test -s /bin/bash -e 2026-12-31 test1
→ 홈을 /test로 만들고, 셸은 bash, 2026-12-31 이후엔 로그인 거부
⭐ "홈 디렉터리를 강제로 생성하는 옵션은?" → -m (Make directory)
useradd 기본값 파일 — /etc/default/useradd ⭐⭐⭐
useradd user01만 입력해도 bash 셸과 /home 아래 홈이 만들어지는 이유가 이 파일입니다.
확인·변경은 useradd -D 또는 vi로 합니다.
| 항목 | 설명 |
| GROUP | 기본 그룹 GID |
| HOME | 홈이 만들어질 상위 디렉터리(/home) |
| INACTIVE | 패스워드 만료 후 계정 잠금까지 유예(-1=무제한) |
| EXPIRE | 계정 사용 만료 날짜 |
| SHELL | 기본 로그인 셸(/bin/bash) |
| SKEL | 초기 환경 파일(.bashrc 등)을 복사해 오는 원본 디렉터리(/etc/skel) |
| CREATE_MAIL_SPOOL | /var/spool/mail에 메일 파일 생성 여부 |
⭐ "초기 환경 파일을 복사해 오는 원본 디렉터리 항목은?" → SKEL(Skeleton, 뼈대)
시스템 전역 정책 — /etc/login.defs ⭐⭐⭐
useradd·userdel 실행 시 기본 적용되는 정책 파일입니다.
| 항목 | 설명 |
| PASS_MAX_DAYS | 비밀번호 최대 사용 기간(99999) |
| PASS_MIN_DAYS | 최소 사용 기간(0) |
| PASS_MIN_LEN | 최소 길이(5) |
| PASS_WARN_AGE | 만료 전 경고 기간(7) |
| UID_MIN / UID_MAX | 일반 사용자 UID 범위(1000 / 60000) |
| CREATE_HOME | useradd 시 홈 자동 생성 여부 |
| ENCRYPT_METHOD | 암호화 알고리즘 |
login.defs vs default/useradd
| 구분 | /etc/login.defs | /etc/default/useradd |
| 역할 | 시스템 전역 정책(패스워드 정책, ID 범위) | useradd 명령의 기본값(셸·홈·그룹) |
| 대표 항목 | PASS_MAX_DAYS, UID_MIN/MAX | SHELL, HOME, SKEL |
💡 RHEL 계열에서 UID는 0=root, 1~999=시스템 계정, 1000 이상=일반 사용자로 기억하세요.
또한 최신 배포판에서 비밀번호 최소 길이는 PAM(pwquality)이 좌우해서 PASS_MIN_LEN은 사실상 무시되는 경우가 많습니다.
비밀번호 설정·상태 제어 — passwd ⭐⭐⭐⭐
- 일반 사용자: 본인 비밀번호만 변경 가능, 현재 비밀번호 입력 필수
- root: 모든 사용자 비밀번호를 현재 비밀번호 없이 강제 변경 가능
| 옵션 | 의미 | 내용 |
| -l | Lock | 계정 잠금 |
| -u | Unlock | 잠금 해제 |
| -d | Delete | 비밀번호 삭제(비밀번호 없이 로그인 가능) |
| -e | Expire | 비밀번호 즉시 만료 |
| -n / -x | Min / Max | 최소 / 최대 사용 기간 |
| -w | Warn | 만료 전 경고 기간 |
| -i | Inactive | 만료 후 잠금 유예 |
| -S | Status | 상태 출력 |
passwd -S 상태 코드 ⭐⭐⭐
| 코드 | 의미 |
| PS | 정상(Password Set) |
| NP | 비밀번호 미설정(No Password) |
| LK | 잠김(Locked) |
⭐ useradd만 하고 비밀번호를 안 정한 계정은 shadow 암호 필드가 !!, 상태는 LK입니다.
사용자 정보 DB — /etc/passwd (7필드) ⭐⭐⭐⭐
모든 사용자가 읽을 수 있고 수정은 root만 가능합니다. 콜론(:)으로 구분하며 총 7개 필드입니다.
root:x:0:0:root:/root:/bin/bash
① ② ③ ④ ⑤ ⑥ ⑦
| 필드 | 예시 | 의미 |
| ① | root | 사용자명 |
| ② | x | 암호(실제 해시는 shadow에 저장, 여기엔 x만) |
| ③ | 0 | UID |
| ④ | 0 | GID(기본 그룹) |
| ⑤ | root | 설명(GECOS) |
| ⑥ | /root | 홈 디렉터리 |
| ⑦ | /bin/bash | 로그인 셸 |
⭐ "7번째 필드는?" → 로그인 셸
암호·만료 정보 — /etc/shadow (9필드) ⭐⭐⭐⭐
암호화된 비밀번호와 만료 정보를 저장하는 보안 파일로, root만 접근 가능합니다. 총 9개 필드입니다.
root:$6$U3aD/ZpcBbzy...:0:99999:7:::
| 필드 | 의미 |
| ① | 사용자명(passwd와 1:1 매칭) |
| ② | 암호화된 비밀번호(해시) |
| ③ | 마지막 변경일(1970-01-01부터 경과 일수) |
| ④ | 최소 사용 기간 |
| ⑤ | 최대 사용 기간 |
| ⑥ | 경고 기간 |
| ⑦ | 비활성(유예) 기간 |
| ⑧ | 계정 만료일 |
| ⑨ | 예약 필드(미사용) |
💡 암호 필드의 $6$은 SHA-512($1$=MD5, $5$=SHA-256)입니다.
필드 값이 !!이면 비밀번호 미설정 잠금 상태입니다.
⚠️ 함정: shadow 설명 중 "총 7개 필드"(→9개), "평문 저장"(→해시), "모든 사용자가 읽음"(→root만)은 모두 틀린 보기입니다.
⭐ "일반 사용자가 내용을 볼 수 없는 파일은?" → /etc/shadow (passwd·group·fstab은 일반 사용자도 읽기 가능)
계정 정보 변경 — usermod ⭐⭐⭐
기존 계정을 파일 직접 편집 없이 안전하게 수정합니다.
| 옵션 | 내용 |
| -u | UID 변경 |
| -g | 기본 그룹 변경 |
| -G | 보조 그룹 변경 |
| -d | 홈 경로 변경(passwd의 경로 정보만 수정) |
| -m | -d와 함께 사용, 기존 홈 파일을 새 경로로 이동 |
| -s | 셸 변경 |
| -c | 코멘트 변경 |
| -l (소문자) | 로그인 ID 변경 |
| -L (대문자) | 계정 잠금 |
| -U | 잠금 해제 |
| -e | 만료일 설정 |
⚠️ 함정: 소문자 -l은 ID 변경, 대문자 -L은 잠금입니다.
계정 삭제 — userdel ⭐⭐⭐
| 옵션 | 내용 |
| (없음) | 계정 정보만 삭제, 홈 디렉터리·데이터는 보존 |
| -r | 홈 디렉터리와 메일 스풀까지 함께 삭제 |
| -f | 로그인 중이거나 프로세스가 실행 중이어도 강제 삭제 |
⭐ "홈 디렉터리·메일 스풀까지 함께 삭제하는 옵션은?" → -r (-m은 userdel에 없는 옵션)
패스워드 만료 정책 — chage ⭐⭐⭐⭐
관리자 전용 명령으로 passwd -S보다 훨씬 상세한 정보를 보여 줍니다.
| 옵션 | 내용 |
| -l | 패스워드 정보 목록 출력 |
| -d | 마지막 변경일 수정 |
| -E | 계정 사용 만료 절대 날짜 |
| -m | 변경 후 최소 일수 |
| -M | 최대 일수 |
| -W | 만료 전 경고 기간 |
| -I | 만료 후 계정 잠금 유예 기간 |
⭐ "경고 기간 옵션?" → -W / "계정 만료 절대 날짜?" → -E
계정 옵션 대조표 (암기용)
| 목적 | useradd | usermod | passwd | chage |
| 계정 잠금 | — | -L | -l | — |
| 잠금 해제 | — | -U | -u | — |
| 계정 만료일 | -e | -e | — | -E |
| 유예 기간 | -f | — | -i | -I |
| 최소/최대 사용 | — | — | -n / -x | -m / -M |
| 경고 기간 | — | — | -w | -W |
| 셸 | -s | -s | — | — |
| 홈 경로 | -d(-m 생성) | -d(-m 이동) | — | — |
passwd와 chage는 모두 shadow의 4~7번 필드를 조작하는 서로 다른 도구입니다.
사용자 전환 — su ⭐⭐⭐⭐
로그아웃 없이 다른 사용자로 전환합니다. 사용자명을 생략하면 root로 전환을 시도합니다.
| 옵션 | 설명 |
-, -l, --login |
대상 사용자의 환경 변수를 이용해 로그인(동일 의미) |
| -c 명령 | 명령 하나만 수행하고 종료 |
| -s 셸 | 지정한 셸로 전환 |
su vs su - ⭐⭐⭐⭐ (출제 빈도 높음)
| 구분 | su | su - |
| 작업 경로 | 이전 사용자 위치 유지 | 대상 사용자 홈으로 이동 |
| 환경 변수 | 이전 사용자 환경 유지 | 대상 사용자 환경 로드 |
| 관리자 명령 | 전체 경로 필요(/usr/sbin/useradd) |
바로 사용 가능(useradd) |
⭐ "su와 su -의 가장 큰 차이는?" → 환경 변수 로드 여부
💡 일반 사용자가 root로 su할 때는 root 비밀번호가 필요하지만, root가 다른 사용자로 su할 때는 불필요합니다.
네트워크 진단 3종 — ifconfig, ping, netstat ⭐⭐⭐⭐
장애 진단 흐름은 ifconfig(내 NIC 확인) → ping(통신 확인) → netstat(경로·포트 확인) 순서입니다.
ifconfig
- 인자 없이
ifconfig→ 활성화(UP)된 모든 인터페이스 정보(IP, 넷마스크, 브로드캐스트, MAC 주소, 패킷 통계) ifconfig ens33→ 해당 인터페이스만 출력ifconfig 인터페이스 IP주소→ IP 설정·변경ifconfig 인터페이스 down/up→ 인터페이스 끄기/켜기- lo(루프백): 자기 자신과 통신하는 가상 인터페이스, 127.0.0.1
⚠️ 함정: "ifconfig로 MAC 주소를 확인할 수 없다" → 틀린 설명입니다. MAC도 확인 가능합니다.
💡 ifconfig로 설정한 IP는 재부팅하면 사라지는 임시 설정입니다.
또 net-tools 소속의 구식 도구라 최신 RHEL 계열은 ip addr(iproute2)로 대체되는 추세지만, 시험은 ifconfig 중심입니다.
ping
상대 호스트에 패킷을 보내 통신 가능 여부와 응답 속도를 확인합니다(ICMP Echo 사용). 출력에는 icmp_seq, ttl, time(ms)이 나오고 Ctrl+C로 중단하면 송수신 패킷 수와 손실률이 표시됩니다. 횟수 지정은 ping -c 4 8.8.8.8입니다.
⭐ "ping으로 얻을 수 있는 정보는?"
→ 상대 호스트와의 통신 성공 여부 및 응답 속도 (로그인 사용자·OS 버전·하드웨어 불량 판단은 아님)
netstat
| 옵션 | 내용 |
| -a | 모든 소켓(연결 + 대기) 출력 |
| -t | TCP 연결만 |
| -u | UDP 연결만 |
| -r | 라우팅 테이블 |
추가 옵션: -n(숫자로 표시), -l(LISTEN만), -p(PID/프로그램명), -i(인터페이스 통계), -s(프로토콜 통계)
| State | 의미 |
| LISTEN | 접속 대기 중 |
| ESTABLISHED | 현재 연결됨 |
| TIME_WAIT | 연결 종료 후 잠시 대기 |
⭐ "라우팅 테이블 확인 옵션?" → -r
💡 netstat도 net-tools 소속이며 최신 배포판에서는 ss가 대체합니다(ss -tulnp).
시스템 정보 & 도움말 — hostname, uptime, man ⭐⭐⭐
hostname
- 인자 없이
hostname→ 현재 호스트 이름 출력 hostname 새이름→ 호스트 이름 변경(임시, 재부팅 시 원복)- 영구 변경:
/etc/hostname편집 또는hostnamectl set-hostname 이름
uptime
한 줄로 현재 시각 / 가동 시간 / 접속 사용자 수 / load average(1·5·15분)를 보여 줍니다.
22:26:23 up 14 min, 2 users, load average: 0.00, 0.09, 0.15
⭐ uptime 핵심 = 가동 시간 + 현재 작업 부하. 잔여 메모리는 free, 디스크 사용량은 df입니다.
💡 load average가 CPU 코어 수보다 지속적으로 높으면 과부하 신호입니다(4코어에서 4.0이면 꽉 찬 상태).
man
인터넷 연결 없이 시스템 내장 매뉴얼을 보여 줍니다.
화면은 NAME, SYNOPSIS, DESCRIPTION 순으로 구성되고 q로 종료합니다.
| 섹션 | 내용 |
| 1 | 일반 명령 |
| 5 | 설정 파일 형식 |
| 8 | 시스템 관리 명령 |
man 5 passwd는 /etc/passwd 파일 형식, man passwd는 passwd 명령 설명입니다.
관련 도구로 --help, info, whatis, man -k(apropos)가 있습니다.
⚠️ whereis는 실행 파일·소스·매뉴얼의 위치를 찾는 명령이지 사용법 설명이 아닙니다.
날짜·시간 — date, clock ⭐⭐⭐
| 명령 | 대상 |
| date | 운영체제(시스템) 날짜·시간 출력·설정 |
| clock(hwclock) | 메인보드 하드웨어(RTC) 시간 확인·설정 |
date +%Y-%m-%d: 형식 지정 출력 /date -s "2026-10-01 12:00:00": 시간 설정 /date -u: UTC- clock 옵션:
-r하드웨어 시계 읽기,-w시스템→하드웨어,-s하드웨어→시스템,-uUTC 기준,-l로컬 시간 기준
💡 서버에서 시간이 틀리면 cron 작업 오작동, 인증서·토큰 검사 실패, 로그 추적 곤란 같은 장애가 납니다.
기출 문제 Q&A
Q. useradd 시 초기 환경 파일을 복사해 오는 원본 디렉터리를 나타내는 항목은?
A. SKEL입니다. /etc/skel의 .bashrc 등이 새 홈으로 복사됩니다.
Q. passwd -S로 확인했을 때 계정이 잠긴 상태를 나타내는 것은?
A. LK입니다. NP는 미설정, PS는 정상입니다.
Q. /etc/shadow에 대한 설명으로 알맞은 것은?
A. root만 접근할 수 있다입니다. 9개 필드이며 비밀번호는 해시로 저장됩니다.
Q. /etc/passwd의 7번째 필드는?
A. 로그인 셸입니다.
Q. 사용자 삭제 시 홈 디렉터리와 메일 스풀까지 함께 삭제하는 옵션은?
A. userdel -r입니다.
Q. 패스워드 만료 경고 기간을 설정하는 chage 옵션과, 계정 만료일 절대 날짜 옵션은?
A. 경고는 -W, 만료일은 -E입니다.
Q. su와 su -의 가장 큰 차이는?
A. 환경 변수 로드 여부입니다. su -는 대상 사용자의 환경 변수를 로드하고 홈으로 이동합니다.
Q. 네트워크 장애 시 인터페이스 상태 진단·설정에 가장 먼저 쓰는 명령은? 또 라우팅 테이블을 보는 netstat 옵션은?
A. ifconfig, 그리고 netstat -r입니다.
Q. 부팅 후 경과 시간·접속자 수·평균 작업 부하를 확인하는 명령은?
A. uptime입니다.
Q. 인터넷 연결 없이 명령어의 상세 사용법을 확인하는 명령은?
A. man입니다.
💡 실무에서는?
계정 관리에서 정말 중요한 건 퇴사자 처리와 비밀번호 정책이에요.
저는 퇴사자 계정은 userdel로 바로 지우기보다 usermod -L이나 chage -E 0으로 먼저 잠그고,
데이터 인수인계가 끝난 뒤에 삭제합니다.
userdel -r은 홈 디렉터리까지 날려서 되돌릴 수 없거든요.
보안 점검에서는 chage -l로 만료 정책을, passwd -S나 shadow의 !!로 비밀번호 없는 계정을 찾아냅니다.
또 장애가 나면 ifconfig(ip a) → ping → netstat -tulnp(ss -tulnp) 순서로 보는 게 거의 습관이에요.열려 있는 불필요한 포트를 찾는 것도 보안 점검의 기본이죠.
핵심 정리
✅ useradd: -m(홈 생성) -d(홈 경로) -s(셸) -e(만료일) -u(UID) -g(기본그룹)
✅ /etc/default/useradd(SKEL=초기환경 원본) vs /etc/login.defs(전역 정책, UID_MIN 1000)
✅ passwd -S: PS(정상) NP(미설정) LK(잠김) / -l 잠금, -u 해제
✅ /etc/passwd 7필드(7번째=셸, 읽기 가능) / /etc/shadow 9필드(root만)
✅ usermod: -l(ID변경) -L(잠금) -U(해제) -d/-m(홈 변경/이동) -G(보조그룹)
✅ userdel -r(홈·메일 삭제) -f(강제)
✅ chage: -l(목록) -E(계정만료) -m/-M(최소/최대) -W(경고) -I(유예)
✅ su(환경 유지) vs su -(환경 변수 로드+홈 이동)
✅ ifconfig(NIC, MAC 확인 가능) / ping(통신 여부·속도) / netstat -a -t -u -r
✅ hostname(이름) / uptime(가동시간+load average) / man(오프라인 매뉴얼)
✅ date(시스템 시간) vs clock(하드웨어 시간)
다음 편에서는 1차 예상문제로 지금까지 배운 1차 범위를 총정리합니다!
궁금한 점은 댓글로 남겨주세요!
'자격증 정복 > 리눅스마스터' 카테고리의 다른 글
| 리눅스마스터 2급 필기 07 — 파일 소유권·권한·그룹 관리 (chown·chmod·umask·특수 권한) [2차 1과목 리눅스 운영 및 관리] (0) | 2026.10.07 |
|---|---|
| 리눅스마스터 2급 필기 06 — 1차 리눅스 일반 예상문제 총정리 (02~05편 복습) [1차 리눅스 일반] (0) | 2026.10.05 |
| 리눅스마스터 2급 필기 04 — 기본 명령어 ① 파일·디렉토리 조작 [1차 리눅스 일반] (0) | 2026.10.03 |
| 리눅스마스터 2급 필기 03 — 리눅스 설치 (설치 유형·파티션·파일시스템·GRUB2) [1차 리눅스 일반] (0) | 2026.10.03 |
| 리눅스마스터 2급 필기 02 — 리눅스의 이해 (역사·배포판·GPL 등 라이선스) [1차 리눅스 일반] (0) | 2026.10.01 |