파일 권한 이해하기: "Chmod 777"는 무엇을 의미하나요?

리눅스 사용자이거나 리눅스 서버를 관리하는 시스템 관리자라면 “폴더에 파일을 업로드할 권한이 없습니다”라는 오류를 접할 것입니다. 구글링을 해보면, 해결책은 종종 파일 권한을 “775” 또는 “777”로 설정하는 것만큼 간단합니다. 기술적으로는 “chmod 777 파일”이라고 요청받게 됩니다. 하지만 “777”은 무엇을 의미할까요? 그리고 왜 “7”이어야 하고 “8”이나 “9”가 아니어야 할까요?
이 게시물에서는 파일 권한을 조금 더 잘 이해할 수 있도록 도와드리며, chmod 777의 의미를 설명합니다.
또한 읽기: 리눅스에서 파일을 쉽게 이름 변경하는 방법
파일 권한 이해하기
유닉스 시스템(리눅스 및 macOS 포함)은 특정 파일이나 폴더에 누가 접근할 수 있는지, 그리고 그들이 무엇을 할 수 있는지를 결정하는 파일 제어 메커니즘을 가지고 있습니다.
고려해야 할 두 가지 부분이 있습니다:
클래스. 이는 누가 파일에 접근할 수 있는지를 결정합니다. 세 가지 지정이 있습니다: 소유자, 그룹(모두 동일한 권한을 공유), 기타.
- 소유자는 일반적으로 파일이나 폴더의 생성자입니다. 리눅스에서는 홈 디렉토리에서 생성한 파일이나 폴더는 특별히 소유권을 변경하지 않는 한 일반적으로 본인이 소유합니다.
- 그룹은 동일한 권한과 사용자 특권을 공유하는 사용자 그룹을 포함합니다.
- 기타는 일반 대중을 의미합니다.

권한. 이는 사용자가 파일로 무엇을 할 수 있는지를 결정합니다. 파일을 읽거나, 쓰거나, 실행할 수 있으며, 이 세 가지 권한의 거의 모든 조합을 설정할 수 있습니다.
- 읽기. 파일의 내용을 어떤 방식으로든 수정할 수 없습니다. 폴더에 적용될 경우, 해당 폴더 내의 파일만 볼 수 있으며, 파일을 삭제하거나 수정하거나 폴더에 더 많은 파일을 추가할 수 없습니다.
- 쓰기. 파일을 수정할 수 있습니다. 폴더에 “쓰기” 접근 권한이 있는 경우, 해당 폴더에 파일을 삭제하고 추가할 수 있습니다.
- 실행. 실행은 주로 파일을 실행해야 할 때 사용되며, 스크립트를 실행해야 할 때 가장 일반적으로 사용됩니다.

클래스와 권한을 조합하여 파일에 접근할 수 있는 사람과 그들이 수행할 수 있는 작업을 제어할 수 있습니다.
파일 소유자는 종종 모든 세 가지 권한(읽기, 쓰기 및 실행)을 가집니다. 서버에 파일을 업로드할 수 없는 경우, 종종 권한 불일치 때문입니다.
파일 권한 777 설명하기
클래스와 권한에 대한 기본 이해가 생기면 “777” 및 “775”와 같은 숫자를 이해하기 시작할 수 있습니다.
모든 파일과 폴더는 권한을 제어하는 8비트 데이터를 포함합니다. 기본 이진 형식에서 000은 어떤 형태의 권한도 부여되지 않음을 의미합니다.
“읽기” 권한을 설정하면 데이터에 4비트를 추가하여 “100”(이진 형식) 또는 일반 십진수 형식으로 “4”가 됩니다. “쓰기” 권한을 설정하면 데이터에 2비트를 추가하여 “010” 및 십진수 형식으로 “2”가 됩니다. 마지막으로, “실행” 권한을 설정하면 데이터에 1비트를 추가하여 “001” 또는 십진수 형식으로 “1”이 됩니다. 요약하자면:
- 읽기는 “4”와 같습니다.
- 쓰기는 “2”와 같습니다.
- 실행은 “1”과 같습니다.
간단히 말해, 권한을 설정하는 것은 기본적인 수학입니다. 예를 들어, “읽기 및 쓰기” 권한을 설정하려면 4와 2를 결합하여 6을 얻습니다. 물론 다른 조합도 있습니다:
- 0: 권한 없음
- 1: 실행
- 2: 쓰기
- 3: 쓰기 및 실행
- 4: 읽기
- 5: 읽기 및 실행
- 6: 읽기 및 쓰기
- 7: 읽기, 쓰기 및 실행
완전한 파일 권한 세트는 첫 번째 숫자를 소유자에게, 두 번째 숫자를 그룹에게, 세 번째 숫자를 기타에게 할당합니다. 다음은 일반적으로 사용되는 권한입니다:
- 755. 이 권한 세트는 웹 서버에서 일반적으로 사용됩니다. 소유자는 읽기, 쓰기 및 실행에 대한 모든 권한을 가집니다. 다른 모든 사용자는 읽기 및 실행할 수 있지만 파일을 변경할 수는 없습니다.
- 644. 소유자만 읽고 쓸 수 있습니다. 다른 모든 사용자는 읽기만 가능합니다. 아무도 이 파일을 실행할 수 없습니다.
- 655. 소유자만 읽고 쓸 수 있으며 파일을 실행할 수 없습니다. 다른 모든 사용자는 읽고 실행할 수 있으며 파일을 수정할 수 없습니다.
777의 경우, 이는 모든 사용자가 읽기, 쓰기 및 실행할 수 있음을 의미합니다. 전체 권한을 부여하므로 주의해서 사용해야 합니다. 그러나 경우에 따라 서버에 파일을 업로드하기 전에 777 권한을 설정해야 할 수도 있습니다.
명령줄에서 파일 권한 설정하기
리눅스에서는 파일이나 폴더를 마우스 오른쪽 버튼으로 클릭하고 “속성”을 선택하여 파일 권한을 쉽게 변경할 수 있습니다. 이렇게 하면 변경할 수 있는 권한 탭이 열립니다.
반면, macOS에서는 마우스 오른쪽 버튼을 클릭하고 “정보 가져오기”를 선택하여 권한 설정을 변경할 수 있습니다. 여기에서 “공유 및 권한” 섹션을 확장하고 변경할 수 있습니다.

수정을 하려면 권한 섹션에서 관련 권한을 선택하고 더 적합한 것을 선택하세요.

하지만 파일 권한을 변경하는 유일한 방법은 아닙니다. 다음에서 더 자세히 설명하겠습니다.
chmod 777을 사용하여 파일 권한 변경하기
터미널과 명령줄에 더 익숙하다면, 여기에서도 권한을 변경할 수 있습니다.
chmod 명령은 “모드를 변경”할 수 있게 해줍니다. 이는 접근 권한을 설명하는 또 다른 방법입니다. 이를 위해 터미널을 열고 다음을 입력하세요:
chmod777/path/to/file간단히 말해, chmod 777은 이 기사 전반에 걸쳐 제시된 두 가지 개념을 결합합니다. 이는 파일을 모든 접근 권한이 있는 사람에게 읽기, 쓰기 및 실행 가능하게 만든다는 의미입니다. 따라서 이는 강력하고 잠재적으로 시스템을 손상시킬 수 있는 명령이므로 주의가 필요합니다.
요약
파일 권한이 올바르게 설정되지 않으면 장애물이 될 수 있습니다. 이는 설계상 그렇게 되어 있으며, 잠긴 시스템은 손상될 수 없습니다. 그러나 시스템이나 서버의 파일에 접근하려면 특정 권한을 변경하는 방법을 배우는 것은 유용한 기술입니다.
간단히 말해, chmod 777은 터미널 내에서 파일이나 폴더를 모든 사람이 접근할 수 있도록 만들기 위해 사용하는 명령입니다. 드물게 사용해야 하며, 작업이 끝난 후에는 더 제한적인 권한 세트로 되돌려야 합니다.
터미널이 할 수 있는 다른 작업이 궁금하다면, 명령줄에서 복사 및 붙여넣기하는 방법에 대한 게시물을 확인해 보세요. 파일 권한을 관리해야 하며, 이 게시물이 도움이 되었나요? 아래 댓글 섹션에서 알려주세요!