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
$ ls -l
-rwxrw----. 1 sysadmins sysadmins 2 Mar 2 08:43 file
-
-
파일이 있음을 나타냅니다. -
rwx
는 파일 소유자가 파일을 읽고, 쓰고, 실행할 수 있는 권한이 있음을 나타냅니다. -
RW-
는 그룹에 읽기 및 쓰기 권한이 있지만 파일을 실행하지 않음을 나타냅니다. -
---
는 다른 사용자에게 파일을 읽거나 쓰거나 실행할 수 있는 권한이 없음을 나타냅니다. -
.
은 SELinux 보안 컨텍스트가 파일에 대해 설정되어 있음을 나타냅니다.
예 10.2. 디렉터리에 대한 권한
디렉터리에 다음 권한이 있는 경우:
ls -dl directory
$ 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
$ chmod <level><operation><permission> file-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <level>
을 권한을 설정할 소유권 수준으로 바꿉니다.<operation>
를 기호 중 하나로 바꿉니다.<permission>
을 할당하려는 권한 으로 바꿉니다. file-name 을 파일 또는 디렉터리의 이름으로 바꿉니다. 예를 들어 모든 사용자에게 읽기, 쓰기, 실행(rwx
)my-script.sh
에 대한 권한을 부여하려면chmod a=rwx my-script.sh
명령을 사용합니다.자세한 내용은 기본 파일 권한을 참조하십시오.
검증
특정 파일의 권한을 보려면 다음을 사용합니다.
ls -l file-name
$ ls -l file-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow file-name 을 파일 이름으로 바꿉니다.
특정 디렉터리에 대한 권한을 보려면 다음을 사용합니다.
ls -dl directory-name
$ ls -dl directory-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow directory-name 을 디렉터리 이름으로 바꿉니다.
특정 디렉토리 내의 모든 파일에 대한 권한을 보려면 다음을 사용합니다.
ls -l directory-name
$ ls -l directory-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow directory-name 을 디렉터리 이름으로 바꿉니다.
예 10.8. 파일 및 디렉토리에 대한 권한 변경
my-file.txt
의 파일 권한을-rw-rw-r--
에서-rw------
로 변경하려면 다음을 사용합니다.my-file.txt
의 현재 권한을 표시합니다 :ls -l my-file.txt
$ ls -l my-file.txt -rw-rw-r--. 1 username username 0 Feb 24 17:56 my-file.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그룹 소유자(
g
) 및 기타(o
)에서 파일을 읽기, 쓰기, 실행(rwx
)할 수 있는 권한을 제거합니다.chmod go= my-file.txt
$ chmod go= my-file.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 등호(
=
) 후에 지정되지 않는 모든 권한은 자동으로 금지됩니다.my-file.txt
에 대한 권한이 올바르게 설정되었는지 확인합니다.ls -l my-file.txt
$ ls -l my-file.txt -rw-------. 1 username username 0 Feb 24 17:56 my-file.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
my-directory
의 파일 권한을drwxrwx---에서
로 변경하려면 다음을 사용합니다.drwx
rwxr-xmy-directory
에 대한 현재 권한을 표시합니다.ls -dl my-directory
$ ls -dl my-directory drwxrwx---. 2 username username 4096 Feb 24 18:12 my-directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 사용자(
a
)에 대해 읽기 및 실행(r-x
) 액세스를 추가합니다.chmod o+rx my-directory
$ chmod o+rx my-directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow my-directory
및 해당 콘텐츠에 대한 권한이 올바르게 설정되었는지 확인합니다.ls -dl my-directory
$ ls -dl my-directory drwxrwxr-x. 2 username username 4096 Feb 24 18:12 my-directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.5. 8진수 값을 사용하여 파일 권한 변경 링크 복사링크가 클립보드에 복사되었습니다!
chmod
유틸리티를 8진수 값(숫자)과 함께 사용하여 파일 또는 디렉터리의 파일 권한을 변경할 수 있습니다.
절차
기존 파일 또는 디렉터리에 대한 파일 권한을 변경하려면 다음을 사용합니다.
chmod octal_value file-name
$ chmod octal_value file-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow file-name 을 파일 또는 디렉터리의 이름으로 바꿉니다. octal_value 를 8진수 값으로 교체합니다. 자세한 내용은 기본 파일 권한을 참조하십시오.