linux umask

umask란?
주어진 콘테스트에서 새로 만들어진 파일과 디렉토리 퍼미션에 적용될 마스크를 지정해주는 지시자이다.
새로운 디렉토리와 파일들이 쓰기 권한을 가진 그룹이나 전체가 되는 것을 막기 위해 Umask를 합리적인 표준값인 002, 007, 020, 070, 022등으로 설정한다.
파일이라는 것은 원래 목적이 읽고 쓰는 것이다. 그러므로 일반적으로 실행을 하는 것은 드물다.
그러므로 값을 모두 짝수로 지정하게 되는 것이다.
파일의 풀 퍼미션은 666이며, 디렉토리의 풀 퍼미션은 777이다.
계산을 하면


 파일 퍼미션
디렉토리 퍼미션
   666
 -022
------
   644
   777
 -022
------
  755


 연습을 위해서 umask를 입력하여 본다. 그러면 현재 설정된 값을 확인 할 수 있다. 
touch ddd 를 해서 ddd란 파일을 생성 후 ls -l ddd를 통하여 확인을 하면 디폴트로 644가 된다.
디렉토리를 확인하고 싶다면 mkdir kbs라고 입력하여 디렉토리 생성 후 ls -l kbs를 통하여 확인을 하면 디폴트로 755가 되어 있다.

 이제 한번 바꾸어 보쟈.

 [root@localhost ~]# grep umask /etc/*
/etc/bashrc:    umask 002
/etc/bashrc:    umask 022
/etc/csh.cshrc: umask 022
/etc/csh.cshrc: umask 002
/etc/ltrace.conf:octal umask(octal);
/etc/ltrace.conf:octal SYS_umask(octal);
[root@localhost ~]# umask
0022
[root@localhost ~]# umask 0024[root@localhost ~]# umask
0024

 grep으로 etc 밑의 모든 파일에서 umask를 찾아보면 디폴트로 모두 설정되어 있는 것을 확인할 수 있을 것이다.
umask 명령어를 이용해서도 0022 라는 것을 확인하였다.
umask 0024 를 통하여 값을 바꾸어 주니 정상적으로 바뀌어져 있는 것을 확인할 수 있다.
단, 이때 etc 밑의 디폴트로 설정되어 있는 값들은 변경되지 않으니 참고하쟈.
자.. 이제 0024 로 잘 되어있는지 확인하여 볼까?


umask 0022
 umask 0024
[root@localhost ~]# umask 0022
[root@localhost ~]# touch bbb[root@localhost ~]# ls -l bbb-rw-r--r--  1 root root 0  8월  1 20:53 bbb
 ==> | - | rw- | r-- | r-- |
rw- : 4+2=   6
r-- : 4
r-- : 4
그러므로 644 로 되어있는 것을 확인 할 수 있다.
666-022 = 644

[root@localhost ~]# mkdir ccc[root@localhost ~]# ls -dl cccdrwxr-xr-x  2 root root 4096  8월  1 20:54 ccc
==> | d | rwx | r-x | r-x |
rwx : 4+2+1 =    7
r-x : 4+1 =     5
r-x : 4+1 =     5
그러므로 755로 되어있는 것을 확인할 수 있다.
777-022 = 755
[root@localhost ~]# umask 0024
[root@localhost ~]# touch bbb
[root@localhost ~]# ls -l bbb
-rw-r---w-  1 root root 0  8월  1 20:57 bbb
==> | - | rw- | r-- | -w- |
rw- : 4+2 = 6
r-- : 4
-w- : 2
642 로 변경되었다. 맨 뒤의 other 즉 모든 사용자가 파일의 수정이 가능하도록 한 것이다.
666 - 024  = 642

[root@localhost ~]# mkdir ccc
[root@localhost ~]# ls -dl cccdrwxr-x-wx  2 root root 4096  8월  1 20:58 ccc
==> | d | rwx | r-x | -wx |
rwx : 4+2+1 =    7
r-x : 4+1 = 5
-wx : 2+1 = 3
753 으로 변경되었다. 맨뒤의 other 즉 모든 사용자가 파일의 수정과 싫ㅇ이 가능하도록 설정되었다.
777 - 024 = 753


 보통 사용을 할때에는 0024를 절대 쓰지 않는다. 연습용으로 해본 것이다.
0077 로 하면 디렉토리 파일이 모두 안전하게 된다.
파일 --> 666-077 = 600   : | - | rw- | --- | --- |
디렉토리 ---> 777-077 = 700     : | d | rwx | --- | ---|
즉, 루트 이름을 가진자만 해당 사항을 관리할 수 있는 것이다. 

댓글

이 블로그의 인기 게시물

Python requests 모듈 간단 정리