[Linux] 리눅스(CentOS7)

[Linux] 리눅스 Umask

ITsubin 2022. 3. 8. 18:07

이번 포스팅에서는 허가권과 소유권에 이어서, Umask와 특수 권한에 대해서 알아보겠습니다.

 

[ UMASK ]

 

디렉터리 생성 시 기본 권한 값은 777(drwxrwxrwx)이며,

파일 생성 시 기본 권한 값은 666(-rw-rw-rw-)입니다.

 

하지만, 이 둘을 직접 생성해보면 아래처럼 기본 권한 값과 실제 권한 값은 차이를 보이는 것을 알 수 있습니다.

[root@localhost test]# mkdir Directory ; touch File ; ll
합계 4
drwxr-xr-x. 2 root root 4096 38 16:48 Directory
-rw-r--r--. 1 root root 0 38 16:48 File
[root@localhost test]#

 

이는 Umask 때문입니다.

 

Umask란 기본 허가권 조정 명령어로, 권한을 설정할 때 파일이나 디렉터리가 생성됨과 동시에 지정된 권한이 주어지도록 하는 명령어입니다.

 

Umask의 기본 값은 0022로 설정되어 있는 것을 확인할 수 있습니다.

[root@localhost test]# umask
0022
[root@localhost test]#

 

일단 umask의 기본값인 0022022로 생각해도 무방합니다.

맨 앞의 0은 특수 권한을 담당하는 자리이기 때문입니다.

(특수 권한에 대해서는 다음 포스팅에 올리도록 하겠습니다.)

 

umaskumask의 기본값을 뺀 나머지 값을 기본 허가권으로 조정합니다.

umask666이라면 파일 생성 시 기본 권한 값인 666에서 umask 666을 빼는 것입니다.

 

ex) umask666일 경우

[파일 기본 권한 값 : 666] [umask : 666] = 000 (---------)

[디렉터리 기본 권한 값 : 777] - [umask : 666] = 111 (--x--x--x)

 

ex) umask020일 경우

[파일 기본 권한 값 : 666] [umask : 020] = 646 (rw-r--rw-)

[디렉터리 기본 권한 값 : 777] - [umask : 020] = 757 (rwxr-xrwx)

 

umask666으로 변경 후 확인해보겠습니다.

[root@localhost test]# umask 666
[root@localhost test]# umask
0666

 

umask 명령어로 umask 값을 666으로 변경했더니 umask 값이 0666으로 변경된 것을 볼 수 있습니다.

앞서 말했듯이 가장 앞의 0은 특수 권한을 담당하는 자리입니다.

디렉터리 D와 파일 F를 생성해서 권한을 보겠습니다.

[root@localhost test]# mkdir D ; touch F
[root@localhost test]# ll
합계 8
d--x--x--x. 2 root root 4096 38 17:49 D
drwxr-xr-x. 2 root root 4096 38 16:48 Directory
----------. 1 root root 0 38 17:49 F
-rw-r--r--. 1 root root 0 38 16:48 File
[root@localhost test]#

 

D의 퍼미션 값은 111, F의 퍼미션 값은 000인 것을 확인할 수 있습니다.