무엇을 하나
8진수 권한 · ls -l 문자열 · 체크박스를 서로 바꿉니다. 아래 칸에서는 지금 권한에 chmod 식을 적용한 결과를, 마지막 칸에서는 umask 로 정해지는 새 파일 · 폴더 권한을 계산합니다. 계산 규칙은 GNU coreutils chmod 의 것을 그대로 옮겼습니다.
예시
| 넣은 값 | 결과 |
|---|---|
755 | rwxr-xr-x — 소유자는 전부, 나머지는 읽기 · 실행 |
640 | rw-r----- — 설정 파일에 흔함 |
4755 | rwsr-xr-x — setuid(passwd 같은 프로그램) |
1777 (폴더) | drwxrwxrwt — /tmp 처럼 남의 파일은 못 지우는 공용 폴더 |
644 에 u+x,g-w | 744 |
644 에 +w (umask 022) | 644 — a 를 안 쓰면 umask 에 켜진 비트(그룹 · 기타의 쓰기)는 건너뜀. a+w 면 666 |
umask 027 | 새 파일 640 · 새 폴더 750 |
흔한 실수
- 폴더에 x 를 빼기 — 폴더의
x는 「들어가기」입니다.chmod -R 644를 폴더째 걸면 안의 파일을 열 수 없게 됩니다. 파일과 폴더를 함께 다룰 때는chmod -R u=rwX,go=rX처럼 대문자X(폴더이거나 이미 실행 비트가 있을 때만 x)를 씁니다. - 문제를 777 로 덮기 — 웹 서버 403 같은 문제는 대개 경로 중간 폴더의
x나 소유자 문제입니다. 777 은 누구나 고칠 수 있게 열어 둡니다. - 폴더의 setgid 가 안 지워짐 — GNU
chmod 755 폴더는 이미 있던 setgid 를 남깁니다.chmod g-s 폴더나 5자리00755로 지웁니다.
어떻게 확인했나
공개 전에 이 서버의 GNU coreutils 9.4 chmod 와 stat -c '%a %A' · bash umask + touch/mkdir 로 286번 맞대었습니다(8진수 20개 × 파일 · 폴더, 기호식 37개 × 파일 · 폴더 × umask 022 · 027, 거부되는 식 8개, umask 10개). umask 때문에 chmod 가 경고하고 종료 코드 1 을 내는 경우까지 맞췄습니다.
자주 묻는 것
755 와 0755 는 다른가요?
아니요, 파일과 폴더 모두 같습니다. 앞의 0 은 「특수 비트 없음」을 적은 것입니다. 다만 폴더에서는 GNU chmod 가 4자리까지의 숫자로는 setuid · setgid 를 지우지 않으므로, 둘 다 이미 있던 setgid 를 남깁니다. 확실히 지우려면 00755 처럼 5자리로 씁니다.
umask 022 인데 새 파일이 755 가 아니라 644 인 이유는?
새 파일은 대개 666 에서 시작하고(실행 비트 없이 만들기 때문) umask 를 빼면 644 가 됩니다. 폴더는 777 에서 시작해 755 가 됩니다. umask 는 「빼는」 값이라 있던 비트를 더하지는 않습니다.
입력한 값이 서버로 가나요?
아니요. 계산은 모두 브라우저 안에서 합니다. 입력값은 서버로 보내지 않고, 이 사이트가 쓰는 방문 통계와 광고에도 넘기지 않습니다. 자세한 것은 개인정보 처리 안내에 있습니다.