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