728x90

개요

리눅스 시스템에서 파일디렉토리는 기본적으로 특정한 접근 권한을 가지며, 이는 보안과 직결됩니다.

 

하지만 새로 생성되는 파일이나 디렉토리가 항상 원하는 권한을 갖도록 설정하려면 어떻게 해야 할까요?

 

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 022 (소유자만 쓰기 가능, 그룹 및 기타 사용자는 읽기 가능)

umask와 chmod 차이점

chmodumask는 모두 파일 및 디렉토리 권한을 다루지만, 역할이 다릅니다.

 

  umask chmod
적용 시점 파일/디렉토리 생성 시 파일/디렉토리 생성 후
적용 방식 기본 권한에서 특정 권한 제거 지정된 권한으로 설정
사용 목적 자동화된 기본 권한 설정 수동으로 특정 권한 변경
예시 명령어 umask 022 chmod 644 file.txt

 

결론

umask는 리눅스에서 새 파일 디렉토리기본 권한을 설정하는 중요한 개념입니다.

 

보안 강화를 위해 적절한 umask을 설정하는 것이 중요하며, 서버 환경에 맞춰 설정을 변경하면 보다 안전한 시스템을 운영할 수 있습니다.