Unix / Linux - 파일 권한 / 접근 모드
안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 Unix와 Linux 파일 권한의 흥미로운 세계로 뛰어들어 보겠습니다. 이话题이 새로운 것이라면 걱정하지 마세요; 이 튜토리얼이 끝나면 당신은 파일 권한의 전문가가 될 것입니다! 이 흥미로운 여정을 함께 시작해 보겠습니다.
권한 표시자
당신이 보물 상자의 지키는 사람이라고 상상해 보세요. 누가 그것을 열 수 있는지, 누가 것을 넣을 수 있는지, 누가 것을 꺼낼 수 있는지 결정해야 합니다. Unix와 Linux에서 파일 권한이 바로 그것입니다!
ls -l
명령어를 사용하여 파일을 목록에 보면 다음과 같은 것을 보게 될 것입니다:
-rwxr-xr-x 1 john users 2048 Jan 15 2023 myfile.txt
이神秘的字母들의 시작을 분해해 보겠습니다:
- 첫 번째 문자는 파일 유형을 나타냅니다 (
-
는 일반 파일,d
는 디렉토리) - 다음 9개의 문자는 사용자, 그룹, 그 외 다른 사람들을 위한 권한을 나타냅니다
각字母의 의미를 기억하는 데 유용한 표입니다:
Letter | Meaning |
---|---|
r | 읽기 권한 |
w | 쓰기 권한 |
x | 실행 권한 |
- | 권한 없음 |
파일 접근 모드
이제 이 권한들이 실제로 파일을 다루는 데 어떤 영향을 미치는지 대해 이야기해 보겠습니다:
- 읽기 (r): 파일의 내용을 보기
- 쓰기 (w): 파일을 수정하거나 지우기
- 실행 (x): 파일을 프로그램이나 스크립트로 실행
이를 기억하는 쉬운 방법: "r"을 "레시피 읽기", "w"를 "레시피 쓰기", "x"를 "레시피 실행(요리하기)"으로 생각하면 됩니다!
디렉토리 접근 모드
디렉토리는 비슷한 권한을 가지고 있지만, 약간 다르게 작동합니다:
- 읽기 (r): 디렉토리의 내용을 목록에 보기
- 쓰기 (w): 디렉토리에 파일을 추가하거나 지우기
- 실행 (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