web-development-kb-ko.site

파일 권한은 어떻게 작동합니까?

파일 권한을 관리하는 데 사용되는 기본 개념과 명령 줄 도구에 대해 간략하게 설명 할 수 있습니까?

37
guillermooo

각 파일에는 세 가지 범주에 대한 권한이 있습니다.

  • 파일의 소유자
  • 파일과 관련된 그룹
  • 다른 사람들.

권한이란 파일을 읽을 수있는 권한, 파일에 쓸 수있는 권한 또는 스크립트 나 프로그램의 경우 파일을 실행할 권한을 의미합니다.

CLI에서

  • 소유자를 chown (으)로 변경하십시오 (예 : chown guillermooo
  • chgrp로 그룹을 변경하세요 (예 : chgrp root
  • chmod (으)로 권한을 변경하십시오 (예 : chmod u+w filename.ext (파일 소유자 filename.ext에 대한 쓰기 권한 추가)

이 도구들 각각에 대해 더 알고 싶다면 터미널을 열고 man [tool]를 입력하십시오. man chmod.

23
ParanoiaPuppy

경고 : 파일 및 디렉토리의 권한을 변경하면 잠재적으로 해로울 수 있으며 시스템을 사용하지 못하게 될 수 있습니다. 잘못된 경로에서 루트로 재귀 적으로 실행하면 우분투를 다시 설치해야 할 시점이 될 수 있습니다. 따라서 HOME 디렉토리 외부에서 권한을 변경하지 말고 가능할 때마다 루트로서 명령을 재귀 적으로 실행하지 않는 것이 좋습니다.

파일 권한

Ubuntu는 파일 또는 디렉토리에 대해 허용하거나 거부 할 수있는 세 가지 작업이있을 때 Unix의 권한 개념을 상속했습니다.

  • r (읽기) 파일/디렉토리가 읽기 액세스를 위해 열릴 수 있습니다.
  • 쓰기/편집 액세스를 위해 w (쓰기) 파일/디렉토리를 열 수 있습니다.
  • x (실행) 파일은 프로그램/디렉토리가 이송 될 때 실행될 수 있습니다.

(Traversing 디렉토리는 기본적으로 디렉토리를 경로 이름의 일부로 사용하는 것을 의미합니다. https://unix.stackexchange.com/a/13891 또는 https : 자세한 설명은 //unix.stackexchange.com/questions/21251 를 참조하십시오.)

또한 우리는 누구에게 권한을 부여 할 것인지에 대한 세 가지 경우가 있습니다.

  • u (사용자) 파일 소유자에게 권한이 부여됩니다.
  • 파일이 속한 g (그룹) 그룹에 권한이 부여됩니다.
  • o (다른) 다른 모든 사람에게는 권한이 부여됩니다.

이제 이러한 정렬을 조합하기 위해 각 비트가 권한을 정의하는 이진 시스템을 사용합니다. 다음 표에 가장 잘 표시 될 수 있습니다.

    Permission | Binary | Octal  | User  | Group | Other |
    ======================================================
      r        |  100   |   4    |       |       |       |
      w        |  010   |   2    |       |       |       |
      x        |  001   |   1    |       |       |       |
    =======================================================
    Number

예를 들어서

a) 파일 소유자 (= 사용자)는 아르 자형ead, 예식과 e엑스급성 허가
b) 파일 그룹에 부여 아르 자형ead와 e엑스급성 허가 및
c. 다른 모든 사람들은 아르 자형ead 액세스.

결과 파일 권한은 다음과 같습니다.

 u   g   o
rwx r-x r--

예를 들어 8 진수로 이것을 얻으려면. chmod 명령 또는 오류 메시지를 이해해야 할 경우 다음과 같이 위의 표를 채워야합니다.

    Permission | Binary | Octal  | User  | Group | Other |
    ======================================================
      r        |  100   |   4    |   4   |   4   |   4   |
      w        |  010   |   2    |   2   |   0   |   0   |
      x        |  001   |   1    |   1   |   1   |   0   |
    ======================================================
    Numbers add to                   7       5       4     

사용자 (4 + 2 + 1 = 7), 그룹 (4 + 0 + 1 = 5) 및 기타 (4 + 0 + 0 = 4)에 대해 각 권한 번호를 추가해야합니다. 결과 숫자는 다음과 같습니다.

 u   g   o
 7   5   4

이제 chmod으로 권한 비트를 변경하는 두 가지 옵션이 있습니다.

chmod u+rwx g+rx o+r filename

또는 훨씬 더

chmod 751 filename

두 명령 모두 동일하게 수행됩니다.

우리 집에서 새로 만든 파일의 기본 권한은 664 (-rw-rw-r--)입니다.

파일을 프로그램으로 실행하려면이 권한을 변경해야합니다.

  • 이 실행 파일이있는 디렉토리의 권한도 변경해야합니다. 둘 다 파일의 디렉토리의 실행 비트가 설정되어 있어야합니다. 이 파일을 프로그램으로 실행할 수 있습니다.

  • 파일을 집에 복사 할 때 파일의 권한이 없어지고 기본 옵션으로 바뀝니다 (아카이브 옵션과 같은 고급 옵션을 사용하여 복사하지 않는 한).

  • 또한 파일은 마운트 지점 resp에서 권한을 상속받을 수 있습니다. 마운트 옵션. 이것은 Unix 권한을 지원하지 않는 Windows 포맷 드라이브를 마운트 할 때 중요합니다.

사용자 및 그룹

우리는 이것이이 이야기의 절반에 불과하다는 것을 곧 깨닫게됩니다. 소지품도 정리해야합니다. 이를 위해 각 파일 또는 폴더에는 정의 된 소유자 및 정의 된 그룹 구성원이 있습니다.

파일을 만들 때마다 파일 소유자가되고 파일 그룹도 우리가됩니다. ls -l을 사용하면 다음 예제 출력에서 ​​볼 수 있듯이 권한, 소유권 및 그룹을 볼 수 있습니다.

-rw-rw-r--  1 takkat takkat    4096 Sep 12 20:25 test
  • 당사의 파일에 대한 권한, 그룹 또는 소유권 만 변경할 수 있습니다.

파일 소유자가 아닌 경우 Permission denied 오류가 발생합니다. root만이 모든 파일에 대해 이것을 변경할 수 있습니다. 이것이 우리가 아닌 파일의 권한을 편집 할 때 Sudo을 사용해야하는 이유입니다. 사용자를위한 chown 및 그룹을위한 chgrp 의 두 가지 기본 제공 명령이 있습니다.

파일 소유권을 다른 사람에서 takkat (으)로 변경하려면 다음 명령을 실행할 수 있습니다.

Sudo chown takkat testfile

파일 그룹을 takkat으로 변경하기 위해

Sudo chgrp takkat testfile

자세한 내용과 옵션은 명령 맨 페이지를 참조하십시오. 더 읽을 거리를 위해 권장되는이 더 멋진 정교한 가이드도 있습니다 :

관련 질문도 여기에서 찾으십시오.

31
Takkat