Linux 파일 시스템 권한 해독

게시 됨: 2017-02-24

Linux 파일 권한은 일부 사람들에게 신비한 수 이론 상형 문자처럼 보일 수 있으며 이해할 수 있습니다. Linux의 파일 시스템 권한 모델은 UNIX의 레거시에서 비롯됩니다. 그러나 그 이면의 논리를 이해하면 이해하기가 매우 쉽습니다.

권한 그룹 및 유형

모든 파일 및 폴더 액세스 제어는 다음 정보를 사용하여 파일 시스템에 정의됩니다.

  • 세 가지 권한 그룹: 소유자 경우 u , 그룹, o 또는 a , 모든 사용자.
  • 세 가지 권한 유형: r , 읽기, x , 실행, w , 쓰기.

권한 유형은 플래그라고 하는 "r", "x" 및 "w" 문자이며 파일 또는 폴더의 권한을 어떤 식으로든 나열하면 그대로 표시됩니다. 설정되지 않은 플래그는 "-" 문자로 표시됩니다. 권한 그룹은 파일의 소유권과 그룹을 변경하는 명령에 사용되며, 이에 대해서는 곧 다루게 될 것입니다.

보기 권한

GUI 파일 관리자를 사용하거나 콘솔 터미널에서 ls 명령의 출력을 검사하여 파일 또는 폴더의 권한을 볼 수 있습니다.

터미널을 열고 다음 명령을 입력합니다.

$ 터치 테스트

$ ls -la 테스트

-rw-r–r– 1 yogos 직원 0 2월 23일 17:07 테스트

문자열 "-rw-r-r-"에는 관심 있는 파일 시스템 권한 정보가 포함되어 있습니다. 왼쪽에서 오른쪽으로 나머지 필드에는 다음 정보가 표시됩니다.

  • 이 파일에 대한 링크 수(1)
  • 소유자 사용자 ID(요르고스)
  • 그룹 아이디(직원)
  • 파일 길이(바이트)(0)
  • 만든 날짜(2월 23일)
  • 생성 시간(17:07)
  • 파일명(테스트)

권한 비트

권한 그룹 및 유형의 조합은 9가지이지만 플래그 위치는 10가지입니다. 첫 번째는 파일 유형 플래그를 표시하고 후자는 권한 자체를 나타냅니다. 파일 유형은 파일의 경우 "-", 기호 링크의 경우 "l"(다른 파일을 가리키는 파일 시스템 링크) 및 디렉토리의 경우 "d"일 수 있습니다. 이 예에서 첫 번째 문자/플래그는 "-"이므로 간단한 파일에 대해 이야기하고 있습니다. 계속해서 권한 필드를 분석해 보겠습니다.

: 파일 유형(l, - 또는 d를 포함할 수 있음)

rw- : 읽기 및 쓰기 권한(실행 불가). 이 권한은 소유자를 위한 것입니다.

r- : 읽기 권한, 쓰기 및 실행 권한이 없습니다. 이러한 권한은 그룹에 속한 사용자와 관련됩니다.

r– : 읽기 권한, 쓰기 및 실행 없음. 마지막으로 이러한 권한은 다른 모든 사람과 관련이 있습니다.

따라서 실제로 이것은 "이 파일은 소유자가 읽고 쓸 수 있으며 다른 모든 사람은 읽기 전용"임을 의미합니다. 그룹은 동일한 권한을 공유합니다.

권한 수정

파일이나 폴더의 권한을 수정하려면 다시 GUI 명령을 사용하거나(이는 이 기사의 범위를 벗어나므로 다루지 않습니다) 터미널에서 특정 Linux 명령을 사용합니다. 우리가 사용할 명령은 chmod (파일 모드 변경)입니다. chmod 명령은 다양한 방식으로 동작을 변경하는 다양한 매개변수를 허용하지만 일반적인 용도는 다음과 같습니다.

$ chmod <모드> <파일>

<mode>는 다음 기호로 지정됩니다.

r 읽기 플래그

w 쓰기 플래그

x 실행 플래그

u 사용자/소유자 권한 플래그

g 그룹 권한 플래그

o 다른 사용자 권한 플래그

다른 몇 가지가 있지만 우리는 기사의 마지막 섹션에서 그것들에 대해 논의할 것입니다.

따라서 그룹에 속한 사용자에게 실행 권한을 부여하고 싶다고 가정해 보겠습니다(그러나 먼저 파일의 소유자인지 확인하십시오!).

$ chown g+x 테스트
$ ls -l 테스트
-rwxrwxrwx 1 요르고스 직원 0 2월 23일 17:07 테스트

아니면 다른 모든 사람을 완전히 차단해야 할 수도 있습니다. 파일을 읽거나 쓰거나 실행할 수 없습니다.

$ chown o-rwx 테스트
$ ls -l 테스트
-rwxrwx— 1 yogos 직원 0 2월 23일 17:07 테스트

여기에서 마지막 플래그가 모두 "-"로 설정되지 않은 것을 볼 수 있습니다.
더 많은 예를 보려면 다음 명령을 실행하여 chmod의 매뉴얼 페이지를 참조하십시오.

$ 남자 chmod

소유자 및 그룹

chown 명령 을 사용하여 파일 및 파일의 그룹 소유권을 변경할 수도 있습니다 .

chown 명령 어떤 식으로든 동작을 변경하는 다양한 매개변수를 허용하지만 가장 일반적인 사용법은 다음과 같습니다.

# chown <소유자> <파일>

또는

# chown <소유자:그룹> <파일>

첫 번째 예는 파일 소유자를 다른 소유자로 변경하는 데 사용됩니다. 그러나 파일의 소유권을 변경하려면 루트 액세스 권한이 있어야 합니다. 따라서 다음을 실행합니다.

# chown 아무도 테스트

# ls -l 테스트

-rwxrwxrwt 1 직원 없음 0 2월 23일 17:07 테스트

이제 파일이 사용자 ID 'nobody'가 소유하고 더 이상 'yogos'가 소유하지 않는다는 것이 밝혀졌습니다.

마찬가지로 명령:

# chown nobody:휠 테스트

# ls -l 테스트

-rwxrwxrwt 1 아무도 휠 0 2월 23일 17:07 테스트


파일의 소유권을 nobody 로 변경 하고 그룹을 wheel 로 변경합니다 .

명령과 다양한 매개변수에 대해 더 알고 싶다면 다음 명령을 실행하여 chown 매뉴얼 페이지를 참조하십시오.

$ 맨 츄

특별 권한

이 기사에서 이미 언급한 권한 유형 및 그룹 외에도 "특수 권한"이라는 몇 가지 다른 유형이 있습니다.

다음은 다음과 같습니다.

에스       사용자 ID 설정 및 그룹 ID 설정 플래그.

      끈끈한 깃발.

첫 번째는 다음과 같이 일반적인 방식으로 chmod 명령에서 "s" 플래그를 사용하여 설정됩니다.

$ chmod u+s 테스트
$ ls -l 테스트
-rwsrwx-   1 요르고스   직원   02월 23일 17:07 테스트

이 플래그는 SUID(사용자 ID 설정) 또는 SGID(그룹 ID 설정) 플래그라고도 합니다. 이 비트가 설정되면 파일은 소유자의 액세스 권한을 상속합니다. 이것은 파일을 실행하는 모든 사람이 소유자로서 수행하고 있음을 의미합니다. SGID는 유사하지만 파일은 해당 그룹의 액세스 권한을 상속합니다. 물론 이는 보안 문제로 이어질 수 있으므로 주의를 기울여야 합니다.

스티키 비트 또는 "t"가 특히 유용합니다. 일반적으로 /tmp와 같이 공유되는 디렉토리에 설정하면 거기에서 생성된 파일은 해당 소유자만 이름을 바꾸거나 삭제할 수 있습니다. 스티키 비트가 설정되지 않은 경우 디렉토리 소유자는 이를 제어할 수 없습니다.

다음 명령을 실행하여 디렉토리를 "고정" 상태로 만들 수 있습니다.

$ chmod +t /디렉토리

8진수 표현

플래그를 사용하여 "r" 및 "w"와 같은 권한을 정의하는 것 외에도 숫자 값을 사용할 수도 있습니다. chmod 명령은 권한에 다음 값을 할당합니다.

"r" = 4

"w" = 2

"x" = 1

따라서 소유자에 대해 읽기/쓰기/실행이 되도록 파일을 설정하고 "-rwxr-xr-x"를 의미하는 다른 모든 사용자에 대해 읽기/실행하도록 설정하기 위해 다음과 같이 숫자 값을 계산합니다.

rwx = 4+2+1 = 7

수신 = 4+1 = 5

마지막으로 다음 명령을 실행합니다.

$ chmod 755 테스트
$ ls – 테스트
-rwxr-xr-x   1 요르고스   직원   2월 21일 24일 02:08 테스트

다양한 권한과 숫자 값을 사용하여 스스로 연습해 보세요!