ioerror

umask 사용법 및 옵션 - 새 파일과 디렉터리의 기본 접근 권한(마스크) 설정 및 확인 본문

OS

umask 사용법 및 옵션 - 새 파일과 디렉터리의 기본 접근 권한(마스크) 설정 및 확인

반응형

umask 사용법 및 옵션 - 새 파일과 디렉터리의 기본 접근 권한(마스크) 설정 및 확인

umask - User File-Creation Mode Mask

파일이나 디렉터리를 생성할 때 적용할 기본 권한 마스크를 설정하거나 확인하는 명령어이다. 시스템의 기본 권한(파일 666, 디렉터리 777)에서 umask 값을 차감(또는 비트 반전 후 AND 연산)하여 최종 생성 권한을 결정한다. 잘못 설정할 경우 생성되는 파일이 외부인에게 무단 수정되거나, 필요한 권한이 차단될 수 있으므로 보안 관리가 필요한 환경에서 유의해야 한다.

1. umask 용도

  • 보안 정책에 맞춰 새로 생성되는 파일/디렉터리의 접근 권한 제한
  • 웹 서버, 공유 디렉터리 등에서 공용 파일 작성 시 보안 레벨 유지

주요 사용 예시

  • 스크립트 실행 시작 부분에서 비공개 작업 파일 작성을 위해 보안 권한 적용 (umask 077)
  • 웹 서버 프로세스 실행 시 소유자/그룹 외 읽기 제한 설정

2. umask 서식

Bash
 
umask [-p] [-S] [mode]

3. umask 옵션

옵션 설명 사용가능 OS 및 쉘
-S 마스크 값을 8진수가 아닌 문자로 출력/설정 bash zsh ksh
-p 재사용 가능한 형태(umask 8진수)로 표준 출력 bash zsh

기본 및 문자 형태 확인 예시

Bash
 
# 현재 설정된 umask 값 확인 (8진수)
umask
# 0022

# 기호 형식으로 확인
umask -S
# u=rwx,g=rx,o=rx

# 재사용 가능한 형태로 확인
umask -p
# umask 0022

새 파일 및 디렉터리 권한 적용 예시

Bash
 
# 외부 사용자 및 그룹 권한을 전면 차단하도록 umask 변경
umask 077

# 변경 확인
umask -S
# u=rwx,g=,o=

# 테스트 디렉터리 및 파일 생성
mkdir test_dir && touch test_file.txt

# 생성된 권한 확인
ls -ld test_dir test_file.txt
# drwx------ 2 user group 4096 Jul 31 12:00 test_dir
# -rw------- 1 user group    0 Jul 31 12:00 test_file.txt
  • test_dir: 기본 디렉터리 권한 777에서 077을 제한하여 소유자 전용 권한 700(rwx------) 설정
  • test_file.txt: 기본 파일 권한 666에서 077을 제한하여 소유자 전용 권한 600(rw-------) 설정

4. umask 특이사항(유의사항)

  • 계산 방식 주의: umask는 Simple Subtraction(단순 뺄셈)이 아니라 비트 연산(권한 & ~umask)으로 처리된다. 파일 기본 권한 666에 umask 022를 적용하면 644가 되지만, umask 011을 적용해도 파일에 실행 권한(x)이 생기지 않고 655가 아닌 644가 된다.
  • 실행 권한 제한: 보안상 기본 파일 생성 시 실행 권한(x)은 umask 값과 관계없이 부여되지 않는다.
  • 영구 적용 방법: 쉘 명령으로 실행한 umask는 현재 세션에서만 유지된다. 시스템 전체에 영구 적용하려면 /etc/bashrc, /etc/profile에 작성하고, 사용자 개인별 적용은 ~/.bashrc 또는 ~/.bash_profile에 등록해야 한다.

관련 명령어들

  • chmod: 이미 생성된 파일이나 디렉터리의 접근 권한 변경
  • chown: 파일이나 디렉터리의 소유자와 소유 그룹 변경
  • chgrp: 파일이나 디렉터리의 소유 그룹 변경

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

 

반응형
Comments