10장. 파일 시스템 권한 관리
파일 시스템 권한은 사용자 및 그룹 계정에서 파일의 내용을 읽고 수정 및 실행하고 디렉토리를 입력할 수 있는 기능을 제어합니다. 무단 액세스로부터 데이터를 보호하려면 권한을 신중하게 설정합니다.
10.1. 파일 권한 관리 링크 복사링크가 클립보드에 복사되었습니다!
모든 파일 또는 디렉터리에는 세 가지 수준의 소유권이 있습니다.
- 사용자 소유자(u)입니다.
- 그룹 소유자(g).
- 기타(o).
각 소유권 수준에 다음 권한을 할당할 수 있습니다.
- 읽기(r).
- 쓰기(W ).
- 실행(x).
파일에 대한 실행 권한을 사용하면 해당 파일을 실행할 수 있습니다. 디렉터리에 대한 실행 권한을 사용하면 디렉터리의 콘텐츠에 액세스할 수 있지만 실행할 수는 없습니다.
새 파일 또는 디렉터리가 생성되면 기본 권한 집합이 자동으로 할당됩니다. 파일 또는 디렉터리에 대한 기본 권한은 다음 두 가지 요인을 기반으로 합니다.
- 기본 권한.
- 사용자 파일 생성 모드 마스크( Cryo stat).
10.1.1. 기본 파일 권한 링크 복사링크가 클립보드에 복사되었습니다!
새 파일 또는 디렉터리가 생성될 때마다 기본 권한이 자동으로 할당됩니다. 파일 또는 디렉터리에 대한 기본 권한은 심볼릭 값 또는 8진수 값으로 표시할 수 있습니다.
| 권한 | 심볼릭 값 | 8진수 값 |
| 권한 없음 | --- | 0 |
| 실행 | --x | 1 |
| 쓰기 | -w- | 2 |
| 쓰기 및 실행 | -wx | 3 |
| 읽기 | r-- | 4 |
| 읽기 및 실행 | r-x | 5 |
| 읽기 및 쓰기 | rw- | 6 |
| 읽기, 쓰기, 실행 | rwx | 7 |
디렉터리에 대한 기본 권한은 모든 사용자에게 읽기, 쓰기, 실행 권한을 부여하는 777 (drwxrwxrwx)입니다. 즉, 디렉터리 소유자, 그룹 및 기타 사용자가 디렉터리의 콘텐츠를 나열하고, 디렉터리 내의 항목을 생성, 삭제 및 편집하고 여기에 축소할 수 있습니다.
디렉터리 내의 개별 파일에는 디렉터리에 대한 무제한 액세스 권한이 있어도 편집할 수 없는 자체 권한이 있을 수 있습니다.
파일에 대한 기본 권한은 666 (-rw-rw-rw-)이며 모든 사용자에게 읽기 및 쓰기 권한을 부여합니다. 즉, 파일 소유자, 그룹 및 기타 사용자가 파일을 읽고 편집할 수 있습니다.
예 10.1. 파일의 권한
파일에 다음 권한이 있는 경우:
$ ls -l
-rwxrw----. 1 sysadmins sysadmins 2 Mar 2 08:43 file
-
-파일이 있음을 나타냅니다. -
rwx는 파일 소유자가 파일을 읽고, 쓰고, 실행할 수 있는 권한이 있음을 나타냅니다. -
RW-는 그룹에 읽기 및 쓰기 권한이 있지만 파일을 실행하지 않음을 나타냅니다. -
---는 다른 사용자에게 파일을 읽거나 쓰거나 실행할 수 있는 권한이 없음을 나타냅니다. -
.은 SELinux 보안 컨텍스트가 파일에 대해 설정되어 있음을 나타냅니다.
예 10.2. 디렉터리에 대한 권한
디렉터리에 다음 권한이 있는 경우:
$ ls -dl directory
drwxr-----. 1 sysadmins sysadmins 2 Mar 2 08:43 directory
-
D는 디렉터리임을 나타냅니다.
rwx는 디렉터리 소유자가 디렉터리의 내용을 읽고 쓰고 액세스할 수 있는 권한이 있음을 나타냅니다.디렉터리 소유자는 디렉터리 내의 항목(파일, 하위 디렉터리)을 나열하고 해당 항목의 콘텐츠에 액세스한 후 수정할 수 있습니다.
-
R
-x는 그룹에 디렉터리의 내용을 읽을 수 있지만 쓸 수 있는 권한이 있음을 나타냅니다. - 새 항목을 생성하거나 파일을 삭제하십시오. X 권한은cd명령을 사용하여 디렉터리에 액세스할 수도 있음을 의미합니다. ---는 다른 사용자에게 디렉터리의 내용을 읽거나 쓰거나 액세스할 수 있는 권한이 없음을 나타냅니다.사용자 소유자가 아니거나 그룹으로, 디렉터리 내의 항목을 나열하거나, 해당 항목에 대한 정보에 액세스하거나, 수정할 수 없습니다.
-
.은 SELinux 보안 컨텍스트가 디렉터리에 대해 설정되어 있음을 나타냅니다.
파일 또는 디렉터리에 자동으로 할당되는 기본 권한은 파일 또는 디렉터리가 로 끝나는 기본 권한이 아닙니다. 파일 또는 디렉터리를 생성할 때 기본 권한은 GPO에 의해 변경됩니다. 기본 권한과 Cryostat의 조합은 파일 및 디렉터리에 대한 기본 권한을 생성합니다.
10.1.2. 사용자 파일 생성 모드 마스크 링크 복사링크가 클립보드에 복사되었습니다!
사용자 파일 생성 모드 마스크( Cryostat )는 새로 생성된 파일 및 디렉터리에 대해 파일 권한이 설정된 방식을 제어하는 변수입니다. Cryo stat 는 Linux 시스템의 전체 보안을 강화하기 위해 기본 권한 값에서 권한을 자동으로 제거합니다. Cryo stat 는 심볼릭 값 또는 8진수 값으로 표시할 수 있습니다.
| 권한 | 심볼릭 값 | 8진수 값 |
| 읽기, 쓰기 및 실행 | rwx | 0 |
| 읽기 및 쓰기 | rw- | 1 |
| 읽기 및 실행 | r-x | 2 |
| 읽기 | r-- | 3 |
| 쓰기 및 실행 | -wx | 4 |
| 쓰기 | -w- | 5 |
| 실행 | --x | 6 |
| 권한 없음 | --- | 7 |
표준 사용자의 기본 Cryostat는 0002 입니다. root 사용자의 기본 Cryostat는 0022 입니다.
Cryostat의 첫 번째 숫자는 특수 권한(sticky bit, )을 나타냅니다. 마지막 세 자리 숫자는 사용자 소유자(u), 그룹 소유자(g) 및 기타(O)에서 각각 제거된 권한을 나타냅니다.
예 10.3. 파일을 생성할 때 Cryostat 적용
다음 예제에서는 8진수 값이 0137 인 경우 777 의 기본 권한이 있는 파일에 적용되는 대로 기본 권한이 640 인 파일을 생성하는 방법을 보여줍니다.
10.1.3. 기본 파일 권한 링크 복사링크가 클립보드에 복사되었습니다!
기본 권한은 새로 생성된 모든 파일 및 디렉터리에 대해 자동으로 설정됩니다. 기본 권한 값은 기본 권한에 Syslog 를 적용하여 결정됩니다.
예 10.4. 표준 사용자가 생성한 디렉터리에 대한 기본 권한
표준 사용자가 새 디렉터리 를 만들 때 Cryostat는 002 (rwxrwxr-x)로 설정되고 디렉터리에 대한 기본 권한은 777 로 설정됩니다(rwxrwxrwx). 그러면 기본 권한이 775 (drwxrwxr-x)로 제공됩니다.
| 심볼릭 값 | 8진수 값 | |
| 기본 권한 | rwxrwxrwx | 777 |
| Cryostat | rwxrwxr-x | 002 |
| 기본 권한 | rwxrwxr-x | 775 |
즉, 디렉터리 소유자와 그룹은 디렉터리의 콘텐츠를 나열하고, 디렉터리 내의 항목을 만들고, 삭제하고, 편집하고, 해당 디렉터리로 축소할 수 있습니다. 다른 사용자는 디렉터리의 콘텐츠만 나열하고 해당 디렉터리로 대체할 수 있습니다.
예 10.5. 표준 사용자가 생성한 파일에 대한 기본 권한
표준 사용자가 새 파일을 만들면 umask 가 002 (rwxrwxr-x)로 설정되고 파일의 기본 권한이 666 (rw-rw-rw-)으로 설정됩니다. 이렇게 하면 기본 권한은 664 (-rw-rw-r--)입니다.
| 심볼릭 값 | 8진수 값 | |
| 기본 권한 | rw-rw-rw- | 666 |
| Cryostat | rwxrwxr-x | 002 |
| 기본 권한 | rw-rw-r-- | 664 |
즉, 파일 소유자와 그룹은 파일을 읽고 편집할 수 있지만 다른 사용자는 파일을 읽을 수만 있습니다.
예 10.6. root 사용자가 만든 디렉토리에 대한 기본 권한
루트 사용자가 새 디렉토리 를 만들면 umask 가 022 (rwxr-xr-x)로 설정되고 디렉터리의 기본 권한이 777 (rwxrwxrwx)으로 설정됩니다. 이렇게 하면 기본 권한은 755 (rwxr-xr-x)입니다.
| 심볼릭 값 | 8진수 값 | |
| 기본 권한 | rwxrwxrwx | 777 |
| Cryostat | rwxr-xr-x | 022 |
| 기본 권한 | rwxr-xr-x | 755 |
즉, 디렉터리 소유자가 디렉터리의 내용을 나열하고 디렉터리 내에서 항목을 만들고 삭제하고 편집할 수 있습니다. 그룹 및 기타 그룹은 디렉터리의 내용만 나열하고 해당 디렉토리로 이동할 수 있습니다.
예 10.7. root 사용자가 생성한 파일에 대한 기본 권한
루트 사용자가 새 파일을 만들면 umask 가 022 (rwxr-xr-x)로 설정되고 파일의 기본 권한이 666 (rw-rw-rw-)으로 설정됩니다. 이렇게 하면 기본 권한이 644 (-rw-r-r--).
| 심볼릭 값 | 8진수 값 | |
| 기본 권한 | rw-rw-rw- | 666 |
| Cryostat | rwxr-xr-x | 022 |
| 기본 권한 | rw-r—r-- | 644 |
즉, file 소유자는 파일을 읽고 편집할 수 있지만 그룹 및 기타 사용자는 파일을 읽을 수 있습니다.
보안상의 이유로 umask 가 000 (rwxrwxrwx)으로 설정된 경우에도 일반 파일은 기본적으로 실행 권한을 가질 수 없습니다. 그러나 실행 권한으로 디렉터리를 생성할 수 있습니다.
10.1.4. 심볼릭 값을 사용하여 파일 권한 변경 링크 복사링크가 클립보드에 복사되었습니다!
chmod 유틸리티를 문자 및 기호 조합과 함께 사용하여 파일 또는 디렉터리에 대한 파일 권한을 변경할 수 있습니다.
다음 권한을 할당할 수 있습니다.
- 읽기 (r)
- 쓰기 (w)
- 실행 (x)
권한을 다음 수준의 소유권 에 할당할 수 있습니다.
- 사용자 소유자 (u)
- 그룹 소유자(g)
- 기타 (o)
- 모두 (a)
권한을 추가하거나 제거하려면 다음 기호를 사용할 수 있습니다 :
-
+: 기존 권한 위에 권한을 추가합니다. -
-기존 권한에서 권한을 제거하려면 - -
=- 기존 권한을 제거하고 명시적으로 새 권한을 정의합니다.
절차
파일 또는 디렉토리에 대한 권한을 변경하려면 다음을 사용합니다.
$ chmod <level><operation><permission> file-name<level>을 권한을 설정할 소유권 수준으로 바꿉니다.<operation>를 기호 중 하나로 바꿉니다.<permission>을 할당하려는 권한 으로 바꿉니다. file-name 을 파일 또는 디렉터리의 이름으로 바꿉니다. 예를 들어 모든 사용자에게 읽기, 쓰기, 실행(rwx)my-script.sh에 대한 권한을 부여하려면chmod a=rwx my-script.sh명령을 사용합니다.자세한 내용은 기본 파일 권한을 참조하십시오.
검증
특정 파일의 권한을 보려면 다음을 사용합니다.
$ ls -l file-namefile-name 을 파일 이름으로 바꿉니다.
특정 디렉터리에 대한 권한을 보려면 다음을 사용합니다.
$ ls -dl directory-namedirectory-name 을 디렉터리 이름으로 바꿉니다.
특정 디렉토리 내의 모든 파일에 대한 권한을 보려면 다음을 사용합니다.
$ ls -l directory-namedirectory-name 을 디렉터리 이름으로 바꿉니다.
예 10.8. 파일 및 디렉토리에 대한 권한 변경
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)에서 파일을 읽기, 쓰기, 실행(rwx)할 수 있는 권한을 제거합니다.$ 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-xmy-directory에 대한 현재 권한을 표시합니다.$ ls -dl my-directory drwxrwx---. 2 username username 4096 Feb 24 18:12 my-directory모든 사용자(
a)에 대해 읽기 및 실행(r-x) 액세스를 추가합니다.$ chmod o+rx my-directorymy-directory및 해당 콘텐츠에 대한 권한이 올바르게 설정되었는지 확인합니다.$ ls -dl my-directory drwxrwxr-x. 2 username username 4096 Feb 24 18:12 my-directory
10.1.5. 8진수 값을 사용하여 파일 권한 변경 링크 복사링크가 클립보드에 복사되었습니다!
chmod 유틸리티를 8진수 값(숫자)과 함께 사용하여 파일 또는 디렉터리의 파일 권한을 변경할 수 있습니다.
절차
기존 파일 또는 디렉터리에 대한 파일 권한을 변경하려면 다음을 사용합니다.
$ chmod octal_value file-namefile-name 을 파일 또는 디렉터리의 이름으로 바꿉니다. octal_value 를 8진수 값으로 교체합니다. 자세한 내용은 기본 파일 권한을 참조하십시오.