카테고리 없음

Linux : 리눅스 파일 권한 : 개념, 예제, 방법

얇은생각 2023. 1. 24. 07:30
반응형

Linux에서 파일 사용 권한, 속성 및 소유권은 시스템 프로세스 및 사용자가 파일에 대해 가지는 액세스 수준을 제어합니다. 이렇게 하면 인증된 사용자와 프로세스만 특정 파일 및 디렉토리에 액세스할 수 있습니다.

 

 

Linux : 리눅스 파일 권한 : 개념, 예제, 방법

 

 

Linux 파일 사용 권한

기본 리눅스 권한 모델은 각 시스템 파일을 소유자 및 그룹과 연결하고 세 가지 다른 클래스의 사용자에게 권한 액세스 권한을 할당하는 방식으로 작동합니다.

- 파일 소유자

- 그룹 멤버

- 다른 사람들

 

파일 소유권은 chow 및 chgrp 명령을 사용하여 변경할 수 있습니다.

각 사용자 클래스에는 세 가지 파일 권한 유형이 적용됩니다.

- 읽기 권한

- 쓰기 권한

- 실행 권한

 

이 개념을 사용하면 파일을 읽고, 파일에 쓰거나, 파일을 실행할 수 있는 사용자를 제어할 수 있습니다.

파일 권한을 보려면 ls 명령을 사용합니다.

ls -l file_name

# -rw-r--r-- 12 linuxize users 12.0K Apr  28 10:10 file_name
# |[-][-][-]-   [------] [---]
# | |  |  | |      |       |
# | |  |  | |      |       +-----------> 7. Group
# | |  |  | |      +-------------------> 6. Owner
# | |  |  | +--------------------------> 5. Alternate Access Method
# | |  |  +----------------------------> 4. Others Permissions
# | |  +-------------------------------> 3. Group Permissions
# | +----------------------------------> 2. Owner Permissions
# +------------------------------------> 1. File Type

 

 

첫 번째 문자는 파일 형식을 나타냅니다. 일반 파일(-), 디렉터리(d), 심볼 링크(l) 또는 기타 특수 유형의 파일일 수 있습니다. 다음 9개 문자는 파일 사용 권한을 나타냅니다. 각각 3자씩 세 개씩 세 개씩입니다. 첫 번째 트리플릿은 소유자 권한을, 두 번째 트리플릿은 그룹 권한을, 마지막 트리플릿은 다른 모든 권한을 표시합니다.

위의 예(rw-r--r--)에서 파일 소유자는 읽기 및 쓰기 권한(rw-)을 가지고 있으며 그룹 및 기타 사용자는 읽기 권한(r--)만 가지고 있음을 의미합니다.

파일 사용 권한은 파일 유형에 따라 다른 의미를 가집니다.

세 개의 권한 세 개 각각은 다음 문자로 구성될 수 있으며 파일 또는 디렉터리로 설정되었는지에 따라 다른 효과를 가집니다.

사용 권한이 파일에 미치는 영향입니다.

 

 

파일의 사용 권한 문자 의미

Read

- 파일을 읽을 수 없습니다. 파일 내용을 볼 수 없습니다.

r 파일을 읽을 수 있습니다.

 

Write

- 파일을 변경하거나 수정할 수 없습니다.

w 파일을 변경하거나 수정할 수 있습니다.

 

실행

- 파일을 실행할 수 없습니다.

x 파일을 실행할 수 있습니다.

s 사용자 트리플릿에 있는 경우 setuid 비트를 설정합니다. 그룹 트리플릿에서 발견되는 경우 setgid 비트를 설정합니다. 이것은 또한 x 플래그가 설정되었음을 의미합니다. 실행 파일에 setuid 또는 setgid 플래그를 설정하면 파일은 파일의 소유자 및/또는 그룹 권한으로 실행됩니다.

S s와 동일하지만 x 플래그가 설정되지 않았습니다. 이 플래그는 파일에 거의 사용되지 않습니다.

t 다른 세쌍둥이에서 발견되면 끈적끈적한 비트를 설정합니다. 이것은 또한 x 플래그가 설정되었음을 의미합니다. 이 플래그는 파일에 쓸모가 없습니다.

T t와 동일하지만 x 플래그가 설정되지 않았습니다. 이 플래그는 파일에 쓸모가 없습니다.

 

 

 

권한이 디렉터리(폴더)에 미치는 영향

디렉터리는 다른 파일 및 디렉터리를 포함할 수 있는 특수한 유형의 파일입니다.

 디렉토리의 권한 문자 의미입니다.

Read

- 디렉터리의 내용을 표시할 수 없습니다.

r 디렉토리의 내용을 표시할 수 있습니다. (예: ls를 사용하여 디렉토리 내부의 파일을 나열할 수 있습니다.)

 

Write

- 디렉터리 내용을 변경할 수 없습니다.

w 디렉토리의 내용을 변경할 수 있습니다. (예: 새 파일 만들기, 파일 삭제 등)

 

Execute

- 디렉터리를 다음으로 변경할 수 없습니다.

x CD를 사용하여 디렉토리를 탐색할 수 있습니다.

s 사용자 트리플릿에 있는 경우 setuid 비트를 설정합니다. 그룹 트리플릿에 있는 경우 setgid 비트를 설정합니다. 이것은 또한 x 플래그가 설정되었음을 의미합니다. setgid 플래그가 디렉토리에 설정된 경우, setgid 플래그 내에 작성된 새 파일은 파일을 작성한 사용자의 기본 그룹 ID 대신 GID(디렉토리 그룹 ID)를 상속합니다. setuid는 디렉터리에 영향을 주지 않습니다.

S s와 동일하지만 x 플래그가 설정되지 않았습니다. 이 플래그는 디렉터리에 사용할 수 없습니다.

t 다른 세쌍둥이에서 발견되면 끈적끈적한 비트를 설정합니다. 이것은 또한 x 플래그가 설정되었음을 의미합니다. 디렉터리에 고정 비트가 설정된 경우 파일 소유자, 디렉터리 소유자 또는 관리 사용자만 디렉터리 내의 파일을 삭제하거나 이름을 바꿀 수 있습니다.

T는 t와 동일하지만 x 플래그가 설정되지 않았습니다. 이 플래그는 디렉터리에 사용할 수 없습니다.

 

 

 

파일 권한을 변경

파일 권한은 chmod 명령을 사용하여 변경할 수 있습니다. 루트, 파일 소유자 또는 sudo 권한이 있는 사용자만 파일의 권한을 변경할 수 있습니다. chmod를 사용할 때는 특히 사용 권한을 반복적으로 변경할 때는 각별히 주의하십시오. 명령은 공백으로 구분된 하나 이상의 파일 및/또는 디렉토리를 인수로 받아들일 수 있습니다.

사용 권한은 기호 모드, 숫자 모드 또는 참조 파일을 사용하여 지정할 수 있습니다.

 

 

기호(텍스트) 메서드

기호 모드를 사용할 때 chmod 명령의 구문은 다음과 같은 형식을 가집니다.

 

chmod [OPTIONS] [ugoa…][-+=]perms…[,…] FILE...

 

 

첫 번째 플래그 집합([ugoa…]), 사용자 플래그는 파일에 대한 권한이 변경되는 사용자의 클래스를 정의합니다.

u - 파일 소유자입니다.

g - 그룹의 구성원인 사용자입니다.

o - 다른 모든 사용자입니다.

a - 모든 사용자가 ugo와 동일합니다.

 

사용자 플래그가 생략되면 기본값은 a입니다.

두 번째 플래그 집합([-+=])인 작업 플래그는 사용 권한을 제거할지, 추가할지 또는 설정할지를 정의합니다.

 - 지정된 권한을 제거합니다.

+ 지정된 권한을 추가합니다.

= 현재 권한을 지정된 권한으로 변경합니다. = 기호 뒤에 권한이 주어지지 않으면 지정된 사용자 클래스의 모든 권한이 제거됩니다.

 

권한(perms...)은 r, w, x, X, s 및 t 중 하나 이상을 사용하여 명시적으로 설정됩니다. 한 사용자의 클래스에서 다른 사용자의 클래스로 권한을 복사할 때 setu, g 및 o의 단일 문자를 사용합니다.

둘 이상의 사용자 클래스([,…])에 대한 권한을 설정할 때 쉼표(공백 없음)를 사용하여 기호 모드를 구분합니다.

다음은 기호 모드에서 chmod 명령을 사용하는 몇 가지 예입니다.

그룹 구성원에게 파일을 실행할 수 있는 권한을 부여하지만 파일을 읽고 쓸 수는 없습니다.

chmod g=x filename

 

 

모든 사용자에 대한 쓰기 권한을 제거합니다.

chmod a-w filename

 

 

다른 사용자에 대한 실행 권한을 반복적으로 제거합니다.

chmod -R o-x dirname

 

 

파일 소유자를 제외한 모든 사용자에 대한 읽기, 쓰기 및 실행 권한을 제거합니다.

chmod og-rwx filename

 

 

다음 양식을 사용하여 동일한 작업을 수행할 수도 있습니다.

chmod og= filename

 

 

파일 소유자에게 읽기, 쓰기 및 실행 권한을 부여하고 파일 그룹에 읽기 권한을 부여하며 다른 모든 사용자에게 권한을 부여하지 않습니다.

chmod u=rwx,g=r,o= filename

 

 

 

숫자 메서드

기호 모드를 사용할 때 chmod 명령의 구문은 다음과 같은 형식을 가집니다.

chmod [OPTIONS] NUMBER FILE...

 

 

숫자 모드를 사용할 때 세 가지 사용자 클래스(소유자, 그룹 및 기타 모든 클래스)에 대한 권한을 동시에 설정할 수 있습니다.

권한 번호는 3자리 또는 4자리 숫자일 수 있습니다. 3자리 숫자를 사용할 경우 첫 번째 숫자는 파일 소유자의 권한을 나타내고, 두 번째 숫자는 파일 그룹, 마지막 숫자는 다른 모든 사용자의 권한을 나타냅니다.

각 쓰기, 읽기 및 실행 권한에는 다음과 같은 숫자 값이 있습니다.

 r (read) = 4

w(write) = 2

x (execute) = 1

no permissions = 0

 

특정 사용자 클래스의 사용 권한 번호는 해당 그룹에 대한 사용 권한 값의 합으로 표시됩니다.

숫자 모드에서 파일의 사용 권한을 확인하려면 모든 사용자의 클래스에 대한 합계를 계산하십시오. 예를 들어 파일 소유자에게 읽기, 쓰기 및 실행 권한을 부여하고 파일 그룹에는 읽기 및 실행 권한을 부여하며 다른 모든 사용자에게만 읽기 권한을 부여하려면 다음을 수행합니다.

 

owner: rwx=4+2+1=7

group: r-x=4+0+1=5

others: r-x=4+0+0=4

 

위의 방법을 사용하여 원하는 권한을 나타내는 숫자 754에 도달합니다.

setuid, setgid 및 고정 비트 플래그를 설정하려면 4자리 숫자를 사용합니다.

4자리 숫자를 사용할 때 첫 번째 숫자는 다음과 같은 의미를 가집니다.

 

setuid=4

setgid=2

sticky=1

no changes = 0

 

다음 세 자리 숫자는 3자리 숫자를 사용할 때와 같은 의미를 가집니다.

첫 번째 자릿수가 0이면 생략할 수 있으며, 모드는 3자리로 나타낼 수 있습니다. 숫자 모드 0755는 755와 동일합니다.

숫자 모드를 계산하기 위해 다른 방법(이진법)을 사용할 수도 있지만 조금 더 복잡합니다. 대부분의 사용자는 4, 2, 1을 사용하여 숫자 모드를 계산하는 방법을 알면 충분합니다.

stat 명령을 사용하여 숫자 표기법으로 파일의 권한을 확인할 수 있습니다.

stat -c "%a" file_name

 

 

다음은 숫자 모드에서 chmod 명령을 사용하는 몇 가지 예입니다.

파일 소유자에게 읽기 및 쓰기 권한을 부여하고 그룹 구성원 및 다른 모든 사용자에게 읽기 권한만 부여합니다.

chmod 644 dirname

 

 

파일 소유자에게 읽기, 쓰기 및 실행 권한, 그룹 구성원에게 읽기 및 실행 권한을 부여하고 다른 모든 사용자에게 권한을 부여하지 않습니다.

chmod 750 dirname

 

 

지정된 디렉토리에 읽기, 쓰기 및 실행 권한과 고정 비트를 부여합니다.

chmod 1777 dirname

 

 

파일 소유자에게 읽기, 쓰기 및 실행 권한을 반복적으로 설정하고 지정된 디렉터리의 다른 모든 사용자에 대한 권한은 설정하지 않습니다.

chmod -R 700 dirname

 

 

Linux에서 파일에 대한 액세스는 파일 권한, 속성 및 소유권을 사용하여 제한됩니다. 파일의 권한을 변경하려면 chmod 명령을 사용합니다.

반응형