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


답변:


23

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

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

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

CLI에서

  • 소유자를로 변경하십시오 chown. 예 :chown guillermooo
  • chgrp예를 들어 그룹을 다음과 같이 변경하십시오.chgrp root
  • 와 권리 변경 chmod, 예를 들면 chmod u+w filename.ext(파일의 소유자를 추가 쓰기 권한 filename.ext)

이러한 각 도구에 대해 더 알고 싶다면 터미널을 열고을 입력하십시오 man [tool](예 :) man chmod.


8
디렉토리에는 조금 까다 롭습니다. 디렉토리의 내용에 액세스하려면 실행 권한이 필요합니다. 이것은 예를 들어 파일을 읽거나 쓰는 것을 의미합니다. 파일을 포함하는 디렉토리에 대한 액세스 권한과 파일 자체에 대한 적절한 권한이 필요합니다. 이것은 거의 나타나지 않지만 문서화가 잘 이해되지 않은 이유입니다!
adamnfish

허. 네가 옳아. 덜 졸리면 내일에 편집하겠습니다.
ParanoiaPuppy

1
chown guillermooo이러면 안되나요 chown guillermooo filename?
Zeynel

32

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

파일 권한

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

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

( 디렉토리 통과 는 기본적으로 디렉토리를 경로 이름의 일부로 사용하는 것을 의미합니다. 자세한 설명 은 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) 파일 (= 사용자)의 소유자가 r에 , EAD를 w 의례 및 e X ecute 허가
b)는 파일의 그룹 부여 r에 EAD 및 e X ecute 권한 및
다른 모든 만해야한다) C r에 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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.