11장. 파일 시스템 권한 관리
파일 시스템 권한은 사용자 및 그룹 계정에서 파일의 내용을 읽고 수정 및 실행하고 디렉토리를 입력할 수 있는 기능을 제어합니다. 무단 액세스로부터 데이터를 보호하려면 권한을 신중하게 설정합니다.
11.1. 파일 권한 관리
모든 파일 또는 디렉터리에는 세 가지 수준의 소유권이 있습니다.
- 사용자 소유자(u).
- 그룹 소유자(g).
- 기타(o).
각 수준의 소유권에는 다음 권한이 할당될 수 있습니다.
- 읽기(r).
- 쓰기(W).
- 실행(x).
파일에 대한 실행 권한을 사용하면 해당 파일을 실행할 수 있습니다. 디렉터리에 대한 실행 권한을 사용하면 디렉터리의 콘텐츠에 액세스할 수 있지만 실행할 수는 없습니다.
새 파일 또는 디렉터리가 생성되면 기본 권한 집합이 자동으로 할당됩니다. 파일 또는 디렉터리에 대한 기본 권한은 다음 두 가지 요인을 기반으로 합니다.
- 기본 권한.
- 사용자 파일 생성 모드 마스크( mask )입니다.
11.1.1. 기본 파일 권한
새 파일이나 디렉터리가 생성될 때마다 기본 권한이 자동으로 할당됩니다. 파일 또는 디렉터리에 대한 기본 권한을 기호 또는 8진수 값으로 표시할 수 있습니다.
권한 | 심볼릭 값 | 8진수 값 |
권한 없음 | --- | 0 |
execute | --x | 1 |
write | -w- | 2 |
쓰기 및 실행 | -wx | 3 |
읽기 | r-- | 4 |
읽기 및 실행 | r-x | 5 |
읽기 및 쓰기 | rw- | 6 |
읽기, 쓰기, 실행 | rwx | 7 |
디렉터리에 대한 기본 권한은 777
(drwxrwxrwx
)이며 모든 사용자에게 읽기, 쓰기, 실행 권한을 부여합니다. 즉, 디렉터리 소유자, 그룹 및 기타 사용자가 디렉터리의 콘텐츠를 나열하고, 디렉터리 내의 항목을 만들고, 삭제하고, 편집하고, 편집할 수 있습니다.
디렉토리에 있는 개별 파일에는 디렉터리에 대한 무제한 액세스 권한이 있더라도 편집할 수 있는 자체 권한이 있을 수 있습니다.
파일에 대한 기본 권한은 666
(-rw-rw-rw-
)이며 모든 사용자에게 읽기 및 쓰기 권한을 부여합니다. 즉, 파일 소유자, 그룹 및 다른 사용자가 파일을 읽고 편집할 수 있습니다.
예 11.1. 파일에 대한 권한
파일에 다음 권한이 있는 경우:
$ ls -l -rwxrw----. 1 sysadmins sysadmins 2 Mar 2 08:43 file
-
-
파일이 있음을 나타냅니다. -
rwx
는 파일 소유자가 파일을 읽고, 쓰고, 실행할 수 있는 권한이 있음을 나타냅니다. -
RW-
는 그룹에 읽기 및 쓰기 권한이 있지만 파일을 실행하지는 않음을 나타냅니다. -
---
는 다른 사용자가 파일을 읽고, 쓰고, 실행할 수 있는 권한이 없음을 나타냅니다. -
.
는 SELinux 보안 컨텍스트가 파일에 설정되어 있음을 나타냅니다.
예 11.2. 디렉터리에 대한 권한
디렉터리에 다음 권한이 있는 경우:
$ ls -dl directory drwxr-----. 1 sysadmins sysadmins 2 Mar 2 08:43 directory
-
D
는 디렉터리임을 나타냅니다. rwx
는 디렉터리 소유자가 디렉터리의 콘텐츠를 읽고, 쓰고, 액세스할 수 있는 권한이 있음을 나타냅니다.디렉터리 소유자는 디렉터리 내의 항목(파일, 하위 디렉터리)을 나열하고 해당 항목의 콘텐츠에 액세스한 다음 수정할 수 있습니다.
-
R
-x
는 그룹에 디렉터리의 내용을 읽을 수 있는 권한이 있지만 쓸 수는 없음을 나타냅니다. 새 항목을 생성하거나 파일을 삭제할 수 없습니다.x
권한은cd
명령을 사용하여 디렉터리에 액세스할 수도 있음을 의미합니다. ---
는 다른 사용자가 디렉터리의 콘텐츠를 읽고, 쓰거나, 액세스할 수 있는 권한이 없음을 나타냅니다.사용자 소유자가 아니거나 디렉토리의 그룹 소유자로서는 디렉터리 내의 항목을 나열하거나, 해당 항목에 대한 정보에 액세스하거나, 수정할 수 없습니다.
-
.
는 SELinux 보안 컨텍스트가 디렉터리에 설정되어 있음을 나타냅니다.
파일 또는 디렉터리에 자동으로 할당된 기본 권한은 파일 또는 디렉터리가 끝나는 기본 권한이 아닙니다. 파일 또는 디렉토리를 생성하면 기본 권한이 permissions에 의해 변경됩니다. 기본 권한과 mTLS의 조합은 파일 및 디렉터리에 대한 기본 권한을 생성합니다.
11.1.2. 사용자 파일 생성 모드 마스크
사용자 파일 생성 모드 마스크(balancer )는 새로 생성된 파일 및 디렉터리에 대해 파일 권한이 설정되는 방법을 제어하는 변수입니다. CloudEvent 는 Linux 시스템의 전체 보안을 높이기 위해 기본 권한 값에서 권한을 자동으로 제거합니다. jaeger 는 심볼릭 또는 8진수 값으로 표현할 수 있습니다.
권한 | 심볼릭 값 | 8진수 값 |
읽기, 쓰기 및 실행 | rwx | 0 |
읽기 및 쓰기 | rw- | 1 |
읽기 및 실행 | r-x | 2 |
읽기 | r-- | 3 |
쓰기 및 실행 | -wx | 4 |
write | -w- | 5 |
execute | --x | 6 |
권한 없음 | --- | 7 |
표준 사용자와 root
사용자의 기본 CloudEvent는 0022
입니다.
messages의 첫 번째 숫자는 특수 권한(sticky bit, )을 나타냅니다. PATH의 마지막 세 자리는 사용자 소유자(u), 그룹 소유자(g) 및 기타(o)에서 각각 제거된 권한을 나타냅니다.
예 11.3. 파일을 생성할 때 mTLS 적용
다음 예제에서는 기본 권한이 777
인 파일에 8진수 값이 0137
인 umask 를 적용하여 기본 권한이 640
인 파일을 생성하는 방법을 보여줍니다.
11.1.3. 기본 파일 권한
새로 생성된 모든 파일 및 디렉터리에 대해 기본 권한이 자동으로 설정됩니다. 기본 권한의 값은 기본 권한에 umask 를 적용하여 결정됩니다.
예 11.4. 디렉터리에 대한 기본 권한
표준 사용자 또는 루트 사용자가 새 디렉터리를 생성하는 경우 ScanSetting은 022
(rwxr-xr-x
)로 설정되고 디렉터리에 대한 기본 권한이 777
(rwxrwxrwx
)으로 설정됩니다. 기본 권한을 755
(rwxr-xr-x
)로 가져옵니다.
심볼릭 값 | 8진수 값 | |
기본 권한 | rwxrwxrwx | 777 |
jaeger | rwxr-xr-x | 022 |
기본 권한 | rwxr-xr-x | 755 |
즉, 디렉터리 소유자는 디렉터리의 콘텐츠를 나열하고, 디렉터리 내의 항목을 생성, 삭제, 편집할 수 있으며, 디렉터리의 콘텐츠를 내림차순할 수 있습니다. 그룹 및 기타 그룹은 디렉터리의 콘텐츠만 나열하고 그 내용을 추측할 수 있습니다.
예 11.5. 파일에 대한 기본 권한
표준 사용자 또는 루트 사용자가 새 파일을 생성하는 경우 ScanSetting은 022
(rwxr-xr-x
)로 설정되고 파일의 기본 권한은 666
(rw-rw-rw-
)으로 설정됩니다. 644
(-rw-r-의 기본 권한을 가져옵니다.r--
).
심볼릭 값 | 8진수 값 | |
기본 권한 | rw-rw-rw- | 666 |
jaeger | rwxr-xr-x | 022 |
기본 권한 | rw-r—r-- | 644 |
즉, 파일 소유자는 파일을 읽고 편집할 수 있으며, 그룹 및 다른 사용자는 파일을 읽을 수 있습니다.
보안상의 이유로 permissions가 000
(rwxrwx
)으로 설정되어 있어도 일반 파일은 기본적으로 실행 권한을 가질 수 없습니다. 그러나 실행 권한을 사용하여 디렉터리를 만들 수 있습니다.
11.1.4. 심볼릭 값을 사용하여 파일 권한 변경
tekton 유틸리티를 심볼릭 값( 조합 문자 및 기호)과 함께 사용하여 파일 또는 디렉토리에 대한 파일 권한을 변경할 수 있습니다.
다음 권한을 할당할 수 있습니다.
- 읽기(r)
- 쓰기(W)
- 실행 (x)
권한은 다음 수준의 소유권 에 할당할 수 있습니다.
- 사용자 소유자 (u)
- 그룹 소유자(g)
- 기타 (O)
- 모두 (a)
사용 권한 추가 또는 제거 하려면 다음 표시를 사용 합니다.To add or remove permissions you can use the following signs:
-
+
기존 권한 상단에 대한 권한을 추가하려면 다음을 수행합니다. -
기존 권한에서 권한을 제거하려면To remove the permissions from the existing permission
-
기존 권한을 제거하고 새 권한을 명시적으로 정의하려면
=
절차
파일 또는 디렉터리에 대한 권한을 변경하려면 다음을 사용합니다.
$ chmod <level><operation><permission> file-name
<level>
을 권한을 설정하려는 소유권 수준으로 바꿉니다.<operation>
를 부호 중 하나로 바꿉니다.<permission>
를 할당할 권한으로 바꿉니다. file-name 을 파일 또는 디렉터리의 이름으로 바꿉니다. 예를 들어 모든 사용자에게 읽기, 쓰기, 실행(rwx
)my-script.sh
를 부여하려면 etcdctla=rwx my-script.sh
명령을 사용합니다.자세한 내용은 기본 파일 권한을 참조하십시오.
검증
특정 파일에 대한 권한을 보려면 다음을 사용합니다.
$ ls -l file-name
file-name 을 파일 이름으로 바꿉니다.
특정 디렉터리에 대한 권한을 보려면 다음을 사용합니다.
$ ls -dl directory-name
directory-name 을 디렉터리 이름으로 바꿉니다.
특정 디렉터리 내의 모든 파일에 대한 권한을 보려면 다음을 사용합니다.
$ ls -l directory-name
directory-name 을 디렉터리 이름으로 바꿉니다.
예 11.6. 파일 및 디렉터리에 대한 권한 변경
my-file.txt
의 파일 권한을-rw-rw-r---
에서-rw----- 으로 변경하려면
다음을 사용합니다.my-file.txt
에 대한 현재 권한을 표시합니다.$ ls -l my-file.txt -rw-rw-r--. 1 username username 0 Feb 24 17:56 my-file.txt
그룹 소유자(
g
) 및 기타(
)에서 파일을 읽고 쓰고 실행할 수 있는 권한을 제거합니다.o
$ chmod go= my-file.txt
등호(
=
) 후에 지정되지 않은 권한은 자동으로 금지됩니다.my-file.txt
에 대한 권한이 올바르게 설정되었는지 확인합니다.$ ls -l my-file.txt -rw-------. 1 username username 0 Feb 24 17:56 my-file.txt
my-directory
의 파일 권한을drwxrwx---
에서drwxrwxr-x
로 변경하려면 다음을 사용합니다.my-directory
에 대한 현재 권한을 표시합니다.$ ls -dl my-directory drwxrwx---. 2 username username 4096 Feb 24 18:12 my-directory
모든 사용자(
a
)에 대해 읽기 및 실행(r-x
) 액세스를 추가합니다.$ chmod o+rx my-directory
my-directory
및 해당 콘텐츠에 대한 권한이 올바르게 설정되었는지 확인합니다.$ ls -dl my-directory drwxrwxr-x. 2 username username 4096 Feb 24 18:12 my-directory
11.1.5. 8진수 값을 사용하여 파일 권한 변경
8진수 값(numbers)과 함께 tekton 유틸리티를 사용하여 파일 또는 디렉터리에 대한 파일 권한을 변경할 수 있습니다.
절차
기존 파일 또는 디렉터리의 파일 권한을 변경하려면 다음을 사용합니다.
$ chmod octal_value file-name
file-name 을 파일 또는 디렉터리의 이름으로 바꿉니다. 8진수_value 를 8진수 값으로 바꿉니다. 자세한 내용은 기본 파일 권한을 참조하십시오.