CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
    • 1.셸 첫걸음: 명령 한 줄을 읽는 법
    • 2.디렉터리와 파일 다루기
    • 3.내용 보기와 찾기
    • 4.사용자와 계정 관리
    • 5.Week 3 종합 복습: 명령어 한 장 정리
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 3/Day 4

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 3 · Day 4읽기 약 8분
핵심 정리
  • 계정 정보는 /etc/passwd 에, 비밀번호는 /etc/shadow 에 따로 있다. 분리한 이유는 보안이다.
  • /etc/passwd는 콜론(:)으로 나뉜 7개 필드다. UID·GID·홈 디렉터리·로그인 셸이 여기 들어간다.
  • UID 0은 root다. 이름이 root가 아니어도 UID가 0이면 관리자 권한을 갖는다.
  • 계정 명령 3종: useradd(생성) · usermod(수정) · userdel(삭제).
  • su는 사용자 전환, sudo는 한 명령만 관리자로 실행한다. sudo 설정은 /etc/sudoers에 있다.

Day 4 - 사용자와 계정 관리

계정 정보는 어디에 있나

파일담는 것권한
/etc/passwd계정 기본 정보누구나 읽을 수 있다
/etc/shadow암호화된 비밀번호와 만료 정책root만 읽을 수 있다
/etc/group그룹 정보누구나 읽을 수 있다

왜 나눴나: /etc/passwd는 여러 프로그램이 사용자 이름·UID를 조회해야 해서 누구나 읽을 수 있어야 한다. 그런데 비밀번호까지 거기 있으면 누구나 해시를 가져가 크래킹할 수 있다. 그래서 비밀번호만 /etc/shadow로 떼어내 root 전용으로 막았다.

/etc/passwd 한 줄 읽기

   user:x:1000:1000:Test User:/home/user:/bin/bash
     │  │  │    │       │          │          │
     │  │  │    │       │          │          └── ⑦ 로그인 셸
     │  │  │    │       │          └───────────── ⑥ 홈 디렉터리
     │  │  │    │       └──────────────────────── ⑤ 설명(코멘트)
     │  │  │    └──────────────────────────────── ④ GID (기본 그룹)
     │  │  └───────────────────────────────────── ③ UID
     │  └──────────────────────────────────────── ② 비밀번호 자리 (x = shadow 에 있음)
     └─────────────────────────────────────────── ① 사용자 이름
  • 필드는 7개, 구분자는 콜론(:) — 이 두 가지를 묻는 문항이 있다.
  • 두 번째 필드의 x 는 "실제 비밀번호는 /etc/shadow에 있다"는 표시다.
  • 다섯 번째 설명 필드는 비어 있어도 된다. 그래도 콜론은 남으므로(user:x:1000:1000::/home/user:/bin/bash) 필드 수는 언제나 7이다.

/etc/shadow 한 줄 읽기

   alice:$6$Xy3k...:19968:0:99999:7:::
     │      │         │   │   │   │ │││
     │      │         │   │   │   │ ││└─ ⑨ 예약(사용 안 함)
     │      │         │   │   │   │ │└── ⑧ 계정 만료일
     │      │         │   │   │   │ └─── ⑦ 만료 후 유예(비활성) 일수
     │      │         │   │   │   └───── ⑥ 만료 전 경고 일수
     │      │         │   │   └───────── ⑤ 최대 사용 일수
     │      │         │   └───────────── ④ 최소 사용 일수
     │      │         └───────────────── ③ 마지막으로 바꾼 날
     │      └─────────────────────────── ② 암호화된 비밀번호
     └────────────────────────────────── ① 사용자 이름
  • /etc/shadow는 9개 필드다. /etc/passwd의 7개와 짝으로 묻는다.
  • ③의 날짜는 연·월·일이 아니라 1970년 1월 1일부터 센 일수로 적힌다.
  • ②가 $6$로 시작하면 SHA-512 방식으로 암호화됐다는 뜻이다($1$은 MD5, $5$는 SHA-256).
  • ② 자리가 !·!!·*이면 비밀번호로 로그인할 수 없는 계정이다. 막 만들어 비밀번호를 아직 정하지 않았거나, 잠갔거나, 시스템 계정인 경우다.

/etc/group 한 줄 읽기

   dev:x:1500:alice,bob
    │  │   │      │
    │  │   │      └── ④ 구성원 목록 (쉼표로 구분)
    │  │   └───────── ③ GID
    │  └───────────── ② 그룹 비밀번호 자리
    └──────────────── ① 그룹 이름
파일필드 수구분자
/etc/passwd7:
/etc/shadow9:
/etc/group4: (구성원끼리는 ,)

함정: /etc/group의 ④에는 그 그룹을 보조 그룹으로 가진 사용자만 적힌다. 그 그룹이 기본 그룹인 사용자는 여기 나타나지 않는다 — 그 관계는 /etc/passwd의 GID 필드에 적혀 있기 때문이다.

UID 규칙

UID뜻
0root — 이름과 무관하게 관리자 권한
1~999시스템 계정(데몬용)
1000 이상일반 사용자 (배포판에 따라 500부터인 경우도 있다)
  • UID 0이 root라는 점이 핵심이다. 계정 이름을 바꿔도 UID가 0이면 root다.
  • 로그인시키지 않을 계정은 셸을 /sbin/nologin 이나 /bin/false로 지정한다.

계정 다루기

명령하는 일
useradd 이름계정 생성
useradd -m 이름홈 디렉터리까지 생성
useradd -u 1500 -g dev 이름UID·기본 그룹 지정
passwd 이름비밀번호 설정·변경
usermod -aG 그룹 이름보조 그룹 추가
usermod -L / -U계정 잠금 / 해제
userdel 이름계정 삭제 (홈은 남는다)
userdel -r 이름홈 디렉터리까지 삭제
id 이름UID·GID·소속 그룹 확인
who / w현재 접속한 사용자
sudo useradd -m alice        # 홈 디렉터리와 함께 생성
sudo passwd alice            # 비밀번호 설정
id alice                     # uid=1001(alice) gid=1001(alice) ...
sudo usermod -aG wheel alice # wheel 그룹에 추가
sudo userdel -r alice        # 홈까지 삭제

함정 둘. ① useradd는 홈 디렉터리를 자동으로 만들지 않는 경우가 있다 — -m이 그 역할이다(배포판 기본 설정에 따라 다르다). ② usermod -G만 쓰면 기존 보조 그룹이 날아간다. 추가하려면 반드시 -aG 를 쓴다.

useradd 옵션은 passwd 필드와 짝이다

useradd의 옵션은 결국 /etc/passwd의 어느 필드를 채울지 정하는 것이다.

옵션채우는 것passwd 필드
-u UID사용자 번호③
-g 그룹기본 그룹④
-G 그룹,그룹보조 그룹(/etc/group에 기록)
-c "설명"설명⑤
-d 경로홈 디렉터리 위치⑥
-s 셸로그인 셸⑦
-e 날짜계정 만료일(/etc/shadow ⑧)
sudo useradd -m -u 1500 -g dev -G wheel -c "Kim" -d /home/kim -s /bin/bash kim
grep kim /etc/passwd
# kim:x:1500:1500:Kim:/home/kim:/bin/bash
  • 소문자 -g는 기본 그룹(하나), 대문자 -G는 보조 그룹(여러 개) 이다. usermod에서도 같은 뜻이다.
  • 옵션을 주지 않은 항목은 기본값으로 채워진다. 그 기본값이 적힌 곳이 따로 있다.
파일담는 것
/etc/default/useradd기본 홈 위치·기본 셸 등 (useradd -D로 확인)
/etc/login.defsUID 범위, 비밀번호 최대 사용 일수 등 정책
/etc/skel새 홈 디렉터리에 복사될 기본 파일 (.bashrc 등)
  • 계정을 만든 직후에는 비밀번호가 없어 로그인할 수 없다. passwd 이름으로 정해 줘야 비로소 쓸 수 있다.

계정을 잠그는 여러 방법

명령하는 일
passwd -l 이름비밀번호 잠금 (lock)
passwd -u 이름잠금 해제 (unlock)
passwd -d 이름비밀번호 삭제 — 비밀번호 없이 로그인 가능해져 위험
passwd -S 이름비밀번호 상태 확인
usermod -L / -U계정 잠금 / 해제
usermod -s /sbin/nologin 이름로그인 셸을 바꿔 로그인 자체를 막음
  • 잠금은 /etc/shadow의 암호 앞에 !를 붙여 어떤 비밀번호도 맞지 않게 만드는 방식이다. 계정과 파일은 그대로 남는다.
  • 일반 사용자는 passwd로 자기 비밀번호만 바꿀 수 있고, 다른 계정의 비밀번호와 -l·-u·-d는 root만 쓸 수 있다.
  • usermod의 나머지 옵션은 useradd와 같다 — -s(셸), -d(홈), -g(기본 그룹), -c(설명). 로그인 이름을 바꾸는 -l 새이름만 따로 기억한다(대문자 -L은 잠금).

그룹

구분설명
기본 그룹(primary)/etc/passwd의 GID 필드. 파일을 만들면 이 그룹이 붙는다
보조 그룹(secondary)/etc/group에 이름이 올라간 그룹. 여러 개 가능
명령하는 일
groupadd 이름그룹 생성
groupdel 이름그룹 삭제
groups 사용자소속 그룹 확인
groupadd -g 1500 이름GID를 지정해 생성
groupmod -n 새이름 옛이름그룹 이름 변경
gpasswd -a 사용자 그룹그룹에 사용자 추가
gpasswd -d 사용자 그룹그룹에서 사용자 제거
$ id alice
uid=1001(alice) gid=1001(alice) groups=1001(alice),10(wheel),1500(dev)
     │              │                 │
     │              │                 └── 소속 그룹 전부 (기본 + 보조)
     │              └──────────────────── 기본 그룹
     └─────────────────────────────────── 사용자 번호
  • 계정을 만들 때 그룹을 지정하지 않으면 사용자와 같은 이름의 그룹이 함께 만들어져 기본 그룹이 되는 것이 일반적이다. 위에서 alice의 기본 그룹이 alice인 이유다.
  • 보조 그룹을 추가한 뒤에는 다시 로그인해야 적용된다. 이미 열려 있는 셸은 로그인할 때의 그룹 목록을 그대로 갖고 있다.
  • 어떤 사용자의 기본 그룹으로 쓰이고 있는 그룹은 groupdel로 지워지지 않는다.

누가 접속해 있나

명령보여 주는 것
whoami지금 권한을 쓰고 있는 사용자 이름
who현재 로그인한 사용자와 터미널, 접속 시각
wwho에 더해 무엇을 하고 있는지와 시스템 부하
last과거 로그인 기록
idUID·GID·소속 그룹
$ who
user     pts/0        2026-09-03 09:00 (192.168.0.10)
$ su -
Password:
# whoami
root
# who am i
user     pts/0        2026-09-03 09:00 (192.168.0.10)
  • su로 전환한 뒤 whoami는 바뀐 사용자(root)를, who am i는 처음 로그인한 사용자(user)를 보여 준다. 띄어쓰기 하나로 답이 달라진다.

권한을 잠깐 올리기 — su와 sudo

구분susudo
하는 일사용자 자체를 전환한 명령만 다른 권한으로 실행
필요한 비밀번호대상 계정의 비밀번호자기 자신의 비밀번호
로그남기 어렵다누가 무엇을 했는지 기록된다
설정 파일—/etc/sudoers
su          # root 로 전환 (환경변수는 그대로)
su -        # root 로 전환 + root 의 환경까지 로드
sudo 명령    # 그 명령 하나만 root 권한으로
  • su -의 하이픈이 중요하다. 붙이면 대상 사용자로 로그인한 것처럼 환경 변수·작업 디렉터리까지 바뀐다.
  • sudo가 권장되는 이유는 최소 권한 원칙과 감사 추적 때문이다. root 비밀번호를 여러 사람이 공유할 필요도 없다.
  • /etc/sudoers는 visudo로 편집한다. 문법 오류를 검사해 주기 때문에, 직접 편집하다 망가뜨리면 sudo 자체를 못 쓰게 된다.
$ pwd
/home/user
$ su
Password:
# pwd
/home/user          ← su : 위치와 환경이 그대로
# exit
$ su -
Password:
# pwd
/root               ← su - : root 의 홈으로, root 의 환경으로
쓰는 법뜻
su사용자 이름을 생략하면 root 로 전환
su - alicealice로 전환하며 alice의 환경까지
su -c "명령" alice전환하지 않고 그 명령 하나만 alice 권한으로
sudo -u alice 명령root가 아닌 alice 권한으로 명령 실행
sudo -l내가 sudo로 실행할 수 있는 명령 목록
exit전환한 셸을 끝내고 원래 사용자로 복귀
  • root가 su로 다른 사용자가 될 때는 비밀번호를 묻지 않는다. 일반 사용자가 전환할 때만 대상 계정의 비밀번호가 필요하다.
  • 모든 사용자가 sudo를 쓸 수 있는 것은 아니다. /etc/sudoers에 허용된 사용자·그룹만 가능하다.
root    ALL=(ALL)       ALL
%wheel  ALL=(ALL)       ALL
  • 앞의 %는 그룹이라는 표시다. 위 두 번째 줄은 "wheel 그룹의 구성원은 모든 명령을 sudo로 실행할 수 있다"로 읽는다.
  • 관리자 그룹의 이름은 배포판마다 다르다 — RedHat 계열은 wheel, Debian·Ubuntu 계열은 sudo 그룹이다. 그래서 usermod -aG wheel alice가 곧 "alice에게 sudo 권한을 준다"는 뜻이 된다.

내일은 이번 주에 익힌 명령들을 한 장으로 묶어 정리한다.

📖 용어

  • /etc/passwd : 사용자 계정의 기본 정보를 담은 파일. 콜론으로 구분된 7개 필드.
  • /etc/shadow : 암호화된 비밀번호와 만료 정책을 담은 파일. root만 읽을 수 있다.
  • UID : 사용자 식별 번호. 0은 root, 1000 이상이 일반 사용자다.
  • GID : 그룹 식별 번호.
  • 기본 그룹 : /etc/passwd에 기록된 그룹. 새로 만든 파일의 그룹이 된다.
  • 보조 그룹 : 추가로 속한 그룹. usermod -aG로 더한다.
  • su : 다른 사용자로 전환하는 명령. 대상 계정의 비밀번호가 필요하다.
  • sudo : 지정한 명령 하나만 관리자 권한으로 실행하는 명령. 자기 비밀번호를 쓴다.
  • visudo : /etc/sudoers를 문법 검사와 함께 안전하게 편집하는 명령.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 /etc/passwd 파일의 필드 구분자와 필드 개수로 알맞은 것은?

문제 2

다음 중 root 계정을 나타내는 UID 값으로 알맞은 것은?

문제 3

다음 중 사용자의 암호화된 비밀번호가 저장되는 파일로 알맞은 것은?

문제 4

다음 중 기존 보조 그룹을 유지하면서 사용자를 새 그룹에 추가하는 명령으로 알맞은 것은?

문제 5

다음 중 su와 sudo의 차이에 대한 설명으로 알맞은 것은?

이전내용 보기와 찾기Week 3 · Day 3다음 Week 3 종합 복습: 명령어 한 장 정리Week 3 · Day 5

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 계정 정보는 어디에 있나
  • etc/passwd 한 줄 읽기
  • etc/shadow 한 줄 읽기
  • etc/group 한 줄 읽기
  • UID 규칙
  • 계정 다루기
  • useradd 옵션은 passwd 필드와 짝이다
  • 계정을 잠그는 여러 방법
  • 그룹
  • 누가 접속해 있나
  • 권한을 잠깐 올리기 — su와 sudo
  • 용어
  • 연습 문제