본문 바로가기
서버/리눅스 이론

[Linux] umask 설정으로 파일 보안 강화하기-소유자만 접근 가능한 파일 생성법

by 어깨 :) 2025. 5. 23.
반응형

목차

  1. 정보보안기사 출제 문제 분석
  2. umask의 정의와 중요성
  3. umask 계산 원리 완벽 이해
  4. 주요 umask 설정값과 보안 레벨
  5. 실전 활용법과 보안 강화 팁
  6. 정보보안기사 시험 대비 요점 정리

 

 

개념을 들어가기 전에 리눅스에서 파일 권한데 대한 초보자 가이드를 담은 내용이 있어 먼저 보고가겠습니다.


Linux에서 파일 권한에 대한 초보자 가이드

 

Beginner’s guide to file permission in Linux

When you are executing shell scripts you can execute it using (Assuming your .sh file in your current directory) bash file_name.sh or ./file_name.sh but when you run script in ./ method you may fin…

menukablog.wordpress.com

 

 

쉘 스크립트를 실행할 때 다음을 사용하여 실행할 수 있습니다. (현재 디렉토리에 .sh 파일이 있다고 가정)

bash 파일 이름.sh

또는

./파일_이름.sh

하지만 ./ 메서드에서 스크립트를 실행하면 다음을 찾을 수 있습니다.

bash: ./file_name.sh: 권한이 거부되었습니다.

파일이 생성될 때 RW 권한(읽기, 쓰기)만 부여되는 반면, 디렉터리는 RWX 권한(읽기, 쓰기, 실행)을 부여받습니다. 리눅스에서는 모든 것이 파일과 프로세스  이므로 디렉터리는 파일에 대한 정보를 담고 있는 파일입니다. 따라서 디렉터리에 접근하려면 RWX 권한이 필요합니다. 따라서 디렉터리에는 실행 권한이 부여됩니다.

따라서 .sh 파일을 실행하려면 파일 권한을 설정해야 합니다. (물론 bash 명령을 사용하지 않는 한 ). 다음 단계로 넘어가기 전에 몇 가지 파일 이름을 이해해야 합니다.

r –  읽다

w –  쓰다

x –  실행

u –  사용자(파일을 만든 현재 사용자)

g –  그룹(그룹은 사용자 집합에 쉽게 권한을 부여하기 위해 수행됨)

o –  기타(위의 두 가지 이외의 모든 사용자)

아래 명령을 사용하여 파일이나 디렉토리에 권한이 있는지 확인할 수 있습니다.

ls -l

결과적으로 아래와 같은 출력이 나옵니다.

또는

하나 또는 여러 개의 파일을 확인하려면 아래와 같이 명령 뒤에 이름을 지정합니다.

ls -l 파일_이름.sh

 

상징적인 의미를 원하시면 사용할 수 있습니다.

 umask -S

이렇게 하면 아래와 같은 결과가 나옵니다

u=rwx,g=rwx,o=rx

이것이 그 권한이 의미하는 바입니다.

다음으로는 권한 값을 계산하는 방법을 알아보겠습니다. 아래에서 권한 값을 계산하는 방법을 설명했습니다.

음, 접근 유형에는 크게 세 가지 범주가 있습니다. 값은 642, 753 등으로 볼 수 있습니다.

umask를 사용하여 파일 권한을 변경하기 전에 각 권한의 값을 이해해야 합니다.

 

이것은 umask 테이블입니다

umask  는 기본 시스템 권한을 변경하는 데 사용됩니다. 파일의 경우 666에서 원하는 값을 빼고, 폴더의 경우 777에서 원하는 값을 빼면 umask 값을 계산할 수 있습니다. (.sh 파일을 제외한 파일은 일반적으로 실행 권한이 있지만 폴더는 실행 권한이 있기 때문입니다.) 따라서 다음과 같이 입력하면

 

umask 002

그 이후에 생성하는 모든 파일은 기본 파일 권한 rw-rw-r–을  받게 됩니다.

그렇다면 하나 또는 여러 파일의 권한을 어떻게 변경할 수 있을까요?
바로 이 부분에서 chmod가  중요한 역할을 합니다. chmod를 사용하여 파일 권한을 변경하는 방법은 여러 가지가 있습니다. 

  1. 권한 값 사용(umask 값 직접 권한 값이 아님)

이것은 한 번에 전체 권한을 부여하는 가장 쉬운 방법입니다. 권한 값을 계산할 수 있습니다. 이 권한의 rw-r–r–  값을 계산하면 644가 됩니다. 따라서 아래 명령을 사용하여 권한을 변경합니다.

 

chmod 644 파일 이름

그 후 ls -l file_name을 사용하여 검사를 수행했습니다.

2. 모든 액세스 그룹 권한을 동일하게 변경합니다.

chmod를 사용하면 파일이나 폴더에 동일한 권한을 부여할 수 있습니다.

 

chmod +x 파일 이름

(읽기, 쓰기, 실행의 약어를 기억하시기 바랍니다)

기억해야 할 한 가지는 이 권한이 파일 권한이 이미 가지고 있는 권한에 추가된다는 것입니다. 예를 들어 보겠습니다.

file_name 이라는 이름의 파일이 있고 권한이 r–r–r–  라고 가정해 보겠습니다.
chmod +x file_name   명령을 실행하면 파일 권한은 r-xr-xr-x
가 됩니다 . 마찬가지로 +를 사용하면 모든 그룹에서 권한을 한 번에 제거할 수 있습니다. 이렇게 하면 파일의 권한도 함께 제거됩니다.

3.  원하는 접근 그룹의 권한을 변경합니다 .

모든 액세스 유형에서 원하는 대로 액세스 권한을 변경할 수 있습니다. 예를 들어 rwxrwxrwx  권한이 있는 file_name 파일을 예로 들어 보겠습니다 . 그룹 및 다른 사용자의 실행 권한을 제거하려면 아래 명령을 입력합니다.

 

chmod go-x 파일 이름

(위에서 언급한 사용자, 그룹 및 기타에 대한 액세스 유형 단축 형식을 기억하셨기를 바랍니다.) 이렇게 하면 아래 파일 권한이 rwxrx-rw-로 생성됩니다.

파일 권한을 변경하는 방법입니다. 가끔 권한 거부 경고가 나타날 수 있는데, 이럴 때는 chmod 명령 전에 sudo를  사용해야 합니다.

https://menukablog.wordpress.com/tag/umask/

 

umask – Sharing is Caring

When you are executing shell scripts you can execute it using (Assuming your .sh file in your current directory) bash file_name.sh or ./file_name.sh but when you run script in ./ method you may find bash: ./file_name.sh: Permission denied This is because w

menukablog.wordpress.com

 

 


 

 

1. 정보보안기사 출제 문제 분석

2021년 3월 27일 7번 문제 (기출)

문제: 소유자 외에는 읽기, 쓰기, 실행 등 일체의 접근을 불허하기 위한 umask 설정값으로 알맞은 것은?

① umask 077
② umask 020
③ umask 022
④ umask 066

정답: ① umask 077

이 문제는 Linux 시스템 보안의 핵심인 파일 권한 관리를 다루는 중요한 기출문제입니다. 정보보안 실무에서도 자주 사용되는 필수 개념이죠.

2. umask의 정의와 중요성

umask란?

**umask(User file creation MASK)**는 Linux/Unix 시스템에서 새로 생성되는 파일과 디렉터리의 기본 권한에서 제외할 권한을 지정하는 보안 설정입니다.

왜 중요한가?

  • 시스템 보안의 첫 번째 방어선
  • 민감한 데이터 보호의 핵심 도구
  • 정보보안기사 시험 단골 출제 영역
  • 실무에서 서버 보안 강화에 필수

 

3. umask 계산 원리 완벽 이해

기본 권한 체계

Linux에서 권한은 8진수 3자리로 표현됩니다:

권한 구조: [소유자][그룹][기타 사용자]

각 자리의 권한값:

  • 읽기(Read): 4
  • 쓰기(Write): 2
  • 실행(Execute): 1

기본 생성 권한

  • 파일: 666 (rw-rw-rw-)
  • 디렉토리: 777 (rwxrwxrwx)

umask 계산 공식

최종 권한 = 기본 권한 - umask 값

 

각 선택지별 상세 분석

① umask 077 (정답)

파일: 666 - 077 = 600 (rw-------)
디렉토리: 777 - 077 = 700 (rwx------)
결과: 소유자만 모든 권한, 그룹과 기타는 완전 차단

② umask 020

파일: 666 - 020 = 646 (rw-r--rw-)
결과: 그룹 쓰기만 차단, 읽기는 허용 (부분 차단)

③ umask 022

파일: 666 - 022 = 644 (rw-r--r--)
결과: 그룹과 기타에게 읽기 권한 허용 (일반적 설정)

④ umask 066

파일: 666 - 066 = 600 (rw-------)
디렉토리: 777 - 066 = 711 (rwx--x--x)
결과: 디렉토리 실행 권한 남음 (불완전한 차단)

 

4. 주요 umask 설정값과 보안 레벨

umask 파일 권한 디렉터리 권한 보안 레벨 용도

000 666 (rw-rw-rw-) 777 (rwxrwxrwx) ⚠️ 최저 테스트 환경
022 644 (rw-r--r--) 755 (rwxr-xr-x) 🔵 보통 일반 사용자
027 640 (rw-r-----) 750 (rwxr-x---) 🟡 높음 그룹 환경
077 600 (rw-------) 700 (rwx------) 🔴 최고 민감 데이터

 

 

5. 실전 활용법과 보안 강화 팁

현재 umask 확인

umask
# 또는 8진수로 확인
umask -S

umask 077 설정 (최고 보안)

umask 077

영구 설정 방법

개별 사용자 (.bashrc)

echo "umask 077" >> ~/.bashrc
source ~/.bashrc

시스템 전체 (/etc/profile)

echo "umask 077" >> /etc/profile

실전 테스트

# umask 077 설정 후
touch secure_file.txt
mkdir secure_directory

# 권한 확인
ls -la secure_file.txt secure_directory

예상 결과:

-rw-------  1 user user    0 날짜 secure_file.txt
drwx------  2 user user 4096 날짜 secure_directory

 

 

보안 시나리오별 활용

1. 웹 서버 로그 보안

umask 077
mkdir /var/log/secure_access
echo "access log" > /var/log/secure_access/app.log

2. 데이터베이스 백업 보안

umask 077
mysqldump -u user -p database > /backup/secure_backup.sql

3. 스크립트 내 임시 파일 보안

#!/bin/bash
# 스크립트 시작 시 보안 강화
old_umask=$(umask)
umask 077

# 민감한 임시 파일 생성
temp_file=$(mktemp)
echo "sensitive data" > "$temp_file"

# 작업 완료 후 원복
umask "$old_umask"

 

 

6. 정보보안기사 시험 대비 요점 정리

핵심 암기 사항

  1. umask = User file creation MASK
  2. 계산 공식: 최종 권한 = 기본 권한 - umask
  3. 기본 권한: 파일(666), 디렉터리(777)
  4. 완전 차단: umask 077

자주 출제되는 패턴

  • 특정 보안 요구사항에 맞는 umask 값 찾기
  • umask 계산 결과 권한 예측
  • 보안 레벨별 적절한 umask 선택

실수하기 쉬운 포인트

umask 066: 디렉터리 실행 권한이 남아 불완전
umask 022: 읽기 권한 허용으로 완전 차단 불가
umask 077: 유일한 완전 차단 설정

관련 출제 가능 개념

  • 파일 권한 (chmod, chown)
  • 특수 권한 (SUID, SGID, Sticky bit)
  • ACL (Access Control List)
  • 리눅스 보안 모델

 

 

마무리

umask 077은 정보보안에서 가장 강력한 파일 보안 설정입니다. 정보보안기사 시험뿐만 아니라 실무에서도 민감한 데이터를 다룰 때 필수적으로 사용되는 설정이죠.

특히 서버 관리자나 보안 담당자라면 반드시 숙지해야 할 기본기입니다. 평소 연습을 통해 umask 계산에 익숙해지시기 바랍니다.


 #정보보안기사 #Linux 보안,#mask 설정 #파일 권한 #시스템 보안 #데이터 보호 #유닉스 권한 #서버 보안 #접근 제어

 #정보보안기사 #정보보안기사기출문제 #정보보안기사실기 #정보보안자격증 #보안기사 #정보보안 #사이버보안 #보안자격증

#Linux #리눅스 #umask #파일권한 #시스템보안 #유닉스 #Unix #서버보안 #시스템관리 #리눅스보안 #접근제어 #권한관리 #데이터보호 #보안설정#서버관리 #시스템엔지니어 #보안관리자 #인프라보안 #리눅스관리자 #시스템보안설정 #보안강화 #데이터보안 #파일보안 #서버보안설정 #기출문제 #시험대비 #보안공부 #리눅스공부 #시스템보안공부 #정보보안공부 #자격증공부 #IT자격증 #보안기초 #리눅스기초

반응형