umask - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. umask는 컴퓨팅에서 새로 만들어진 파일에 파일 권한을 어떻게 설정할지를 제어하는 마스크 설정을 결정하는 명령어이다. mask, umask 명령어와 umask 함수는 원래
ko.wikipedia.org
Linux_umask
umask : 리눅스에서 새로 만들어진 파일에 권한을 어떻게 설정할지 마스크를 결정하는 명령어. umask 명령은 mask 매개변수가 지정되지 않는 경우 현재 쉘 환경의 파일 모드 작성 마스크를 표준 출력
proengineer.tistory.com
umask는 앞으로 생길 파일/디렉토리의 권한을 설정하는 명령어이다.
umask에서 파일은 기본적으로 666로 시작하고 디렉토리는 777으로 시작해서 계산한다.
디렉토리가 실행 권한을 가져야 하는 이유는 실행 권한이 있어야 디렉토리 이동이 가능하기 때문이다.
🐧 리눅스 파일 & 디렉토리 권한 (소유권 / 허가권 / 특수권한)
파일 및 디렉터리 권한 리눅스는 여러사용자가 들어와 사용하는 멀티유저 시스템이다. 따라서 여러 사용자가 들어와 사용하다보면, 서버에 올려진 비밀자료 열람과 그것을 변조,수정,삭제를 할
inpa.tistory.com
예를 들어 umask 022이라는 명령어를 입력했다고 하자.
그렇다면 파일의 초기 권한(666의 각 자리 숫자를 2진수로 바꾼 110 110 110) - 022(022의 각 자리 숫자를 2진수로 바꾼 000 010 010)과 디렉토리의 초기 권한(777의 각 자리 숫자를 2진수로 바꾼 111 111 111) - 022(022의 각 자리 숫자를 2진수로 바꾼 000 010 010)을 통해 추후 만들어진 파일과 디렉토리의 기본 권한이 설정된다.
여기서 주의할 것이 있는데 계산은 각 자리수 외에 다른 곳에 영향을 주지 못한다. 예를 들어 110 - 101이라면 2진수 계산상 001이 나와야 하지만 각 자리수 외에 다른 곳에 영향을 주지 않기 때문에 010이라는 결과가 나온다.
아무튼, 이렇게 계산된 결과는 파일은 644(110 100 100)이 될 것이고 디렉토리는 755(110 101 101)이 될 것이다.
테스트 해보자.
일단 다시 초기화 하기 위해 umask 명령어를 통해 현재 권한을 확인하자.

umask 055를 하게 될 경우 파일은 110 010 010 ⇒ 622, 디렉토리는 111 010 010 ⇒ 722이 될 것이다.

실제로 umask 055를 하고 test 디렉토리와 test.file 파일을 만들었더니 나온 결과다. 예상대로의 결과가 나온 것을 확인할 수 있다.