Linux

[Linux] 퍼미션(Permission) (3) : umask

nayoungs 2024. 11. 13. 00:10
728x90

Umask

umask는 user file creation mask의 약자로, 리눅스 및 유닉스 계열 시스템에서 파일이나 디렉터리가 생성될 때 기본적으로 적용되는 권한을 설정하는 명령어이다.

이를 통해 새로 생성된 파일과 디렉터리의 기본 권한을 설정하고, 사용자와 그룹 간의 권한을 미리 제한할 수 있다.

 

파일과 디렉터리 권한의 기본 구성

리눅스에서 파일과 디렉터리 권한은 세 가지 기본 권한과 세 가지 범주로 구성된다:

  • 권한 유형
    • 읽기 (r): 파일을 읽을 수 있는 권한
    • 쓰기 (w): 파일을 수정할 수 있는 권한
    • 실행 (x): 파일을 실행할 수 있는 권한
  • 사용자 범주
    • 소유자 (user): 파일의 소유자에게 부여된 권한
    • 그룹 (group): 파일 소유자가 속한 그룹에 부여된 권한
    • 기타 (others): 소유자와 그룹 외의 모든 사용자에게 부여된 권한

기본적으로 새로 생성된 파일은 666 (rw-rw-rw-), 디렉터리는 777 (rwxrwxrwx) 권한을 가진다.

이때 umask는 해당 기본 권한에서 제외될 권한을 설정하는 데 사용된다.

파일 소유자 그룹 다른 사용자
읽기 쓰기 실행 읽기 쓰기 실행 읽기 쓰기 실행
r w x r w x r w x
4 2 1 4 2 1 4 2 1
리눅스는 운영체제에 따라서 차이가 있을 수 있지만, 기본적으로 기본 마스크 값이 0002로 설정되어 있다.

 

 

umask 값의 의미

umask 값은 3자리 또는 4자리의 8진수로 표현되며, 각 자리는 특정 사용자 범주에 대해 제한될 권한을 나타낸다:

  • 첫 번째 자리: 소유자 권한에 대한 mask
  • 두 번째 자리: 그룹 권한에 대한 mask
  • 세 번째 자리: 기타 사용자 권한에 대한 mask

예를 들어, umask 값이 022인 경우 다음과 같이 권한이 제한된다:

  • 소유자: 제한 없음 (기본 권한이 유지됨)
  • 그룹: 쓰기 권한 제한 (r-x)
  • 기타 사용자: 쓰기 권한 제한 (r-x)

즉, 이 설정으로 생성된 디렉터리의 기본 권한은 755 (rwxr-xr-x)가 된다.

 

  • 디렉터리의 권한 : umask 값에 따라 디렉터리의 기본 권한이되고, 디렉터리의 권한은 777(rwx, rwx, rwx)에서 umask를 뺀 값이 디렉터리가 생성될 때의 실제권한이 되게 된다.
  • 파일의 권한 : umask 값에 따른 파일의 권한은 디렉터리 권한에 실행권한이 있는 숫자를 뺀 값이 파일이 생성될때 실제 권한이 되게 된다. 

 

umask 설정 방법

현재 umask 값을 확인하려면 다음 명령어를 사용합니다:

$ umask

특정 umask 값을 설정하려면 umask 명령어 뒤에 원하는 값(권한의 넘버릭)을 입력한다:

$ umask 027

이 설정은 현재 세션에서만 유효하므로, 지속적인 적용을 위해서는 사용자 홈 디렉터리의 .bashrc, .bash_profile, 또는 .profile에 추가해야 한다.

 

umask 사용 예시

  • umask설정 022
    • 파일 기본 권한이 666인 경우: 생성된 파일 권한은 644 (rw-r--r--)
    • 디렉터리 기본 권한이 777인 경우: 생성된 디렉터리 권한은 755 (rwxr-xr-x)
  • umask설정 027
    • 파일 기본 권한이 666인 경우: 생성된 파일 권한은 640 (rw-r-----)
    • 디렉터리 기본 권한이 777인 경우: 생성된 디렉터리 권한은 750 (rwxr-x---)
umask 값 0000 0001 0002 0022 0077
생성되는 디렉토리 권한 777 776 775 755 700
rwx rwx rwx rwx rwx rw- rwx rwx r-x rwx r-x r-x rwx --- ---
생성되는 파일 권한 666 665 664 664 600
rwx r-x r-x rw- rw- r-x rw- rw- r-- rwx r-x r-x rwx --- ---

 

 

Reference

728x90