hyperskill - File modes and permissions 영어 원문
당신은 파일이 무엇이며, 파일을 어떻게 생성하며, Unix에서 어떤 파일을 가지고 있는지 알고 있습니다.
이제 파일들에 어떻게 접근할 수 있는지 알아 내 봅시다.
밑에 우리는 유닉스 내부에는 어떤 인증 단계들이 있는지에 대해 논의 할 것입니다.
누가 파일에 접근할 수 있는지, 파일에 대해 유저들이 할 수 있는 행동의 제약에 대한 것입니다.
Authorization levels - 인증 레벨
리눅스와 비슷한 유닉스 시스템들은 많은 유저들이 동시에 접근 할 수 있습니다.
또한 이러한 시스템들은 어떠한 수정 없이 메인프레임과 서버들을 사용 할 수 있습니다.
그러나 이는 임의의 보안 우려를 발생시키며,
심지어는 악의적인 유저들이 결정적인 데이터를 손상, 변화 혹은 제거할 수 있습니다.
효과적인 보안을 위해서, 유닉스는 인증을 2 단계로 나누었습니다 :
- Ownership - 소유권
- Permission - 권한
Ownership 과 함께 시작하며 이러한 각각의 두 단계를 공부 해 봅시다.
File ownership - 파일 소유권
File ownership(파일 소유권), 또 다른 말로, 파일을 작업할 수 있는 유저들을 의미합니다.
유닉스 각각의 파일과 디렉토리는 밑에 묘사된 대로 3개 유형의 소유권을 할당받습니다 :
User - 유저
유저는 파일의 소유자입니다.
기본적으로, 파일을 생성함으로서 해당 파일의 소유자가 된 사람입니다.
따라서, 유저는 가끔 소유자(owner) 라고 불릴 수 있습니다.
Group - 그룹
그룹은 여러명의 유저를 포함합니다.
그룹 내의 모두는 파일에 대한 동일한 접근 권한을 가지고 있습니다.
이러한 Group 소유권은 많은 사람이 파일에 대한 접근 권한을 필요로 하는 프로젝트에 유용합니다.
정석대로 각각의 유저들에게 권한들을 할당하는 것 대신에,
모든 유저들을 그룹에 추가하고, 파일에 Group 권한을 할당함으로서,
오로지 그룹의 멤버들만 파일을 읽거나 수정할 수 있으며, 나머지는 그러지 못합니다.
Other - 나머지
파일의 권한을 가지고 있는 모든 나머지(Other) 유저들은,
파일을 생성하지 않았으며, 또한 그룹에도 속하지 않습니다.
실제로, 이는 모든 나머지 사람들을 의미합니다.
따라서, 당신이 Other 에 대한 권한을 설정 할 때,
이는 전 세계에 대한 권한을 설정하는 것이라고도 할 수 있습니다.
지금, 거대한 의문은 "유닉스가 어떻게 이러한 세 가지 유저 유형을 구별하느냐" 입니다.
유닉스의 유저 유형 구분 덕분에,
유저 A
는 유저 B
에게 필요적인 데이터를 담고 있는 파일에 영향을 끼치지 못합니다.
이러한 것이 유저의 행동을 정의하는 권한이 들어와야 할 곳 입니다.
File permissions - 파일 권한
파일 권한 은 파일에 어떤 작업을 할 수 있는지를 반영합니다.
유닉스의 모든 파일과 디렉토리는 위에서 논의한 3 가지 유형의 유저들에 대해,
정의할 수 있는 3 개의 권한을 가지고 있습니다 :
Read permission - 읽기 권한
읽기 권한은 파일을 열고 읽을 수 있는 인가를 유저들에게 줍니다.
디렉토리의 읽기 권한은 내부의 컨텐츠 리스트를 유저에게 제공합니다.
Write permission - 작성 권한
작성 권한은 파일의 컨텐츠를 수정 할 수 있는 인가를 유저에게 줍니다.
디렉토리의 작성 권한은 유저들에게 디렉토리 내부에 추가, 제거, 그리고 이름 재지정의 권한을 유저에게 제공합니다.
당신이 파일의 작성 권한을 가지고 있지만, 해당 파일의 디렉토리에서는 작성 권한을 가지고 있지 않다고 상상 해 봅시다.
당신은 해당 파일의 콘텐츠에 대해서만 수정 할 수 있지만,
디렉토리의 파일에 대해 이름 바꾸기, 이동 혹은 제거와 같은 것들을 할 수 없습니다.
Execute permission - 실행 권한
실행 권한은 유저들이 프로그램을 구동 할 수 있게 해 줍니다.
만약 실행 권한이 아직 세팅되지 않았다면,
해당 파일들은 여전히 프로그램 코드를 보거나/수정할 수는 있지만, 아직 실행 할 수 없습니다. - 읽기, 작성 권한이 설정됨
No permission - 아무런 권한이 없음
아무런 권한이 없다는 것은, 유저들이 파일에 대해 아무것도 할 수 없다는 의미입니다.
이러한 모든 권한 유형들을 결합하는 것이 가능하며,
이러한 결합들에 대해 여덟 가지 변형이 있습니다. (0 ~ 7) :
Number | Permission Type | Symbol |
---|---|---|
0 | No Permission | --- |
1 | Execute | --x |
2 | Write | -w- |
3 | Execute + Write | -wx |
4 | Read | r-- |
5 | Read + Execute | r-x |
6 | Read + Write | rw- |
7 | Read + Write + Execute | rwx |
실행 권한 :
1
작성 권한 :2
읽기 권한 :4
0
에서7
까지의 모든 수에 대해 위 3 개의 권한 조합 설명이 가능함.
Symbol 컬럼(열)에서, 권한의 결합은 약칭되었습니다.
따라서,
-
는 권한 없음w
는 작성 권한r
는 읽기 권한x
는 실행 권한 이며, execute의 약자입니다.
또한 당신은 이에 해당되는 8진수 3개 숫자를 사용하여 권한을 정의할 수 있습니다.
따라서, 7
은 rwx
와 동일하며, 2
는 -w-
와 동일하며, 등등이 있습니다.
몇 가지 예제를 살펴보며, 밑에서 흔한 경우를 살펴 봅시다.
Common cases - 일반적인 경우
설정된 모든 권한은 이와 같은 심볼들로 표현됩니다 : -rwxrw-r--
위의 심볼들을 설명하자면, 첫 번째 심볼 -
는 특정 파일을 선택했다는 것을 구현합니다.
만약 이것이 디렉토리였다면, d
심볼이 첫 번째 심볼인 -
대신에 사용되었을 겁니다. : ex - drwxrw-r--
첫 번째 심볼 이후에, 세 쌍의 심볼이 있습니다.
첫 번째 심볼을 제외하고 3개씩 심볼을 나눈다면,
각각의 권한은 소유자, 그룹, 그리고 나머지 에 해당합니다. : rwx
, rw-
, r--
따라서 이 예제에서, 소유자는 파일을 읽고 작성하고 실행할 수 있습니다.
그룹은 읽고 작성할 수 있지만, 나머지는 파일을 읽을 수만 있습니다.
8진수로 표현되는 가장 흔한 설정들은 이와 같습니다 :
755 : -rwxr-x-r-x
755 는 웹 서버에서 흔하게 사용됩니다.
소유자는 읽고, 작성하고, 실행하는 모든 권한들을 가지고 있습니다.
나머지 모두(그룹, 나머지) 는 읽고 실행 할 수 있지만, 파일의 변경사항을 만들 수는 없습니다.
644 : -rw-r--r--
644 는 소유자가 읽고 작성할 수만 있다는 것을 의미합니다.
나머지 모두(그룹, 나머지) 는 읽을 수만 있습니다. - (읽기 권한 - 4
)
아무도 이 파일을 실행 할 수 없습니다.
655 : -rw-r-xr-x
655 는 소유자가 파일을 읽고 작성할 수 있지만, 실행할 수 없음을 의미합니다.
나머지 모두(그룹, 나머지) 는 파일을 읽고 실행할 수 있지만, 수정 할 수는 없습니다.
777 : -rwxrwxrwx
777 는 모든 유저가 읽고, 작성하고, 실행 할 수 있음을 의미합니다.
이는 모든 권한을 부여하므로, 사용에 주의를 기울여야 합니다.
하지만, 몇 가지 경우, 당신이 서버에 모든 파일을 업로드 가능하기 위해, 777 권한을 설정해야 합니다.
디렉토리 권한은 파일 권한과 비슷하지만, 몇 가지 방식에서 다릅니다.
이 차이점이 무엇인지 알아내 봅시다.
File permissions vs directory permissions
파일 권한 vs 디렉토리 권한
디렉토리의 읽기, 작성, 실행의 권리가,
디렉토리의 모든 파일에 대한 권리와 동일하지 않다는 것을 기억하는 것이 중요합니다 :
File | Directory | |
---|---|---|
Read | 누군가 파일을 열고, 이 내용을 볼 수 있음 | 누군가 파일들에 대한 정보를 볼 수 있는데, 실행 권한이 설정되었다면 ls -l 로 볼 수 있으며, 그렇지 않다면, 오로지 파일의 이름들만 볼 수 있음 |
Write | 누군가 파일의 컨텐츠를 변경 할 수 있음 | 누군가 파일들의 이름을 다시 짓거나, 삭제 할 수 있지만, 실행 권한이 있다면 파일들도 생성 할 수 있음. |
Execute | 누군가 파일을 실행 할 수 있음 | 누군가 cd 명령어로 디렉토리를 들어 갈 수 있으며, 파일들에 대해 접근할 수 있음. |
Conclusion - 결론
요약하여,
- 유닉스에는 두 단계의 인증이 있습니다 : 소유권 과 권한
- 유닉스에는 세 개 유형의 소유권이 있습니다 : 유저, 그룹, 나머지
- 권한은 읽기, 작성, 실행과 같은 이러한 행동을 설정합니다.
- 권한 설정을 표현하는 두 가지 방식이 있습니다 : 심볼로 표현 혹은 8진수 숫자로 표현.
words to remember
arbitrary : 임의의, 멋대로인, 독단적인
malicious : 악의 있는, 적의 있는
signifies : 의미하다, 중요하다, ~의 전조가 되다
Practically : 거의, 실제로
Hence : 따라서, 이런 까닭에, 여기서부터
imply : 암시하다, 함축하다, 묵시하다
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Docker' 카테고리의 다른 글
What is an HTTP server - HTTP 서버란? (0) | 2024.08.07 |
---|---|
Working with file modes and permissions - 파일 모드와 권한 작업하기 (0) | 2024.08.05 |
Getting data from net - wget, curl 사용법 (0) | 2024.08.03 |
Variables and aliases - 변수와 별명(별칭) (0) | 2024.08.02 |
Agile development - 애자일 개발 단계 설명 (0) | 2024.08.01 |