C – umask(0) 함수의 보안 위험성

By | 2026년 10월 1일
Table of Contents

C – umask(0) 함수의 보안 위험성

C 언어에서 umask(0); 명령을 사용할 때 발생하는 보안 위험성을 설명합니다.

사전지식

유닉스 체제에서 1 은 실행권한, 2 는 쓰기권한, 4 는 읽기권한을 의미합니다.
예를들어,

권한이 644 인 경우,
6 = 2 + 4 = 쓰기/읽기 권한.

권한이 755 인 경우,
7 = 1 + 2 + 4 = 실행/쓰기/읽기 권한
5 = 1 + 4 = 실행/읽기 권한

이 됩니다.

기능

일반적으로 umask 는 생성되는 파일의 권한을 깎아 내리는 용도로 쓰입니다.
예를 들어, umask가 0022 로 설정되어 있으면 그룹과 기타 사용자에 대해 쓰기 권한을 제거해 줍니다.

umask(0); 설정을 하게 되면, 이러한 권한 제거를 전부 없애버립니다.

문제점

일반적인 C 파일 생성함수는 디폴트로 666 의 권한이 부여됩니다.
즉, 아무나 읽고 쓸 수 있는 파일을 생성하게 됩니다.
폴더의 위치와 파일명만 알게 된다면 누구나 파일의 내용을 읽고 변조할 수 있게 됩니다.

해결책

umask(0027);

위 명령을 실행함으로 해서, 그룹 사용자에게는 디폴트로 쓰기 권한을 제거하고,
기타 사용자에게는 모든 권한을 제거합니다.

답글 남기기