Unix / Linux - 파일 권한 / 접근 모드

안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 Unix와 Linux 파일 권한의 흥미로운 세계로 뛰어들어 보겠습니다. 이话题이 새로운 것이라면 걱정하지 마세요; 이 튜토리얼이 끝나면 당신은 파일 권한의 전문가가 될 것입니다! 이 흥미로운 여정을 함께 시작해 보겠습니다.

Unix / Linux - File Permission

권한 표시자

당신이 보물 상자의 지키는 사람이라고 상상해 보세요. 누가 그것을 열 수 있는지, 누가 것을 넣을 수 있는지, 누가 것을 꺼낼 수 있는지 결정해야 합니다. Unix와 Linux에서 파일 권한이 바로 그것입니다!

ls -l 명령어를 사용하여 파일을 목록에 보면 다음과 같은 것을 보게 될 것입니다:

-rwxr-xr-x 1 john users 2048 Jan 15 2023 myfile.txt

이神秘的字母들의 시작을 분해해 보겠습니다:

  • 첫 번째 문자는 파일 유형을 나타냅니다 (-는 일반 파일, d는 디렉토리)
  • 다음 9개의 문자는 사용자, 그룹, 그 외 다른 사람들을 위한 권한을 나타냅니다

각字母의 의미를 기억하는 데 유용한 표입니다:

Letter Meaning
r 읽기 권한
w 쓰기 권한
x 실행 권한
- 권한 없음

파일 접근 모드

이제 이 권한들이 실제로 파일을 다루는 데 어떤 영향을 미치는지 대해 이야기해 보겠습니다:

  1. 읽기 (r): 파일의 내용을 보기
  2. 쓰기 (w): 파일을 수정하거나 지우기
  3. 실행 (x): 파일을 프로그램이나 스크립트로 실행

이를 기억하는 쉬운 방법: "r"을 "레시피 읽기", "w"를 "레시피 쓰기", "x"를 "레시피 실행(요리하기)"으로 생각하면 됩니다!

디렉토리 접근 모드

디렉토리는 비슷한 권한을 가지고 있지만, 약간 다르게 작동합니다:

  1. 읽기 (r): 디렉토리의 내용을 목록에 보기
  2. 쓰기 (w): 디렉토리에 파일을 추가하거나 지우기
  3. 실행 (x): 디렉토리와 그 내용에 접근하기

디렉토리를 방으로 생각해 보세요. "r"은 방 안을窥視할 수 있게 하고, "w"는 가구를 추가하거나 제거할 수 있게 하고, "x"는 방에 들어갈 수 있게 합니다.

권한 변경

이제 권한을 이해했으므로, 그것을 어떻게 변경하는지 배워보겠습니다! 우리는 chmod 명령어를 사용합니다. chmod를 사용하는 두 가지 방법이 있습니다: 기호 모드와 절대 모드.

기호 모드

이는 권한을 추가하거나 제거하는 지시를 주는 것과 같습니다. 기본 문법은 다음과 같습니다:

chmod [who][+,-,=][permissions] filename
  • who는 u (사용자), g (그룹), o (다른 사람), a (모두) 중 하나일 수 있습니다
  • +는 권한을 추가하고, -는 제거하고, =는 정확히 설정합니다
  • permissions은 r, w, 또는 x입니다

예를 들어:

chmod u+x myfile.txt

이 명령어는 사용자에 대해 실행 권한을 추가합니다.

절대 권한으로 chmod 사용하기

절대 모드는 숫자를 사용하여 권한을 설정합니다. 각 권한은 가치를 가지고 있습니다:

  • r = 4
  • w = 2
  • x = 1

우리는 각 카테고리(사용자, 그룹, 다른 사람)에 대해 이를 더합니다. 다음 표를 통해 이해를 돕겠습니다:

Number Permission
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

예를 들어:

chmod 755 myfile.txt

이 명령어는 사용자에 대해 rwx를 설정하고, 그룹과 다른 사람에게는 rx를 설정합니다.

소유자와 그룹 변경

때로는 파일의 소유자나 소속 그룹을 변경해야 할 수 있습니다. 그 방법을 보겠습니다.

소유자 변경

파일의 소유자를 변경하려면 chown 명령어를 사용합니다:

chown newowner filename

예를 들어:

chown alice myfile.txt

이 명령어는 myfile.txt의 소유자를 alice로 변경합니다.

그룹 소유권 변경

그룹을 변경하려면 chgrp 명령어를 사용합니다:

chgrp newgroup filename

예를 들어:

chgrp developers myfile.txt

이 명령어는 myfile.txt의 그룹을 developers로 변경합니다.

SUID와 SGID 파일 권한

이제 특별한 권한에 대해 이야기해 보겠습니다: SUID (Set User ID)와 SGID (Set Group ID). 이 것들은 파일의 슈퍼파워입니다!

  • SUID: 실행 파일에 설정되면, 소유자의 권한으로 실행됩니다.
  • SGID: 실행 파일에 설정되면, 그룹의 권한으로 실행됩니다.

이를 설정하려면 chmod 명령어와 특별한 숫자를 사용합니다:

chmod 4755 myfile    # SUID 설정
chmod 2755 myfile    # SGID 설정

시작하는 4은 SUID를 설정하고, 2는 SGID를 설정합니다.

그리고 이제 그것이 다입니다! Unix/Linux 파일 권한의 세계에 대해 잘 알게 되셨습니다. 강력한 권한을 가지면 큰 책임이 따릅니다. 파일을 안전하고 보안이 있는 상태로 유지하기 위해 이 권한을 지혜롭게 사용하세요.

연습이 완벽을 이루는 열쇠입니다. 따라서 (안전한 환경에서) 실험을 두려워하지 마세요. 얼마 지나지 않아 파일 권한을 마스터하실 것입니다!

Credits: Image by storyset