Umask
100%

권한 · 레슨 4

Umask

프로세스 umask가 새 파일과 디렉터리에 요청되는 권한 비트를 제한하는 방법을 배웁니다.

프로세스의 파일 생성 마스크인 umask는 해당 프로세스가 파일 시스템 객체를 만들 때 선택한 권한 비트가 설정되지 않게 합니다. 완전한 기본 모드가 아니라 마스크입니다. 애플리케이션이 먼저 모드를 요청하고 커널이 umask가 금지한 비트를 제거합니다.

개념적으로 다음과 같습니다.

resulting mode = requested mode AND NOT umask

접근 제어 목록과 애플리케이션 동작이 세부 사항을 추가할 수 있으므로 정확한 권한이 중요할 때 결과를 확인하세요.

Umask 확인하고 설정하기

피연산자 없이 umask를 실행하면 현재 쉘의 마스크를 표시하며 흔히 8진수 형식입니다.

$ umask
0022

현재 쉘과 이후 그 쉘에서 시작하는 프로세스에 설정합니다.

$ umask 027

각 8진수 위치는 소유자, 그룹, 기타 사용자에 대응합니다. 마스크 비트는 대응하는 요청 권한을 제거합니다. 2는 쓰기, 4는 읽기, 1은 실행을 가립니다.

umask 027은 현재 쉘에서 무엇을 변경하나요?

새 파일과 디렉터리 모드 계산하기

실행 가능한 파일을 기본으로 만드는 것은 안전하지 않으므로 많은 일반 프로그램은 새 일반 파일에 0666을 요청합니다. 탐색에 실행 권한이 필요한 새 디렉터리에는 흔히 0777을 요청합니다.

umask 0022에서는 다음과 같습니다.

regular file: 0666 masked by 0022 -> 0644 (rw-r--r--)
directory:    0777 masked by 0022 -> 0755 (rwxr-xr-x)

umask는 요청된 비트만 제거합니다. 애플리케이션이 실행 권한을 요청하지 않았다면 추가할 수 없습니다. 애플리케이션이 더 제한적인 시작 모드를 요청하면 결과도 더 제한적일 수 있습니다.

프로그램이 일반 파일에 모드 0666을 요청하고 umask가 0022이면 어떤 모드가 되나요?

프로그램이 디렉터리에 0777을 요청하고 umask가 0027이면 어떤 모드가 되나요?

범위와 지속성

한 쉘에서 umask를 바꿔도 부모 프로세스나 관련 없는 세션은 바뀌지 않습니다. 값은 해당 쉘과 자식 프로세스가 이후에 만드는 객체에 적용되며 기존 파일은 모드를 유지합니다.

선호 값을 지속하려면 환경에 맞는 로그인, 쉘, PAM, 서비스 관리자 또는 애플리케이션 구성에 설정합니다. 올바른 위치는 다양하고 서비스가 자체 umask를 설정할 수 있습니다. 대화형 쉘 파일 하나를 편집하면 시스템의 모든 프로세스를 제어한다고 가정하지 마세요.

새 umask를 설정하면 기존 파일에 어떤 일이 생기나요?

실습에서는 격리된 환경에서 서로 다른 마스크로 파일과 디렉터리를 만든 뒤 ls -ld로 모드를 비교해 보세요. Linux 사용자 그룹과 파일 권한 실습이 적절한 권한 작업 공간을 제공합니다.

레슨 완료

Umask 완료

이제 umask가 새로 요청된 권한을 제한하는 방식을 예측할 수 있습니다.

  • umask로 현재 쉘의 마스크를 확인하거나 설정할 수 있습니다.

  • 애플리케이션이 요청한 모드에서 마스크된 비트를 제거할 수 있습니다.

  • 일반 파일의 흔한 0666 요청과 디렉터리의 0777 요청을 구분할 수 있습니다.

  • umask 범위와 지속성을 프로세스 및 환경별로 다룰 수 있습니다.

학습 진행 상황 저장

무료 계정을 만들어 이 레슨을 저장하고 어떤 기기에서든 계속 학습하세요.

무료 계정 만들기
다음 수업
권한(으)로 돌아가기