리눅스에서 "이 파일에 누가 무엇을 할 수 있는가"는 감(感)이 아니라 세 자리의 산수로 정확히 결정된다. 모든 파일과 디렉터리에는 소유자(owner)·그룹(group)·기타(other) 세 부류에 대해 읽기(r)·쓰기(w)·실행(x) 세 권한이 켜지거나 꺼져 있다. 이 9개의 켜짐/꺼짐을 다루는 도구가 chmod이고, 새로 만드는 파일의 기본 권한을 결정하는 규칙이 umask다.
오늘의 목표는 권한을 숫자로 자유롭게 변환하는 것이다. rwxr-xr--를 보고 즉시 754라고 말할 수 있고, 644가 무엇을 허용하는지 즉시 풀어낼 수 있어야 한다. 그리고 umask가 권한을 "더하는" 게 아니라 "빼는" 마스크라는 원리를 손으로 계산할 수 있어야 한다. 이 산수가 막히면 Day 4의 특수권한·ACL도 무너진다.
ls -l의 맨 앞 10글자가 권한을 나타낸다.
-rwxr-xr-- 1 alice dev 4096 Jun 5 10:00 report.sh
# │└┬┘└┬┘└┬┘
# │ owner group other
# └ 파일 종류(-=파일, d=디렉터리, l=링크)첫 글자는 종류(파일 -, 디렉터리 d, 심볼릭 링크 l, 블록장치 b, 문자장치 c)이고, 나머지 9글자가 세 부류 × 세 권한이다.