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

Day 2. 파일·디렉터리 권한 표준 적용

<h2>학습 목표</h2><p>파일과 디렉터리 권한을 변경하기 전에 소유자, 그룹, 접근 대상을 먼저 설계하는 방법을 학습합니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>권한 관리는 <code>chmod</code> 숫자를 외우는 작업이 아니라, 누가 어떤 경로에 접근해야 하는지 정리하는 작업입니다.</p><div contenteditable="false"><hr></div><h2>왜 chmod부터 치면 위험한가</h2><p>장애 상황에서 급하게 <code>chmod -R 777</code>을 적용하면 당장은 접근 문제가 사라질 수 있습니다.</p><p><br class="ProseMirror-trailingBreak"></p><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">chown -R appuser:appgrp /srv/app</code></pre></div><h3>chown</h3><p><code>chown</code>은 파일이나 디렉터리의 소유자와 그룹을 변경하는 명령어입니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>여기서 <code>appuser:appgrp</code>는 소유자를 <code>appuser</code>, 그룹을 <code>appgrp</code>로 설정한다는 의미입니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>운영에서는 애플리케이션 파일을 root가 계속 소유하게 두지 않는 경우가 많습니다. 서비스 계정이 읽어야 할 파일은 서비스 계정 기준으로 소유권을 정리해야 합니다.</p><h3>-R 옵션</h3><p><code>-R</code>은 하위 경로까지 재귀적으로 적용합니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>편리하지만 위험합니다. 잘못된 경로에 적용하면 많은 파일 권한이 한 번에 바뀝니다. 운영에서는 적용 전 <code>pwd</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">find /srv/app -type d -exec chmod 750 {} ;
find /srv/app -type f -exec chmod 640 {} ;</code></pre></div><h3>find -type d</h3><p><code>find /srv/app -type d</code>는 <code>/srv/app</code> 아래의 디렉터리만 찾습니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>디렉터리는 들어가기 위해 실행 권한이 필요합니다. 그래서 파일과 같은 기준으로 권한을 주면 접근 문제가 생길 수 있습니다.</p><h3>chmod 750</h3><p><code>750</code>은 소유자는 읽기/쓰기/실행, 그룹은 읽기/실행, 기타 사용자는 접근 불가라는 의미입니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>운영 디렉터리는 보통 아무나 들어오지 못하게 제한합니다.</p><h3>find -type f</h3><p><code>find /srv/app -type f</code>는 일반 파일만 찾습니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>일반 설정 파일이나 문서 파일은 실행 권한이 필요하지 않습니다.</p><h3>chmod 640</h3><p><code>640</code>은 소유자는 읽기/쓰기, 그룹은 읽기, 기타 사용자는 접근 불가입니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>설정 파일을 보호하면서 서비스 그룹에는 읽기 권한을 줄 때 자주 쓰는 형태입니다.</p><div contenteditable="false"><hr></div><h2>3) 실행 파일만 별도 적용</h2><div data-language="bash" class="toastui-editor-ww-code-block"><pre><code data-language="bash">chmod 750 /srv/app/bin/*.sh</code></pre></div><p>스크립트 파일은 실행 권한이 필요합니다.</p><p><br class="ProseMirror-trailingBreak"></p><p>하지만 모든 파일에 실행 권한을 주면 보안상 좋지 않습니다. 실행되어야 하는 파일만 골라 권한을 부여하는 것이 원칙입니다.</p><div contenteditable="false"><hr></div><h2>신규직원 실습 절차</h2><ol><li><p>소유자와 그룹 기준을 먼저 정합니다.</p></li><li><p>디렉터리와 일반 파일 권한을 분리 적용합니다.</p></li><li><p>실행 파일은 별도로 관리합니다.</p></li><li><p>서비스 계정 기준으로 실제 접근 테스트를 합니다.</p></li></ol><div contenteditable="false"><hr></div><h2>연계실습</h2><ul><li><p>연계실습 텍스트: 파일·디렉터리 권한 표준값 적용</p></li><li><p>실습 바로 시작: <a href="https://learnix.kr/server_cbt?id=214&amp;amp;amp;amp;from=%2Flearn_linux">문제 214 실습 시작하기 →</a></p></li></ul><div contenteditable="false"><hr></div><div data-html-comment="true"><br class="ProseMirror-trailingBreak"></div><div contenteditable="false"><hr></div><h2>연계 실습</h2><p>이 글에서 다룬 내용을 직접 명령어로 쳐 보면 훨씬 오래 남습니다.</p><ul><li><p><a href="https://learnix.kr/linuxmaster">리눅스마스터 실기 권한 문제 연습 →</a></p></li><li><p><a href="https://learnix.kr/learn_linux">파일·권한 명령어 실습 코스 →</a></p></li></ul>

댓글 0

등록된 댓글이 없습니다.