Linux 권한 및 chmod 사용 이해

나는 지난 몇 달 동안 Linux 에 대한 과정을 수강 했으며 항상 나를 혼란스럽게 만든 Linux 의 한 측면은 권한이 작동하는 방식이었습니다. (Linux)예를 들어, 내 웹 서버에 파일을 한 번 업로드하고 오류가 발생하면 웹 호스트에서 파일 권한을 755로 변경하라는 지시를 받았습니다.

권한을 변경하여 문제가 해결되었음에도 불구하고 그것이 무엇을 의미하는지 전혀 알 수 없었습니다. 이제 Linux 권한이 그렇게 복잡하지 않다는 것을 깨달았습니다. 시스템만 이해하면 됩니다. 이 기사에서는 높은 수준의 Linux(Linux) 권한에 대해 이야기 하고 chmod 명령을 사용하여 파일 및 폴더에 대한 권한을 변경하는 방법을 보여줍니다.

Linux 권한 및 수준

Linux 에는 기본적으로 일반적으로 걱정해야 하는 세 가지 권한이 있습니다: 읽기, 쓰기 및 실행. 이 세 가지 모두 매우 자명합니다. 이제 이러한 권한이 파일에 적용되면 레벨에 적용됩니다.

Linux 에는 소유자, 그룹 및 기타 의 세 가지 권한 수준이 있습니다 . 소유자는 파일/폴더를 소유한 사용자이고, 그룹은 파일 그룹의 다른 사용자를 포함하고 other는 소유자 또는 그룹이 아닌 다른 모든 사용자를 나타냅니다.

읽기(Read) , 쓰기 및 실행은 기호 문자 또는 8진수로 표시됩니다. 예를 들어, 일부 파일이 있는 디렉토리에서 ls -l을 수행하면 권한의 기호 문자 표현을 볼 수 있습니다.

권한은 다음과 같이 작성됩니다. 첫 번째 비트는 대시 또는 문자 d입니다. 대시(Dash) 는 파일을 의미하고 d 는 디렉토리를 의미합니다. 파일 이름이 링크인 경우 첫 번째 비트도 l 이 될 수 있습니다. (l)다음으로 3비트의 3개 그룹이 있습니다. 각 그룹의 첫 번째 비트는 읽기, 두 번째 비트는 쓰기, 세 번째 비트는 실행입니다. 처음 3비트는 소유자용, 두 번째 3비트는 그룹용, 세 번째 3비트는 기타용입니다. 여기에 더 시각적인 설명이 있습니다.

문자 대신 대시가 표시되면 소유자, 그룹 또는 다른 모든 사용자에게 해당 권한이 없음을 의미합니다. 위의 예에서 소유자, 그룹 및 기타 모든 사람은 읽기 쓰기 및 실행 권한을 가집니다.

ls -l 명령의 출력을 보면 내 연습용 텍스트 파일에 다음 권한이 있음을 알 수 있습니다.

-rw-rw-rw-

이것은 모든 사람이 파일에 대한 읽기/쓰기 권한만 가지고 있음을 의미합니다. 다음은 또 다른 예입니다.

drwxr--r--

첫 번째 비트를 보면 권한이 디렉토리에 대한 것임을 알 수 있습니다. 소유자는 읽기/쓰기/실행 권한이 있지만 그룹 및 기타 사용자는 읽기 권한만 있습니다.

8진수 표현

이것이 기호를 사용하여 Linux(Linux) 에서 권한이 표시되는 방식 입니다. 동일한 권한을 나타내는 두 번째 방법은 8진수를 사용하는 것입니다. 나중에 chmod 명령을 사용하면 기호나 8진수를 사용하여 권한을 변경할 수 있음을 알 수 있습니다.

그렇다면 Linux 는 8진수를 사용하여 읽기, 쓰기 및 실행을 어떻게 표현합니까? 기본적으로 아래와 같이 각 권한에 번호를 부여하면 됩니다.

읽기 권한은 4로, 쓰기는 2로, 실행은 1로 표시됩니다. 8진수 권한을 얻기 위해 이들을 더하기만 하면 됩니다. 예를 들어, 모든 사람에게 모든 권한이 있는 위의 예를 살펴보겠습니다.

-rwxrwxrwx

소유자는 rwx를 가지고 있으므로 4 + 2 + 1을 추가하여 값 7을 얻습니다. 그룹에 대해서도 동일한 작업을 수행하고 다른 그룹에 대해서도 동일한 작업을 수행합니다. 최종 8진수 값은 777입니다. 읽기/쓰기 권한만 부여한 예를 살펴보겠습니다.

-rw-rw-rw-

읽기 및 쓰기를 추가하기 때문에 첫 번째 8진수는 4 + 2가 됩니다. 두 번째는 세 번째 8진수와 동일합니다. 여기에서 최종 8진수 값은 666입니다.

이제 다른 방법으로 시도해 보겠습니다. 755 가 어떤 권한을 나타내는 지 알고 싶다고 가정해 봅시다 . 글쎄, 당신이 그것을 개별 숫자로 나누면 알아내는 것은 꽤 쉽습니다. 첫 번째 숫자는 7이며 4 + 2 + 1을 추가해야만 얻을 수 있습니다. 이는 소유자에게 읽기/쓰기/실행 권한이 있음을 의미합니다. 5는 4 + 1을 추가해야만 얻을 수 있습니다. 이는 그룹과 다른 사용자에게 읽기 및 실행 권한이 있음을 의미합니다.

바라건대(Hopefully) , 이것이 8진수를 사용하여 Linux 에서 권한을 나타내는 방법에 대한 좋은 설명입니다 . 전체적으로 상당히 직관적입니다.

chmod를 사용하여 권한 수정

이제 권한을 읽는 방법을 이해했으므로 권한을 변경하는 방법에 대해 이야기해 보겠습니다. 이 목적으로 사용하는 가장 쉬운 유틸리티는 chmod 명령입니다. 작동 방식은 다음과 같습니다. 명령을 설명하는 가장 좋은 방법은 예제를 살펴보는 것입니다.

위에서 이야기한 권한, 즉 다음부터 시작하겠습니다.

-rw-rw-rw-

소유자, 그룹 및 기타에 대한 실행 권한을 추가하려는 경우 두 가지 방법으로 진행할 수 있습니다. 기호 방법이나 8진수 방법을 사용할 수 있습니다. 기호 메서드의 경우 아래와 같이 다음을 수행합니다.

정확한 명령어는

chmod a+x filename

구문은 다음과 같습니다. 소유자( u(u) ), 그룹( g ), 기타( o ) 또는 모두 를 나타내는 문자 ( a ) 다음에 권한 추가를 위한 +- 다음에 대한 문자 권한( 읽기는 r , 쓰기 는 w , 실행은 (w)x ).

위의 예에서는 모든 사용자에 대한 실행 권한을 추가했습니다. 위 스크린샷에서 볼 수 있듯이 결과는 소유자, 그룹 및 기타에 대한 x 입니다. (x)이제 그룹 및 다른 사용자에 대해서만 쓰기 및 실행 권한을 제거하고 싶다고 가정해 보겠습니다.

여기에서 볼 수 있듯이 저는 다음 명령을 사용하여 이 작업을 수행했습니다.

chmod go-wx filename

그룹 및 기타의 권한을 변경하고 싶기 때문에 문자 g 와 문자 o 를 사용 합니다. 권한을 제거하고 싶으므로 기호를 사용합니다. 마지막으로 쓰기 및 실행 권한을 제거하고 싶으므로 wx 를 사용 합니다. 다음은 기호 사용에 대한 편리한 작은 테이블입니다.

이것이 symbol 메소드를 사용하는 것의 전부입니다. 이제 내가 좀 더 쉬운 8진법에 대해 이야기해 보겠습니다. Octal 은 한 번에 모든 권한을 추가하거나 제거할 수 있기 때문에 좋습니다.

파일에 대해 다음 권한으로 시작하는 경우 8진법을 사용하여 권한을 변경하는 방법을 살펴보겠습니다.

-rw-rw-rw-

위에서(Above) 다음 명령을 사용한 것을 볼 수 있습니다.

chmod 744 filename

이것은 기본적으로 소유자가 읽기/쓰기/실행 권한을 갖고 그룹 및 기타는 읽기 권한만 얻는다는 것을 의미합니다. 보시다시피 하나의 간단한 명령으로 권한을 쉽게 추가하거나 제거할 수 있습니다. 계속해서 권한을 다시 변경하고 싶습니다.

이제 다시 매우 간단한 다음 명령을 사용했습니다.

chmod 640 filename

여기서는 소유자에게 읽기/쓰기 권한을 부여하고 그룹에는 읽기 권한만 부여하고 다른 그룹에는 권한을 부여하지 않습니다. 권한이 없음을 나타내려면 0을 사용합니다. 아주 간단하죠?

결론적으로 이것은 Linux 권한에 대한 매우 간단한 개요이며 이보다 훨씬 더 복잡해질 수 있지만 초보자에게는 시작하기에 좋은 곳입니다. 앞으로 더 고급 권한에 대한 기사를 더 많이 게시하겠습니다. 질문이 있으시면 언제든지 댓글을 남겨주세요. 즐기다!



About the author

저는 이 분야에서 거의 10년의 경험을 가진 소프트웨어 엔지니어이자 블로거입니다. 저는 Mac 및 Windows 플랫폼을 위한 도구 리뷰 및 튜토리얼 제작을 전문으로 할 뿐만 아니라 소프트웨어 개발 주제에 대한 전문가 논평을 제공합니다. 저는 또한 전 세계의 기술 컨퍼런스에서 프레젠테이션을 한 전문 연사이자 강사입니다.



Related posts