안녕하세요, MJ 입니다.
umask 에 대한 설명과 설정 방법을 작성 합니다.
umask
: 파일이 생성 될 때 권한을 제거하는 명령어 입니다.
umask 가 무엇인지에 대해 질문을 받았을 때, 설명을 어떻게 해야 할 지 몰라 당황 했던 경험이 있지요?
권한을 제거 한다고 했는데, 어떤 권한이 어떻게 제거되는 것일까요?
파일의 권한은 비트로 설정되기 떄문에 이해를 돕기위해 그림을 그려보겠습니다.
[파일의권한] |
그림을 보시면 권한이 4종류가 확인됩니다.
이 중, 일반적으로 특수 권한은 제외하고 이야기를 하게 되는데,
각 권한의 종류별로 끊어서 하나의 숫자로 표현 할 수 있습니다.
기본적으로
파일은 rw,rw,rw 권한이,
디렉토리는 rwx,rwx,rwx 권한이 부여가 되지만
이대로 사용하게 되면 누구나가 모든 파일/디렉토리에 대해
읽기/쓰기/실행 권한을 누릴 수 있게 되기때문에 보안상 치명적이지 않을 수 없습니다.
그림상에서 rwx 하나의 셋트에서 권한을 부여 할 수 있는 가지수는 8가지가 됩니다.
역시 그림으로 8가지 경우의 수를 나열 해 보면
[퍼미션 경우의수] |
3개의 각 권한에 따라 비트를 부여하고, 켜지거나 꺼진 상태에 따라 3자리비트를 한자리 숫자로 하여 표현 할 수 있습니다.(8진수)
-> 기본으로 사용하면 위험한 파일과 디렉토리의 권한에서 박탈시킬 권한을 umask 명령으로 입력 해 주는 것입니다.
이미 리눅스에서는 umask 기본값이 설정 되어있어 위험한 상황은 일어나지 않겠지만
고객사에서 보안업체를 통한 권고사항에 따라 umask 로 설정 할 박탈권한 설정을 요청하게 됩니다.
[설정]
설정은 어디에 해도 상관없지만 일반적으로 /etc/profile 또는 /etc/bashrc 파일에 설정하게 됩니다.
umask 는 변수가 아니고 명령어 이므로 umask 022 와 같이 작성 하셔야 정상 동작 합니다.
umask=0022 와 같이 설정하면 로그인할때마다 오류가 발생합니다.
[글로 예시를 대략 작성 해 봅니다]
OS 설치 후 umask 명령어를 바로 수행 해 보면 "0022" 가 출력됩니다.
왼쪽부터 특수,유저,그룹,아더 로 박탈할 권한이 표시 된 것입니다.
파일 생성 시 기본권한 0666 에서 0022 를 지워보면, 0644 가 됩니다.
umask 0022 설정된 시스템에서 파일을 만들면 기본 파일의 퍼미션이 644 가 된다는 의미 입니다.
디렉토리는 기본권한이 0777 이므로 0022 를 지우면 0755 가 됩니다.
특수권한은 자주 설정하는 내용이 아니기도 하고, 0으로 시작하는 숫자가 읽기 어색하여 644, 755 라고 표현하는데, 644는 rw,r,r 권한을, 755는 rwx,rx,rx 권한을 의미하게 됩니다.
이제 umask 가 뭐에요? 라고 질문을 받게 된다면, 잘 답할 수 있겠죠?
문의사항은 댓글을 달아 주시면 성심껏 답변 드리겠습니다.
감사합니다.
댓글
댓글 쓰기