CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
리눅스마스터 1급 · 1급리눅스마스터 1급
  • Week 1
    • 1.운영체제와 리눅스: 커널이 하는 일
    • 2.자유 소프트웨어와 배포판: 라이선스가 만든 생태계
    • 3.설치와 부팅: 전원을 켜는 순간부터
    • 4.파일시스템 구조와 파일의 종류: 모든 것은 파일이다
    • 5.Week 1 종합 복습: 개념을 꿰뚫는 시간
  • Week 2
  • Week 3
  • Week 4
    • 1.계정 파일 4종: /etc/passwd · /etc/shadow · /etc/group · /etc/gshadow 필드 해부
    • 2.계정 관리 명령과 권한 상승: useradd부터 sudo까지
    • 3.권한의 산수: rwx · 8진수 chmod · 소유권 · umask 계산
    • 4.특수 권한과 ACL: SetUID · SetGID · Sticky bit · getfacl/setfacl
    • 5.Week 4 종합 복습: 계정·권한 체계를 한 장으로 꿰기
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
  • Week 13
  • Week 14
합격 후기

© CertNote · 주간랩스

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

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

리눅스마스터 1급· AssociateWeek 4 · Day 5읽기 약 12분
핵심 정리
  • 리눅스의 모든 접근 제어는 "어느 파일의 몇 번째 필드/비트가 무엇인가"로 환원된다.
  • 계정 파일 필드 수 7-9-4-4, 권한 644-400-644-400. UID 0 = root(이름 아닌 번호로 판정).
  • usermod -G 단독은 기존 보조 그룹을 날린다 — 반드시 -aG.
  • umask 022 → 파일 644, 디렉터리 755. 출발점이 666/777로 다르기 때문이다.
  • 보안 점검 3종: UID 0 계정 · 비정상 SetUID 바이너리 · /tmp Sticky 누락.

Day 5 - Week 4 종합 복습: 계정·권한 체계를 한 장으로 꿰기

계정 파일 4종 — 필드와 권한 복습

이번 주는 리눅스 보안의 뼈대를 다뤘다. 네 조각(계정 파일 → 관리 명령 → 권한 산수 → 특수 권한·ACL)을 하나의 그림으로 잇는다.

파일권한필드 수핵심 필드짝
/etc/passwd6447UID(3) · GID(4) · 홈(6) · 셸(7)shadow
/etc/shadow400/6409해시(2) · LastChange(3) · Min(4) · Max(5)passwd
/etc/group6444GID(3) · 보조멤버(4)gshadow
/etc/gshadow4004그룹암호(2) · 관리자(3)group

기억 고정 포인트:

  • passwd 7필드, shadow 9필드, group/gshadow 각 4필드
  • UID 0 = root(이름 아닌 번호로 판정)
  • shadow 날짜 필드 = 1970-01-01부터의 일수
  • 기본 그룹은 passwd(GID), 보조 그룹은 group(멤버 목록)

passwd↔shadow, group↔gshadow는 "공개(644, 신원/소속)와 비밀(400, 해시/정책)"로 분리된 짝이다. 정합성은 pwck(passwd/shadow), grpck(group/gshadow)로 검사한다.

계정 관리 명령 — 옵션과 필드 대응

명령핵심 옵션주의 함정
useradd-u -g -G -d -s -m -c-g(기본,하나) vs -G(보조,여럿)
usermod-aG(추가) / -G(교체)-a 빠뜨리면 기존 보조 그룹 소실
userdel-r(홈까지 삭제)옵션 없으면 홈은 남음
passwd-l(잠금) -u -e(만료) -d(삭제)-l(차단)과 -d(무암호)는 정반대
chage-M(Max) -m(Min) -W -E대문자 M=Max, 소문자 m=Min
gpasswd-a -d -Agroup+gshadow 동시 갱신

⚠️ 함정 복습: usermod -G(단독)는 기존 보조 그룹을 날리고 교체한다. 반드시 -aG. 이건 매주 시험에 나온다고 봐도 된다.

su vs sudo — 권한 상승 두 모델

구분susudo
요구 암호대상 사용자 암호자기 자신 암호
범위전환 후 그 사람으로 계속단일 명령만 위임
설정 파일없음/etc/sudoers (visudo로 편집)
감사어려움(공유 암호)로그에 남음(/var/log/secure)
로그인 셸su - (환경 완전 적용)sudo -i

su -의 하이픈 = 로그인 셸(대상 환경 완전 적용). sudoers는 %로 그룹 지정(Red Hat=wheel, Ubuntu=sudo). 편집은 항상 visudo(문법 검사+잠금).

권한 산수 — rwx·8진수·umask

변환규칙
가중치r=4, w=2, x=1
순서owner→group→other, 각 r→w→x
644rw-r--r-- (일반 파일)
755rwxr-xr-x (실행/디렉터리)
600rw------- (비밀 파일)
umask 파일666 − umask
umask 디렉터리777 − umask

⚠️ 함정 복습: umask 022 → 파일 644, 디렉터리 755. 파일은 666, 디렉터리는 777에서 출발(파일은 x 기본 제외). umask가 클수록 더 제한적.

디렉터리에서 x=진입(cd), 파일 삭제는 파일이 아닌 디렉터리의 w 권한. chown(소유자 변경)은 root만 가능.

특수 권한·ACL — 9비트를 넘어서

항목8진수표시효과
SetUID4owner x→s소유자 권한 실행(passwd=4755)
SetGID2group x→s그룹 실행/디렉터리 그룹 상속
Sticky1other x→t공유 디렉터리 삭제 보호(/tmp=1777)
ACLsetfacl -mls의 +개별 사용자/그룹 권한

SetUID 셸 스크립트는 커널이 무시(보안). SetUID 탐색=find / -perm -4000. ACL 있으면 ls -l 권한 끝에 +. mask가 named user/group 권한의 상한.

자주 엮이는 시나리오 — 통합 사고

시나리오 A — 새 협업 디렉터리 구축

groupadd devteam
usermod -aG devteam alice
usermod -aG devteam bob
mkdir /shared && chgrp devteam /shared
chmod 2775 /shared          # SetGID: 모든 새 파일이 devteam 그룹 상속
  • SetGID(2) + 그룹 쓰기(7의 w)로 팀원이 서로 파일 편집 가능. Day 2(그룹)+Day 3(권한)+Day 4(SetGID) 통합.

시나리오 B — 신규 직원 계정 + 첫 로그인 강제 변경

useradd -m -s /bin/bash -c "New Hire" newbie
passwd newbie               # 초기 암호 설정
chage -d 0 newbie           # 다음 로그인 시 암호 강제 변경
chage -M 90 -W 7 newbie     # 90일마다 변경, 7일 전 경고
  • Day 1(shadow 필드)+Day 2(useradd/passwd/chage) 통합.

시나리오 C — 보안 점검

awk -F: '$3==0{print $1}' /etc/passwd   # UID 0 계정(root만 정상)
find / -perm -4000 -type f 2>/dev/null  # 의심스러운 SetUID
ls -ld /tmp                              # Sticky 확인

실무 침해 사고 분석의 첫 단계가 정확히 이 세 가지다 — UID 0 백도어 계정, 비정상 SetUID 바이너리, /tmp의 Sticky 누락. 한 줄짜리 명령으로 시스템 보안의 핵심 구멍을 즉시 점검할 수 있다는 점에서, 이번 주 내용은 시험을 넘어 실무 보안의 기초다.

📖 용어

  • UID 0 : root 권한의 정의. 커널은 계정 이름이 아니라 이 번호만 본다.
  • passwd↔shadow / group↔gshadow : 공개 파일(신원·소속)과 비밀 파일(해시·정책)로 갈라진 두 쌍.
  • pwck / grpck : 두 쌍의 정합성을 검사하는 명령.
  • -g vs -G : 기본 그룹 하나를 정하는 옵션과 보조 그룹 여럿을 정하는 옵션.
  • usermod -aG : 기존 보조 그룹을 유지한 채 추가. -a를 빠뜨리면 통째로 교체된다.
  • chage -d 0 : 마지막 변경일을 0으로 만들어 다음 로그인 때 암호 변경을 강제하는 기법.
  • su -의 하이픈 : 대상 사용자의 로그인 환경(PATH·HOME·프로파일)까지 완전히 적용하라는 표시.
  • visudo : sudoers를 문법 검사와 잠금을 걸고 편집하는 전용 명령.
  • wheel / sudo 그룹 : 레드햇 계열과 우분투 계열의 기본 관리자 그룹.
  • umask : 새로 만드는 파일·디렉터리에서 깎아낼 권한을 정하는 마스크. 클수록 제한적이다.
  • 디렉터리의 w : 그 안의 파일을 지울 수 있는 권한. 파일 자체 권한과 무관하다.
  • SetUID / SetGID / Sticky : 소유자 권한 실행 / 그룹 실행·그룹 상속 / 공유 디렉터리 삭제 보호.
  • ACL mask : 이름이 붙은 ACL 항목이 가질 수 있는 권한의 상한선.

📝 연습 문제

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

문제 1

/etc/shadow의 9개 필드 중 "암호를 마지막으로 변경한 후 다시 변경할 수 있을 때까지의 최소 일수"를 나타내는 필드는?

문제 2

권한이 rwxr-x---인 파일을 8진수로 올바르게 표현하고, 그 의미를 바르게 설명한 것은?

문제 3

사용자 alice를 기존 보조 그룹을 유지한 채 wheel 그룹에 추가하려 한다. 올바른 명령은?

문제 4

umask 값이 027일 때 새로 생성되는 디렉터리의 권한은?

문제 5

su와 sudo에 대한 설명으로 옳은 것은?

문제 6

/tmp 디렉터리의 권한이 1777(drwxrwxrwt)인 이유로 가장 적절한 것은?

문제 7

실행 파일 /usr/bin/passwd에 SetUID가 필요한 이유로 가장 정확한 것은?

문제 8

파일 data.csv에 대해 ls -l 결과가 -rw-rw-r--+로 표시되었다. 끝의 + 기호가 의미하는 것과, 이를 확인하는 명령으로 옳은 것은?

문제 9

보안 점검 중 awk -F: '$3==0 {print $1}' /etc/passwd를 실행했더니 root와 backdoor 두 개가 출력되었다. 이 결과의 의미는?

문제 10

디렉터리 /share에 chmod 2770 /share를 적용하고 그룹을 team으로 설정했다. 이 설정의 효과로 가장 정확한 것은?

문제 11

신규 사용자 계정을 생성하면서 홈 디렉터리를 만들고 /etc/skel의 기본 설정 파일을 복사하려 한다. 올바른 명령은?

문제 12

passwd -l user1과 passwd -d user1의 차이로 옳은 것은?

이전특수 권한과 ACL: SetUID · SetGID · Sticky bit · getfacl/setfaclWeek 4 · Day 4다음 파일시스템 종류와 구조: ext2/3/4 · xfs · btrfs · 저널링 · inode와 블록Week 5 · Day 1

참고 공식 자료

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

이 페이지

  • 계정 파일 4종 — 필드와 권한 복습
  • 계정 관리 명령 — 옵션과 필드 대응
  • su vs sudo — 권한 상승 두 모델
  • 권한 산수 — rwx·8진수·umask
  • 특수 권한·ACL — 9비트를 넘어서
  • 자주 엮이는 시나리오 — 통합 사고
  • 용어
  • 연습 문제