웹사이트 검색

리눅스에서 umask는 무엇입니까?


Linux 또는 Unix 시스템에서 UMASK는 User Mask로 알려져 있거나 User 파일 생성 마스크라고도 합니다. 이는 Linux 시스템에서 새 파일 또는 폴더가 생성될 때 기본 권한 또는 기본 권한입니다.

mkdir, touch, tee 및 파일과 디렉토리를 생성하는 기타 명령과 같은 Linux의 여러 명령에서 사용됩니다. 새 파일이나 디렉토리가 생성될 때마다 모든 단계에 참여합니다.

파일 권한:

자세히 살펴보고 umask를 이해하기 전에 먼저 파일 권한을 간단히 이해해 보겠습니다.

Linux는 보안으로 유명합니다. Linux의 각 파일 또는 디렉토리에는 특정 권한 및 소유권 집합이 있습니다. 아래의 사용자 클래스를 살펴보겠습니다.

Linux의 각 파일에는 이와 관련된 세 개의 사용자 클래스가 있습니다.

  1. 사용자 - 파일을 소유한 사용자 - 기본적으로 파일을 변경하지 않는 한 파일을 만든 사람을 나타냅니다.
  2. 그룹 - 이것은 그룹의 사람들이 파일에 할당된 권한을 갖게 됨을 나타냅니다.
  3. 기타 - 소유자 또는 할당된 그룹에 속하지 않은 다른 사용자를 제한합니다.

위에서 언급한 각 사용자 클래스에 대한 세 가지 유형의 파일 액세스가 있습니다.

  1. r - 읽기 권한 - 파일 내용을 읽을 수 있는 권한
  2. w - 쓰기 권한 - 파일 내용을 변경할 수 있는 권한
  3. x - 실행 권한 - 파일을 프로그램으로 실행하는 기능

위의 개념은 누가 파일 내용을 읽고 파일 내용을 수정하거나 프로그램을 실행할 수 있는지 알려줍니다.

보기 권한 - 기호 모드:

아래에서 파일 소유권을 살펴보겠습니다. ls -l 명령을 입력하여 Linux 시스템에서 정보를 가져올 수 있습니다.

위 이미지의 첫 번째 문자는 파일 형식을 나타냅니다. Linux에는 아래와 같이 다양한 유형의 파일이 있을 수 있습니다.

    -   

Indicates the simple regular file with different extensions like .txt, .json, .sh, .py, .rb, and so on

    d

Indicates directory/folder

    l

Indicates a symbolic link or symlink or soft link

    c

Indicates character device file

    b

Indicates block device file

다음 9개의 기호는 아래와 같이 세 부분으로 나뉩니다.

               rwx

The file owner can read the content, modify the contents and execute the file as a program

   r-x

Members in the group “users” can read the content and execute the file as a program but cannot modify the file contents

   r-x

The one who is not the owner also not the member of the group i.e. other, can also read the contents of the file and execute the file as a program but cannot modify the file contents

권한 보기 - 숫자 모드:

숫자 모드라고 하는 숫자를 사용하여 권한을 나타내는 추가 방법이 있습니다.

아래의 숫자 파일 권한 차트를 살펴보겠습니다.

  0

---

No permission

1

--x

Only Execute permission

2

-w-

Only write permission

3

-wx

Write and Execute permission

4

r--

Only read permission

5

r-x

Read and Execute permission

6

rw-

Read and Write permission

7

rwx

Read, Write and Execute permission

이 숫자 권한 차트를 참조하여 위 이미지에 언급된 동일한 디렉토리에 적용하면 아래와 같은 권한이 표시됩니다.

rwx

4+2+1

7

r-x

4+0+1

5

r-x

4+0+1

5


따라서 testdir 디렉토리의 숫자 권한은 755입니다.

UMASK 이해:

아래 명령을 실행하여 새 파일과 새 디렉토리를 생성해 봅시다.

$ touch testfile
$ mkdir testdir

ls -l 명령을 실행하여 testfile과 testdir의 권한을 확인해보자.

$ls -l

Output:
drwxr-xr-x  2 niteshb users    4096 Mar 21 22:43 testdir
-rw-r--r--  1 niteshb users       0 Mar 21 22:43 testfile

권한을 확인하셨나요? 그들은 다릅니다, 그렇죠? 이는 Linux 시스템에 설정된 기본 umask 값 때문입니다.

기본적으로 Linux 시스템에서 파일의 기본 생성 권한은 소유자, 그룹 및 기타 사용자에게 읽기 및 쓰기 권한을 부여하는 666이고 디렉토리의 경우 소유자, 그룹 및 기타 사용자에게 읽기, 쓰기 및 실행 권한을 의미하는 777입니다. 기타.

우리가 알고 있듯이 디렉토리는 실행할 수 없습니다. 그렇다면 디렉토리에 실행 권한이 필요한 이유는 무엇입니까? 글쎄, 디렉토리에 대한 실행 권한은 디렉토리 아래의 내용에 액세스할 수 있도록 허용하는 것입니다. chmod 명령을 사용하여 디렉토리의 권한을 666으로 변경하고 cd 명령으로 디렉토리로 이동하면 권한 거부 오류가 발생합니다.

대부분의 Linux 배포판에서 기본 시스템 범위 값은 pam_umask.so 또는 /etc/profile 파일에 설정됩니다. 사용자의 홈 디렉토리에 있는 ~/.bashrc 파일에 값을 추가하여 사용자에게 고유한 umask 값을 만들 수 있습니다.

umask 값을 확인하려면 umask 명령을 실행합니다.

$umask

출력:

0022

지금은 위의 4개 숫자 중 첫 번째 0을 무시할 수 있습니다. Linux에서 고급 권한의 일부입니다. 쓰기 권한이 있더라도 파일 수정을 방지하거나 루트 사용자인 경우에도 파일 삭제를 방지할 수 있습니다. 이 블로그에서는 다른 세 가지 숫자에만 집중할 것입니다.

현재 세션 umask 값을 변경하려면 아래 명령과 원하는 값을 실행하십시오.

$umask 0044

파일 및 디렉토리가 권한을 얻는 방법:

umask와 관련된 값은 파일 및 디렉토리에 대해 얻은 권한이 아닙니다.

아주 간단한 계산이 있습니다. 위에서 언급했듯이 파일의 기본값은 666이고 디렉토리의 경우 777입니다. 새 파일이나 디렉토리의 권한 비트를 계산하려면 기본값에서 umask 값을 뺍니다.

예를 들어 umask로 인해 새 파일 또는 디렉토리 권한이 어떻게 영향을 미치는지 계산해 봅시다.

  • 파일: 666 - 022=644. 권한에 따라 소유자는 파일을 읽고 실행할 수 있습니다. 그룹 및 다른 사용자가 파일을 읽을 수 있습니다.
  • 디렉토리: 777 - 022=755. 이것은 소유자가 디렉토리에 대한 모든 읽기, 쓰기 권한 및 CD를 갖게 됨을 의미합니다. 그룹과 다른 사람들은 디렉토리의 내용을 읽고 나열할 수 있으며 디렉토리로 cd할 수 있습니다.

아래 명령을 실행하여 umask 값을 숫자 형식으로 볼 수도 있습니다.

$umask

출력:

u=rwx,g=rx,o=rx

숫자 표기법과 달리 기호 표기법 값에는 새로 생성된 파일 및 디렉터리에 설정될 권한 비트가 포함됩니다.

마스크 값 설정:

파일 생성 마스크는 8진수 또는 기호 표기법을 사용하여 설정할 수 있습니다. 변경 사항을 영구적으로 적용하려면 모든 사용자에게 영향을 미치는 /etc/profile 파일과 같은 전역 구성 파일이나 ~/.profile, ~/.bashrc 또는 ~/.zshrc와 같은 사용자의 셸 구성 파일에 새 umask 값을 설정하십시오. 사용자에게만 영향을 미칩니다. 사용자 파일은 전역 파일보다 우선합니다.

umask 값을 변경하기 전에 새 값이 잠재적인 보안 위험을 초래하지 않는지 확인하십시오. 022보다 덜 제한적인 값은 매우 주의해서 사용해야 합니다. 예를 들어 umask 000은 누구나 새로 생성된 모든 파일에 대한 읽기, 쓰기 및 실행 권한을 갖게 됨을 의미합니다.

새로 생성된 파일과 디렉터리에 대해 더 제한적인 권한을 설정하여 다른 사람이 디렉터리로 cd하고 파일을 읽을 수 없도록 한다고 가정해 보겠습니다. 우리가 원하는 권한은 디렉토리에 대해 750이고 파일에 대해 640입니다.

umask 값을 계산하려면 기본 권한에서 원하는 권한을 뺍니다.

Umask 값: 777-750=027

숫자 표기법으로 표현되는 원하는 umask 값은 027입니다.

새 값을 시스템 전체에 영구적으로 설정하려면 텍스트 편집기로 /etc/profile 파일을 열고 파일 시작 부분에 다음 행을 변경하거나 추가하십시오.

umask 0027

변경 사항을 적용하려면 다음 소스 명령을 실행하거나 로그아웃했다가 로그인하십시오.

$source /etc/profile

새 설정을 확인하기 위해 아래 명령을 사용하여 하나의 새 파일과 디렉터리를 만듭니다.

$mkdir newtestdir
$touch newtestfile

ls 명령을 사용하여 권한을 확인하면 원하는 대로 새 파일에 640 및 새 디렉터리 750 권한이 있음을 알 수 있습니다.

drwxr-xr--  2 niteshb  users    4096 Mar 21 22:43 newtestdir
-rw-r-----  1 niteshb  users       0 Mar 21 22:43 newtestfile

파일 생성 마스크를 설정하는 또 다른 방법은 기호 표기법을 사용하는 것입니다. 예를 들어 umask u=rwx,g=rx,o=umask 027과 동일합니다.

결론:

이 가이드에서는 Linux 권한과 umask 명령을 사용하여 새로 생성된 파일 또는 디렉터리에 대한 권한 비트를 설정하는 방법을 설명했습니다.

자세한 내용을 보려면 터미널에 아래 명령어를 입력하세요.

$man umask