SW/리눅스

Linux : chmod 777 의미 이해 방법, 예제, 명령어

얇은생각 2022. 7. 23. 07:30
반응형

웹 서버의 사용 권한 문제를 해결하려고 하고 인터넷에서 정보를 찾았는데 웹 디렉터리 chmod 777을 반복적으로 사용해야 한다고 합니다. 이 작업을 수행하기 전에 chmod -R 777의 기능과 사용 권한을 777로 설정하면 안 되는 이유를 이해해야 합니다.

이 문서에서는 기본 Linux 권한 모델과 권한에 해당하는 숫자의 의미를 설명합니다.

 

 

Linux : chmod 777 의미 이해 방법, 예제, 명령어

 

 

Linux 파일 사용 권한 이해

Linux에서 파일에 대한 액세스는 파일 사용 권한, 속성 및 소유권을 사용하여 운영 체제에 의해 제어됩니다. Linux 파일 시스템 사용 권한 모델을 이해하면 인증된 사용자와 프로세스로만 파일 및 디렉터리에 대한 액세스를 제한하고 시스템을 보다 안전하게 보호할 수 있습니다.

각 파일은 특정 사용자와 그룹이 소유하고 세 가지 사용자 클래스에 대한 사용 권한 액세스 권한이 할당됩니다.

 - 파일 소유자

- 멤버

- 기타(다른 모든 사람)

 

각 사용자 클래스에 적용되는 세 가지 파일 사용 권한 유형이 있으며, 이를 통해 파일을 읽거나, 파일에 쓰거나, 실행할 수 있는 사용자를 지정할 수 있습니다. 다음과 같은 의미가 다른 파일과 디렉터리에 동일한 사용 권한 특성이 적용됩니다.

 

- 읽기 권한

- 파일을 읽을 수 있습니다. 예를 들어 읽기 권한이 설정된 경우 사용자는 텍스트 편집기에서 파일을 열 수 있습니다.

- 디렉토리의 내용을 볼 수 있습니다. 사용자는 ls 명령을 사용하여 디렉토리 내부의 파일을 나열할 수 있습니다.

 

- 쓰기 권한

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

- 디렉토리의 내용은 변경될 수 있습니다. 사용자는 새 파일 만들기, 기존 파일 삭제, 파일 이동, 파일 이름 .. 등을 수행할 수 있습니다.

 

- 실행 권한

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

- 디렉터리는 cd 명령을 사용하여 입력할 수 있습니다.

 

파일 권한은 ls 명령을 사용하여 볼 수 있습니다. 다음은 예입니다.

ls -l filename.txt

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

 

 

첫 번째 문자는 파일 유형을 보여줍니다. 일반 파일(-), 디렉터리(d), 심볼릭 링크(l) 또는 기타 특수 파일 형식일 수 있습니다.

다음 9자는 파일 사용 권한을 나타내며, 각각 3자씩 세 쌍둥이입니다. 첫 번째 세 쌍둥이에는 소유자 권한이, 두 번째 세 쌍둥이에는 그룹 권한이, 마지막 세 쌍둥이에는 다른 모든 권한이 표시됩니다.

 

 

 

권한번호

파일 사용 권한은 숫자 또는 기호 형식으로 나타낼 수 있습니다. 이 문서에서는 숫자 형식을 중점적으로 살펴보겠습니다.

권한 번호는 0에서 7 사이의 세 자리 또는 네 자리 숫자로 구성될 수 있습니다.

3자리 숫자를 사용하는 경우 첫 번째 숫자는 파일 소유자의 사용 권한을 나타내고 두 번째 숫자는 파일 그룹 및 마지막 숫자는 다른 모든 사용자의 사용 권한을 나타냅니다.

쓰기, 읽기 및 실행 권한의 숫자 값은 다음과 같습니다.

 r(읽기) = 4

w(쓰기) = 2

x(숫자) = 1

no permissions = 0

 

특정 사용자 클래스의 권한 자릿수는 해당 클래스에 대한 권한 값의 합계입니다.

권한 번호의 각 자릿수는 4, 2, 1 및 0의 합계일 수 있습니다.

 

0(0+0+0) – 권한이 없습니다.

1(0+0+1) – 권한만 실행합니다.

2(0+2+0) – 쓰기 권한만 있습니다.

3 (0+2+1) – 쓰기 및 실행 권한을 가집니다.

4(4+0+0) – 읽기 권한만 있습니다.

5(4+0+1) – 읽기 및 실행 권한을 가집니다.

6(4+2+0) – 읽기 및 쓰기 권한을 가집니다.

7 (4+2+1) – 읽기, 쓰기 및 실행 권한을 가집니다.

 

예를 들어 권한 번호가 750으로 설정되어 있으면 파일 소유자가 읽기, 쓰기 및 실행 권한을 가지고 있고 파일 그룹에는 읽기 및 실행 권한이 있으며 다른 사용자에게는 권한이 없음을 의미합니다.

 

소유자: rwx=4+2+1=7

그룹: r-x=4+0+1=5

기타: r-x=0+0+0=0

 

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

 

setuid=4

setgid=2

sticky=1

no changes = 0

 

다음 세 자리는 3자리 숫자를 사용할 때와 같은 의미입니다. 첫 번째 자리가 0이면 생략할 수 있으며 모드를 3자리로 나타낼 수 있습니다. 숫자 모드 0755는 755와 동일합니다.

파일의 사용 권한을 숫자(옥탈) 표기법으로 보려면 stat 명령을 사용합니다.

stat -c "%a" filename

# 644

 

 

 

chmod 777을 사용 지양

파일 또는 디렉터리에 대한 777 사용 권한을 설정하면 모든 사용자가 읽기, 쓰기 및 실행 가능하며 보안 위험이 매우 클 수 있습니다.

예를 들어 /var/ww 디렉터리에 있는 모든 파일 및 하위 디렉터리의 사용 권한을 777로 반복적으로 변경하면 시스템의 모든 사용자가 해당 디렉터리에서 파일을 생성, 삭제 또는 수정할 수 있습니다.

웹 서버에 사용 권한 문제가 발생하는 경우 사용 권한을 777로 반복적으로 설정하는 대신 파일 소유권을 응용 프로그램을 실행하는 사용자로 변경하고 파일 사용 권한을 644로, 디렉터리 사용 권한을 755로 설정하십시오.

파일 소유권은 chown 명령과 chmod 명령을 사용하여 변경할 수 있습니다.

서버에 사용자 "리눅스화"로 실행 중인 PHP 응용프로그램이 있다고 가정해 보겠습니다. 올바른 사용 권한을 설정하려면 다음을 수행하십시오.

chown -R linuxize: /var/www
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;

 

 

루트, 파일 소유자 또는 sudo 권한이 있는 사용자만 파일의 사용 권한을 변경할 수 있습니다. chmod를 사용할 때 특히 사용 권한을 반복적으로 변경할 때 각별히 주의해야 합니다.

리눅스 시스템을 관리하는 경우 리눅스 사용 권한이 어떻게 작동하는지 알아야 합니다.

777(rwxrwxrwx) 사용 권한 파일 및 디렉터리 사용 권한은 설정하지 마십시오. 777은 누구나 그 파일들을 가지고 무엇이든 할 수 있다는 뜻입니다.

 

 

 

참조

https://linuxize.com/post/what-does-chmod-777-mean/

반응형