
개요
리눅스 시스템에서 파일과 디렉토리는 기본적으로 특정한 접근 권한을 가지며, 이는 보안과 직결됩니다.
하지만 새로 생성되는 파일이나 디렉토리가 항상 원하는 권한을 갖도록 설정하려면 어떻게 해야 할까요?
umask(User File Creation Mode Mask) 는 이러한 문제를 해결하는 핵심 개념으로, 기본 권한에서 특정 권한을 자동으로 제거하여 보안을 강화하는 역할을 합니다.
본 글에서는 umask에 대해서 정리하고자 합니다.
umask란❓
리눅스에서 새 파일이나 디렉토리를 생성할 때, 기본적으로 적용되는 권한을 제어하는 값이 umask입니다.
umask 값은 파일이나 디렉토리가 생성될 때 기본적으로 어떤 권한을 제거할지를 결정합니다.
기본적으로 리눅스에서 새로 생성되는 파일과 디렉토리는 다음과 같은 기본 권한(초기 권한)을 가집니다.
- 파일: 666 (rw-rw-rw-)
- 디렉토리: 777 (rwxrwxrwx)
하지만 보안상의 이유로 모든 사용자에게 모든 권한을 부여하는 것은 위험하므로, umask 값을 이용해 특정 권한을 자동으로 제거합니다.
umask 계산법
파일 기본 권한 (666) - umask 값 = 최종 파일 권한
디렉토리 기본 권한 (777) - umask 값 = 최종 디렉토리 권한
예를 들어, umask 값이 022라면
- 파일 권한: 666 - 022 = 644 (rw-r--r--)
- 디렉토리 권한: 777 - 022 = 755 (rwxr-xr-x)
umask 값 확인 및 설정
1. 현재 umask 값 확인
$ umask
0022 # 일반적으로 시스템 기본값
- umask 명령어만 입력하면 현재 설정된 umask 값을 확인할 수 있습니다.
2. 일시적으로 umask 변경
$ umask 027 # 파일: 640, 디렉토리: 750
- 터미널에서 umask 값을 변경하면, 해당 세션에서만 적용됩니다.
보안 관점에서 적절한 umask 값 설정하기
파일 및 디렉토리의 기본 권한을 적절히 제한하면 보안 강화를 할 수 있습니다.
- 개인 사용자
- umask 077 (자신만 접근 가능)
- 일반 서버 환경
- umask 027 (소유자와 그룹만 접근 가능,
기타 사용자는 제한)
- umask 027 (소유자와 그룹만 접근 가능,
- 공유 서버 환경
- umask 022 (소유자만 쓰기 가능, 그룹 및 기타 사용자는 읽기 가능)
umask와 chmod 차이점
chmod와 umask는 모두 파일 및 디렉토리 권한을 다루지만, 역할이 다릅니다.
umask | chmod | |
적용 시점 | 파일/디렉토리 생성 시 | 파일/디렉토리 생성 후 |
적용 방식 | 기본 권한에서 특정 권한 제거 | 지정된 권한으로 설정 |
사용 목적 | 자동화된 기본 권한 설정 | 수동으로 특정 권한 변경 |
예시 명령어 | umask 022 | chmod 644 file.txt |
결론
umask는 리눅스에서 새 파일과 디렉토리의 기본 권한을 설정하는 중요한 개념입니다.
보안 강화를 위해 적절한 umask 값을 설정하는 것이 중요하며, 서버 환경에 맞춰 설정을 변경하면 보다 안전한 시스템을 운영할 수 있습니다.
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2025.02.16 - MySQL 문자열 검색: LIKE, INSTR, REGEXP, SUBSTRING (0) | 2025.02.16 |
---|---|
[TIL, 일일 회고] 2025.02.15 - MySQL에서 OR 연산자 이외의 조건문 활용법: IN, CASE WHEN, FIND_IN_SET (0) | 2025.02.15 |
[TIL, 일일 회고] 2025.02.13 - 리눅스 파일 접근 권한 이해하기 (0) | 2025.02.13 |
[TIL, 일일 회고] 2025.02.12 - 리눅스 크론탭(Linux Crontab) (0) | 2025.02.12 |
[TIL, 일일 회고] 2025.02.11 - ORDER BY의 숫자의 의미 (0) | 2025.02.11 |

개요
리눅스 시스템에서 파일과 디렉토리는 기본적으로 특정한 접근 권한을 가지며, 이는 보안과 직결됩니다.
하지만 새로 생성되는 파일이나 디렉토리가 항상 원하는 권한을 갖도록 설정하려면 어떻게 해야 할까요?
umask(User File Creation Mode Mask) 는 이러한 문제를 해결하는 핵심 개념으로, 기본 권한에서 특정 권한을 자동으로 제거하여 보안을 강화하는 역할을 합니다.
본 글에서는 umask에 대해서 정리하고자 합니다.
umask란❓
리눅스에서 새 파일이나 디렉토리를 생성할 때, 기본적으로 적용되는 권한을 제어하는 값이 umask입니다.
umask 값은 파일이나 디렉토리가 생성될 때 기본적으로 어떤 권한을 제거할지를 결정합니다.
기본적으로 리눅스에서 새로 생성되는 파일과 디렉토리는 다음과 같은 기본 권한(초기 권한)을 가집니다.
- 파일: 666 (rw-rw-rw-)
- 디렉토리: 777 (rwxrwxrwx)
하지만 보안상의 이유로 모든 사용자에게 모든 권한을 부여하는 것은 위험하므로, umask 값을 이용해 특정 권한을 자동으로 제거합니다.
umask 계산법
파일 기본 권한 (666) - umask 값 = 최종 파일 권한
디렉토리 기본 권한 (777) - umask 값 = 최종 디렉토리 권한
예를 들어, umask 값이 022라면
- 파일 권한: 666 - 022 = 644 (rw-r--r--)
- 디렉토리 권한: 777 - 022 = 755 (rwxr-xr-x)
umask 값 확인 및 설정
1. 현재 umask 값 확인
$ umask
0022 # 일반적으로 시스템 기본값
- umask 명령어만 입력하면 현재 설정된 umask 값을 확인할 수 있습니다.
2. 일시적으로 umask 변경
$ umask 027 # 파일: 640, 디렉토리: 750
- 터미널에서 umask 값을 변경하면, 해당 세션에서만 적용됩니다.
보안 관점에서 적절한 umask 값 설정하기
파일 및 디렉토리의 기본 권한을 적절히 제한하면 보안 강화를 할 수 있습니다.
- 개인 사용자
- umask 077 (자신만 접근 가능)
- 일반 서버 환경
- umask 027 (소유자와 그룹만 접근 가능,
기타 사용자는 제한)
- umask 027 (소유자와 그룹만 접근 가능,
- 공유 서버 환경
- umask 022 (소유자만 쓰기 가능, 그룹 및 기타 사용자는 읽기 가능)
umask와 chmod 차이점
chmod와 umask는 모두 파일 및 디렉토리 권한을 다루지만, 역할이 다릅니다.
umask | chmod | |
적용 시점 | 파일/디렉토리 생성 시 | 파일/디렉토리 생성 후 |
적용 방식 | 기본 권한에서 특정 권한 제거 | 지정된 권한으로 설정 |
사용 목적 | 자동화된 기본 권한 설정 | 수동으로 특정 권한 변경 |
예시 명령어 | umask 022 | chmod 644 file.txt |
결론
umask는 리눅스에서 새 파일과 디렉토리의 기본 권한을 설정하는 중요한 개념입니다.
보안 강화를 위해 적절한 umask 값을 설정하는 것이 중요하며, 서버 환경에 맞춰 설정을 변경하면 보다 안전한 시스템을 운영할 수 있습니다.
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2025.02.16 - MySQL 문자열 검색: LIKE, INSTR, REGEXP, SUBSTRING (0) | 2025.02.16 |
---|---|
[TIL, 일일 회고] 2025.02.15 - MySQL에서 OR 연산자 이외의 조건문 활용법: IN, CASE WHEN, FIND_IN_SET (0) | 2025.02.15 |
[TIL, 일일 회고] 2025.02.13 - 리눅스 파일 접근 권한 이해하기 (0) | 2025.02.13 |
[TIL, 일일 회고] 2025.02.12 - 리눅스 크론탭(Linux Crontab) (0) | 2025.02.12 |
[TIL, 일일 회고] 2025.02.11 - ORDER BY의 숫자의 의미 (0) | 2025.02.11 |