정보공유 목록으로
#지식공유

Day 3. passwd/group 기반 운영 계정 감사 기초

<h2>학습 목표</h2><p>운영 서버에서 계정 상태를 점검할 때 <code data-backticks="1">/etc/passwd</code>, <code data-backticks="1">/etc/group</code>, <code data-backticks="1">/etc/shadow</code>를 어떻게 읽는지 학습합니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>계정 감사는 보안 점검의 출발점입니다. 누가 로그인할 수 있고, 어떤 그룹 권한을 갖는지 알아야 합니다.</p><div contenteditable="false"><hr></div><h2>왜 계정 감사가 필요한가</h2><p>오래된 계정, 퇴사자 계정, 임시 계정이 남아 있으면 서버 접근 경로가 늘어납니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>권한이 높은 그룹에 불필요한 사용자가 포함되어 있으면 작은 실수가 큰 장애로 이어질 수 있습니다.</p><div contenteditable="false"><hr></div><h2>1) 로그인 가능한 계정 추출</h2><div data-language="bash" class="toastui-editor-ww-code-block"><pre><code data-language="bash">awk -F: '($7=="/bin/bash" || $7=="/bin/sh"){print $1, $3, $7}' /etc/passwd</code></pre></div><h3>/etc/passwd</h3><p><code data-backticks="1">/etc/passwd</code>는 계정 기본 정보를 저장하는 파일입니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>각 줄은 <code data-backticks="1">:</code>로 구분되며, 사용자명, UID, GID, 홈 디렉터리, 로그인 셸 같은 정보가 들어 있습니다.</p><h3>awk -F:</h3><p><code data-backticks="1">awk -F:</code>는 콜론을 구분자로 사용하겠다는 의미입니다.</p><p><br class="ProseMirror-trailingBreak"></p><p><code>/etc/passwd</code>의 포맷을 보면 <code data-backticks="1">$1</code>은 사용자명, <code data-backticks="1">$3</code>은 UID, <code data-backticks="1">$7</code>은 로그인 셸입니다.</p><h3>/bin/bash 또는 /bin/sh</h3><p>로그인 셸이 <code data-backticks="1">/bin/bash</code> 또는 <code data-backticks="1">/bin/sh</code>이면 대화형 로그인 가능성이 있습니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>반대로 <code data-backticks="1">/sbin/nologin</code>이나 <code data-backticks="1">/bin/false</code>이면 일반적으로 로그인 목적 계정이 아닙니다.</p><div contenteditable="false"><hr></div><h2>2) 그룹 소속 확인</h2><div data-language="bash" class="toastui-editor-ww-code-block"><pre><code data-language="bash">id appuser</code></pre></div><h3>id</h3><p><code data-backticks="1">id</code>는 특정 사용자의 UID, GID, 보조 그룹 목록을 보여줍니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>운영에서 중요한 것은 보조 그룹입니다. 예를 들어 <code data-backticks="1">wheel</code>, <code data-backticks="1">docker</code>, <code data-backticks="1">adm</code> 같은 그룹은 권한이 강할 수 있으므로 포함 여부를 주의해서 봐야 합니다.</p><div contenteditable="false"><hr></div><h2>3) 패스워드 상태와 만료 정책 확인</h2><div data-language="bash" class="toastui-editor-ww-code-block"><pre><code data-language="bash">passwd -S appuser
chage -l appuser</code></pre></div><h3>passwd -S</h3><p><code data-backticks="1">passwd -S</code>는 계정의 패스워드 상태를 요약해서 보여줍니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>잠김 상태인지, 패스워드가 설정되어 있는지 확인할 때 사용합니다.</p><h3>chage -l</h3><p><code data-backticks="1">chage -l</code>은 패스워드 만료일, 최소 사용일, 최대 사용일, 경고일을 보여줍니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>운영 계정은 패스워드 정책이 없으면 장기간 같은 비밀번호를 사용할 수 있어 위험합니다.</p><div contenteditable="false"><hr></div><h2>신규직원 실습 절차</h2><ol><li><p>로그인 가능한 계정을 추출합니다.</p></li><li><p>UID와 셸 기준으로 이상 계정을 분류합니다.</p></li><li><p>그룹 소속과 패스워드 정책을 확인합니다.</p></li><li><p>조치 대상 목록을 파일로 저장합니다.</p></li></ol><div contenteditable="false"><hr></div><h2>연계실습</h2><ul><li><p>연계실습 텍스트: passwd/group 기반 계정 감사</p></li><li><p>실습 바로 시작: <a href="https://learnix.kr/server_cbt?id=215&amp;amp;from=%2Flearn_linux">문제 215 실습 시작하기 →</a></p></li></ul><div contenteditable="false"><hr></div>

<!-- publish_key:rocky8-day03-post -->

---

## 연계 실습

이 글에서 다룬 내용을 직접 명령어로 쳐 보면 훨씬 오래 남습니다.

- [리눅스마스터 2급 실기 계정 관리 문제 →](https://learnix.kr/linuxmaster)
- [RHCSA 사용자·권한 실습 →](https://learnix.kr/rhcsa)

댓글 0

등록된 댓글이 없습니다.