
결론부터 말하면, 파일 권한은 소유자·그룹·기타 사용자의 읽기·쓰기·실행 권한을 해석하고, 파일 시스템 관리는 장치의 파일 시스템을 디렉터리 트리에 연결해 사용량과 상태를 확인하는 일입니다. chmod·chown·umask와 mount·df·du의 대상을 구분하는 것이 핵심입니다.
KAIT 2급 ‘리눅스 운영 및 관리’의 첫 검정항목은 권한 및 그룹 설정, 파일 시스템의 관리입니다. 이 글은 권한과 링크는 임시 폴더에서 직접 실습하고, 마운트는 시스템을 바꾸지 않는 조회 명령으로만 확인합니다. 전체 연재는 리눅스마스터 2급 전체 학습지도에서 이어집니다.
문제 풀이 순서: 파일 종류 → 소유자 → 소유 그룹 → user/group/other의 rwx → 명령이 바꾸는 대상 순서로 읽습니다.
chmod·chown·chgrp·umask 비교
| 명령 | 바꾸는 것 | 대표 형식 | 구분 포인트 |
|---|---|---|---|
| chmod | 파일·디렉터리의 접근 권한 | chmod 640 file |
소유자 자체를 바꾸지 않음 |
| chown | 소유자, 필요하면 소유 그룹 | chown USER:GROUP file |
일반적으로 소유자 변경에는 관리자 권한 필요 |
| chgrp | 소유 그룹 | chgrp GROUP file |
사용자가 속한 그룹과 권한 정책 확인 |
| umask | 새 객체에서 제외할 기본 권한 비트 | umask 027 |
기존 파일 권한을 직접 바꾸지 않음 |
rwx를 문자와 숫자로 읽기
-rw-r-----를 예로 들면 첫 글자 -는 일반 파일, 다음 세 글자 rw-는 소유자, 그다음 r--는 소유 그룹, 마지막 ---는 기타 사용자의 권한입니다. 숫자 표기는 읽기 4, 쓰기 2, 실행 1을 각 대상별로 합합니다.
| 숫자 | 문자 | 일반 파일 | 디렉터리 |
|---|---|---|---|
| 4 | r | 내용 읽기 | 이름 목록 읽기 |
| 2 | w | 내용 수정 | 항목 생성·삭제·이름 변경 |
| 1 | x | 실행 허용 | 디렉터리 안으로 진입·경로 탐색 |
chmod 640 file: 소유자rw-, 그룹r--, 기타---chmod u=rw,g=r,o= file: 같은 결과를 기호 방식으로 명시chmod g+w file: 현재 그룹 권한에 쓰기만 추가chmod o-rwx file: 기타 사용자의 세 권한 제거
디렉터리의 쓰기 권한은 그 안의 ‘이름 항목’을 변경할 수 있다는 뜻입니다. 그래서 파일 자체가 읽기 전용이어도 부모 디렉터리에 적절한 쓰기·실행 권한이 있으면 이름을 삭제할 수 있는 경우가 있습니다. 파일 권한과 부모 디렉터리 권한을 함께 봐야 하는 이유입니다.
umask는 단순 뺄셈보다 비트 제거
일반적인 셸 환경에서 새 일반 파일은 실행 비트가 없는 최대 666, 새 디렉터리는 최대 777을 기준으로 시작하고, umask에 지정된 비트를 제외합니다. 예를 들어 umask 027이면 파일은 보통 640, 디렉터리는 750이 됩니다.
| umask | 새 파일의 대표 결과 | 새 디렉터리의 대표 결과 | 의미 |
|---|---|---|---|
022 |
644 | 755 | 그룹·기타 쓰기 제외 |
027 |
640 | 750 | 기타 권한 전체와 그룹 쓰기 제외 |
077 |
600 | 700 | 소유자만 접근하도록 제한 |
실제 결과는 프로그램이 요청한 생성 모드, 파일 시스템과 ACL 정책의 영향도 받을 수 있습니다. ‘777에서 무조건 산술 뺄셈’으로만 계산하지 말고 제거되는 권한 비트를 확인하세요.
하드 링크와 심볼릭 링크
| 구분 | 하드 링크 | 심볼릭 링크 |
|---|---|---|
| 생성 | ln 원본 새이름 |
ln -s 대상 링크 |
| 가리키는 것 | 같은 inode를 참조하는 또 하나의 디렉터리 항목 | 대상 경로 문자열을 가진 별도 파일 |
| inode 번호 | 원본과 같음 | 원본과 다름 |
| 파일 시스템 경계 | 넘을 수 없음 | 다른 파일 시스템 경로도 가리킬 수 있음 |
| 원본 이름 삭제 | 다른 하드 링크가 있으면 데이터 접근 가능 | 대상 경로가 사라지면 깨진 링크가 됨 |
inode에는 파일의 소유권·권한·크기·데이터 위치 같은 메타데이터가 있고, 디렉터리 항목은 이름과 inode를 연결합니다. Linux 커널 ext4 문서도 여러 디렉터리 항목이 같은 inode 번호를 참조하는 것을 하드 링크라고 설명합니다. 일반 사용자는 디렉터리 하드 링크를 만들 수 없다고 이해하는 것이 안전합니다.
권한과 링크 안전 실습
tmpdir=$(mktemp -d)
trap 'rm -rf -- "$tmpdir"' EXIT
cd "$tmpdir"
printf 'draft\n' > report.txt
chmod u=rw,g=r,o= report.txt
stat -c '%A %a %U %G %n' report.txt
ln report.txt report.hard
ln -s report.txt report.sym
ls -li report.txt report.hard report.sym
readlink report.sym
( umask 027; : > private.txt; stat -c '%a %n' private.txt )
ls -li에서 원본과 하드 링크의 inode 번호가 같고, 심볼릭 링크는 다른 번호와 -> 대상을 표시하는지 확인하세요. 괄호 안의 umask는 서브셸에만 적용되므로 현재 학습 셸의 umask를 바꾸지 않습니다.
마운트와 사용량 명령 구분
Linux는 다른 파티션이나 이동식 장치의 파일 시스템을 하나의 디렉터리 트리에 붙여 사용합니다. 이 연결이 마운트이고 붙이는 디렉터리가 마운트 포인트입니다. 이미 파일이 있는 디렉터리에 다른 파일 시스템을 마운트하면 기존 내용이 삭제되는 것은 아니지만, 마운트되어 있는 동안 가려져 접근할 수 없습니다.
| 명령 | 대상 | 답하는 질문 |
|---|---|---|
| lsblk -f | 블록 장치와 파일 시스템 | 어떤 장치에 무슨 파일 시스템·UUID·마운트점이 있는가? |
| findmnt | 현재 마운트 관계 | 어떤 소스가 어느 디렉터리에 연결되어 있는가? |
| df -hT | 마운트된 파일 시스템 | 파일 시스템 전체 용량과 남은 공간은? |
| du -sh | 지정한 디렉터리·파일 | 이 경로 아래 파일이 차지하는 합계는? |
| mount / umount | 파일 시스템 연결 상태 | 연결하거나 안전하게 분리하려면? |
lsblk -f
findmnt --target "$PWD"
df -hT .
du -sh .
df와 du의 값은 항상 같지 않습니다. df는 파일 시스템 관점의 블록 사용량, du는 지정 경로에서 찾아간 파일의 사용량을 합산하기 때문입니다. 열린 채 삭제된 파일, 예약 블록, 마운트로 가려진 경로 등이 차이를 만들 수 있습니다.
안전 주의: 실제mount·umount,chown -R,chmod -R은 서비스와 접근 권한에 큰 영향을 줄 수 있습니다. 재귀 옵션은 대상 경로와 심볼릭 링크 처리 방식을 확인한 뒤 사용하고, 마운트 실습은 별도 가상 장치에서 하세요.
자주 틀리는 지점
- rwx 의미를 파일과 디렉터리에 똑같이 적용: 디렉터리의 x는 실행이 아니라 경로 탐색 의미입니다.
- chmod와 chown 혼동: 전자는 권한, 후자는 소유자를 바꿉니다.
- umask가 기존 파일도 바꾼다고 생각: 새 객체를 만들 때 제외할 기본 권한에 작용합니다.
- 심볼릭 링크도 inode가 같다고 착각: 같은 inode를 공유하는 것은 하드 링크입니다.
- df와 du를 같은 대상으로 해석: df는 파일 시스템, du는 지정 경로의 파일 합계를 중심으로 봅니다.
셀프체크 5문제
- Q. 권한
754를 문자로 쓰면?
A. 소유자rwx, 그룹r-x, 기타r--입니다. - Q.
chmod와chown의 차이는?
A.chmod는 접근 권한을,chown은 파일의 소유자와 선택적으로 그룹을 바꿉니다. - Q. umask 027에서 새 일반 파일의 대표 권한은?
A. 최대 생성 모드 666에서 해당 비트를 제외한 640입니다. - Q. 원본과 inode 번호가 같고 원본 이름을 지워도 데이터가 남을 수 있는 링크는?
A. 하드 링크입니다. - Q. 현재 디렉터리가 속한 마운트 대상을 조회하려면?
A.findmnt --target "$PWD"처럼findmnt의 대상 경로를 지정합니다.
공식 자료
- KAIT 리눅스마스터 종목안내·출제기준
- GNU Coreutils 공식 매뉴얼: chmod·chown·ln·df·du·stat
- GNU Bash 공식 매뉴얼: umask
- Linux Kernel ext4 공식 문서: 디렉터리 항목과 하드 링크
- Linux Kernel ext4 공식 문서: inode
- RHEL 8 공식 마운트·findmnt 문서
업데이트: 2026-07-11. KAIT 출제기준과 GNU·Linux Kernel·RHEL 공식 문서를 기준으로 확인했습니다. 권한 기본값과 마운트 정책은 배포판·파일 시스템·관리 정책에 따라 달라질 수 있습니다.
'학위공부 > IT 자격증' 카테고리의 다른 글
| 2026 리눅스마스터 2급 ⑥ 프로세스 관리|ps·top·kill·jobs·nice 핵심정리 (0) | 2026.07.11 |
|---|---|
| 2026 리눅스마스터 2급 ⑤ Shell 핵심정리|셸 변수·환경변수·설정 파일·인용부호 (0) | 2026.07.11 |
| 2026 리눅스마스터 2급 ③ 기본 명령어|사용자·경로·파일 조작 실습 (0) | 2026.07.11 |
| 2026 리눅스마스터 2급 ② 리눅스 설치|파티션·파일시스템·GRUB 정리 (0) | 2026.07.11 |
| 2026 리눅스마스터 2급 ① 리눅스의 이해|커널·GNU·배포판 한 번에 정리 (0) | 2026.07.11 |