Linux에서 chmod 명령을 사용하는 방법

0
549
Linux 랩톱의 양식화 된 터미널 프롬프트
Fatmawati Achmad Zaenuri / Shutterstock.com

Linux를 사용하여 파일에 액세스하고 디렉토리를 검색하고 스크립트를 실행할 수있는 사람을 제어하십시오. chmod 명령. 이 명령은 Linux 파일 권한을 수정합니다. 언뜻보기에는 복잡해 보이지만 실제로는 작동 방식을 알고 있으면 매우 간단합니다.

chmod는 파일 권한을 수정합니다

Linux에서 파일 또는 디렉토리에 대한 작업을 수행 할 수있는 사람은 권한 세트를 통해 제어됩니다. 세 가지 권한 세트가 있습니다. 하나는 파일 소유자를위한 세트이고 다른 하나는 파일 그룹 구성원을위한 세트이며 다른 하나는 다른 사람을위한 세트입니다.

권한은 파일 또는 디렉토리에서 수행 할 수있는 조치를 제어합니다. 파일을 읽거나 수정하거나 스크립트 또는 프로그램 인 경우 파일이 실행되는 것을 허용하거나 방지합니다. 디렉토리의 경우 권한은 누가 cd 디렉토리에 파일을 작성하거나 수정할 수있는 사람.

당신은 chmod 각 권한을 설정하는 명령입니다. 파일이나 디렉토리에 어떤 권한이 설정되어 있는지 확인하려면 ls.

파일 권한보기 및 이해

우리는 사용할 수 있습니다 -l 가지고있는 (긴 형식) 옵션 ls 파일 및 디렉토리에 대한 파일 권한을 나열하십시오.

ls -l

터미널 창에서 ls -l의 출력

각 줄에서 첫 번째 문자는 나열되는 항목 유형을 나타냅니다. 대시 (-) 파일입니다. 그것이 편지라면 d 디렉토리입니다.

다음 9자는 3 가지 권한 세트에 대한 설정을 나타냅니다.

  • 처음 세 문자는 파일을 소유 한 사용자의 권한을 보여줍니다 (사용자 권한).
  • 가운데 세 문자는 파일 그룹의 구성원 (그룹 권한).
  • 마지막 세 문자는 처음 두 범주에 속하지 않은 사람에 대한 권한을 표시합니다 (다른 권한).

각 권한 세트에는 3 개의 문자가 있습니다. 문자는 권한 중 하나의 존재 또는 부재를 나타내는 표시기입니다. 그들은 대시 (-) 또는 편지. 문자가 대시이면 권한이 부여되지 않았 음을 의미합니다. 캐릭터가 r, w또는 x, 해당 권한이 부여되었습니다.

글자는 다음을 나타냅니다.

  • 아르 자형: 읽기 권한. 파일을 열고 내용을 볼 수 있습니다.
  • : 쓰기 권한. 파일을 편집, 수정 및 삭제할 수 있습니다.
  • 엑스: 권한을 실행합니다. 파일이 스크립트 또는 프로그램 인 경우 실행할 수 있습니다 (실행).

예를 들면 다음과 같습니다.

  • --- 권한이 전혀 부여되지 않았 음을 의미합니다.
  • rwx 모든 권한이 부여되었음을 의미합니다. 읽기, 쓰기 및 실행 표시기가 모두 있습니다.

스크린 샷에서 첫 번째 줄은 d. 이 줄은 “아카이브”라는 디렉토리를 나타냅니다. 디렉토리의 소유자는 “dave”이고 디렉토리가 속한 그룹의 이름은 “dave”라고도합니다.

다음 세 문자는이 디렉토리에 대한 사용자 권한입니다. 소유자에게 모든 권한이 있음을 나타냅니다. 그만큼 r, w, x 문자가 모두 존재합니다. 이는 사용자 dave가 해당 디렉토리에 대한 읽기, 쓰기 및 실행 권한을 가지고 있음을 의미합니다.

세 문자의 두 번째 세트는 그룹 권한입니다. r-x. 이들은 dave 그룹의 구성원이이 디렉토리에 대한 읽기 및 실행 권한을 가지고 있음을 보여줍니다. 즉, 디렉토리에 파일과 내용을 나열 할 수 있으며 cd 해당 디렉토리에 (실행)하십시오. 쓰기 권한이 없으므로 파일을 작성, 편집 또는 삭제할 수 없습니다.

세 문자의 마지막 세트도 r-x. 이 권한은 처음 두 권한 세트에 의해 관리되지 않는 사람들에게 적용됩니다. 이 사람들 ( “others”)은이 디렉토리에 대한 읽기 및 실행 권한을 갖습니다.

요약하자면, 그룹 구성원과 다른 사람들은 읽기 및 실행 권한을 갖습니다. dave라는 사용자에게도 쓰기 권한이 있습니다.

다른 모든 파일 (mh.sh 스크립트 파일 제외)에 대해 dave와 dave 그룹의 구성원은 파일에 대한 읽기 및 쓰기 특성을 가지며 다른 파일은 읽기 권한 만 갖습니다.

mh.sh 스크립트 파일의 특수한 경우 소유자 dave와 그룹 구성원은 읽기, 쓰기 및 실행 권한을 가지고 있고 다른 사람은 읽기 및 실행 권한 만 있습니다.

권한 구문 이해

사용 chmod 권한을 설정하려면 다음과 같이 알려야합니다.

  • WHO: 누가 권한을 설정하고 있습니까?
  • : 우리는 어떤 변화를하고 있습니까? 권한을 추가 또는 제거하고 있습니까?
  • 어느: 어떤 권한을 설정합니까?

우리는 지표를 사용하여 이러한 값을 나타내며 u+x여기서 “u”는 “사용자”(누가)를 의미하고 “+”는 추가 (무엇)를 의미하고 “x”는 실행 권한 (어떤)을 의미합니다.

우리가 사용할 수있는“who”값은 다음과 같습니다.

  • : 사용자, 파일 소유자를 의미합니다.
  • : 그룹. 파일이 속한 그룹의 구성원을 의미합니다.
  • 영형: 다른 사람들은 ug 권한.
  • : 모두, 위의 모든 것을 의미합니다.

이들 중 어느 것도 사용되지 않으면 chmod 마치“a“가 사용되었습니다.

우리가 사용할 수있는“what”값은 다음과 같습니다.

  • : 빼기 기호. 권한을 제거합니다.
  • +: 더하기 부호. 권한을 부여합니다. 권한이 기존 권한에 추가됩니다. 이 권한과이 권한 만 설정하려면 = 옵션, 아래 설명.
  • =: 부호와 같습니다. 권한을 설정하고 다른 사람을 제거하십시오.

우리가 사용할 수있는“which”값은 다음과 같습니다.

  • 아르 자형: 읽기 권한.
  • : 쓰기 권한.
  • 엑스: 실행 권한.

권한 설정 및 수정

모든 사람에게 모든 권한이있는 파일이 있다고 가정 해 보겠습니다.

ls -l new_ file.txt

터미널 창에서 ls -l new_ file.txt

우리는 사용자 dave에게 읽기 및 쓰기 권한이 있고 그룹과 다른 사용자에게는 읽기 권한 만 갖기를 원합니다. 다음 명령을 사용하여 수행 할 수 있습니다.

chmod u=rw,og=r new_file.txt

터미널 창에서 chmod u = rw, og = r new_file.txt

“=”연산자를 사용한다는 것은 기존 권한을 지우고 지정된 권한을 설정한다는 의미입니다.

이 파일에 대한 새로운 권한을 확인하십시오 :

ls -l new_file.txt

터미널 창에서 ls -l new_ file.txt

기존 권한이 제거되었으며 예상대로 새 권한이 설정되었습니다.

권한을 추가하는 방법 없이 기존 권한 설정을 제거 하시겠습니까? 우리도 그렇게 쉽게 할 수 있습니다.

편집이 완료된 스크립트 파일이 있다고 가정하겠습니다. 모든 사용자가 실행할 수 있도록해야합니다. 현재 권한은 다음과 같습니다.

ls -l new_script.sh

터미널 창에서 ls -l new_script.sh

다음 명령으로 모든 사람에 대한 실행 권한을 추가 할 수 있습니다.

chmod a+x new_script.sh

터미널 창에서 chmod a + x new_script.sh

권한을 살펴보면 이제 모든 사람에게 실행 권한이 부여되고 기존 권한이 여전히 남아 있음을 알 수 있습니다.

ls -l new_script.sh

터미널 창에서 ls -l new_script.sh

“a + x”선언에서“a”없이도 같은 결과를 얻을 수있었습니다. 다음 명령도 잘 작동했을 것입니다.

chmod +x new_script.sh

여러 파일에 대한 권한 설정

한 번에 여러 파일에 권한을 적용 할 수 있습니다.

다음은 현재 디렉토리의 파일입니다.

ls -l

터미널 창에서 ls -l

확장자가“.page”인 파일에서“다른”사용자에 대한 쓰기 권한을 제거한다고 가정 해 봅시다. 다음 명령으로이를 수행 할 수 있습니다.

chmod o-r *.page

터미널 창에서 chmod o-r * .page

어떤 효과가 있었는지 확인해 봅시다 :

ls -l

터미널 창에서 ls -l

보다시피, “기타”사용자 범주의 “.page”파일에서 읽기 권한이 제거되었습니다. 다른 파일은 영향을받지 않았습니다.

하위 디렉토리에 파일을 포함하고 싶었다면 -R (재귀) 옵션.

chmod -R o-r *.page

숫자 속기

사용하는 다른 방법 chmod 소유자, 그룹 및 다른 사람에게 부여하려는 권한을 3 자리 숫자로 제공하는 것입니다. 가장 왼쪽 숫자는 소유자의 권한을 나타냅니다. 가운데 숫자는 그룹 구성원의 권한을 나타냅니다. 가장 오른쪽 숫자는 다른 사람의 권한을 나타냅니다.

사용할 수있는 숫자와 그 숫자는 다음과 같습니다.

  • 0 : (000) 권한이 없습니다.
  • 1 : (001) 실행 권한.
  • 2 : (010) 쓰기 권한.
  • 3 : (011) 쓰기 및 실행 권한.
  • 4 : (100) 읽기 권한.
  • 5 : (101) 읽기 및 실행 권한.
  • 6 : (110) 읽기 및 쓰기 권한.
  • 7 : (111) 읽기, 쓰기 및 실행 권한.

세 가지 권한 각각은 10 진수에 해당하는 2 진수 비트 중 하나로 표시됩니다. 따라서 2 진수로 101 인 5는 읽기 및 실행을 의미합니다. 이진수로 010 인 2는 쓰기 권한을 의미합니다.

이 방법을 사용하여 원하는 권한을 설정하십시오. 기존 권한에는 이러한 권한을 추가하지 않습니다. 따라서 읽기 및 쓰기 권한이 이미있는 경우 실행 권한을 추가하려면 7 (111)을 사용해야합니다. 1 (001)을 사용하면 읽기 및 쓰기 권한이 제거되고 실행 권한이 추가됩니다.

다른 범주의 사용자에 대해“.page”파일에 다시 읽기 권한을 추가해 보겠습니다. 사용자 및 그룹 권한도 설정해야하므로 이미 설정된 권한으로 설정해야합니다. 이 사용자에게는 이미 읽기 및 쓰기 권한 인 6 (110)이 있습니다. “기타”가 읽기 및 권한을 갖기를 원하므로 4 (100)로 설정해야합니다.

다음 명령이이를 수행합니다.

chmod 664 *.page

터미널 창의 chmod 664 * .page

이를 통해 사용자, 그룹 구성원 및 기타 사용자에게 필요한 권한이 필요한 것으로 설정됩니다. 사용자 및 그룹 구성원은 자신의 권한을 기존 상태로 재설정하고 다른 구성원은 읽기 권한을 복원했습니다.

ls -l

터미널 창에서 ls -l

고급 옵션

에 대한 맨 페이지를 읽으면 chmod SETUID 및 SETGID 비트 및 제한된 삭제 또는 “고정”비트와 관련된 몇 가지 고급 옵션이 표시됩니다.

필요한 경우의 99 % chmod 여기에 설명 된 옵션에 대해 설명하겠습니다.