2023. 3. 10. 14:48ㆍ부트캠프/DevOps (TIL)
리눅스의 표준 접근 제어 모델
리눅스는 접근 제어에 대한 분명한 원칙이 존재하며, 이를 통칭 접근 제어 모델이라 합니다.
다음과 같은 몇 가지 규칙이 있습니다.
whoami: 사용자 확인
현재 로그인된 사용자를 확인하는 명령어가 있습니다. 프롬프트에 명령어 whoami를 입력하세요.

홈 디렉토리
사용자는 개별적으로 각자의 홈 디렉토리를 가지고 있습니다. 우분투에서는 /home, macOS의 경우 /Users 디렉토리에 사용자별로 홈 디렉토리가 존재하는 것을 확인할 수 있습니다. 디렉토리의 이름은 우분투나 macOS를 처음 설치할 때 입력했던 사용자 아이디(username)입니다.
Windows에서 사용자 계정 컨트롤을 이용해 사용자를 나누는 것과 마찬가지로, username에 맞게 디렉토리를 생성하여 해당 디렉토리 내에서 권한을 사용하도록 제한합니다. 반면에 관리자(root) 권한을 이용하면, 다른 사용자 디렉토리에도 영향을 끼치는 것은 물론이고, 당연히 시스템 전반에 걸쳐 접근이 가능합니다. 루트 권한으로 변경한 내용은, 사용자 권한으로 해결할 수 없습니다. 루트 권한에 대해서는 이후에 보다 자세히 설명합니다.
반드시 기억해야 할 내용은 다음과 같습니다.
파일 및 디렉토리의 소유자(사용자) 및 그룹
리눅스에서는 사용자 뿐 아니라, 여러 사용자를 묶은 ‘그룹’이라는 개념도 함께 존재합니다. 이 챕터에서는 ‘소유자’라는 표현은 파일 및 디렉토리의 관점에서 설명하는 ‘사용자’입니다. 소유자는 파일의 사용 권한을 설정할 수 있습니다. (권한 부여에 대한 이야기는 이후에 설명합니다)
관리자 권한을 이용해서, 이 시스템엔 어떤 사용자가 있고, 그룹이 있는지 한번 살펴봅시
$ sudo cat /etc/passwd
명령어 sudo는 사용자 환경에서, 루트 권한을 획득하는 명령어입니다. 명령어 sudo는 기본적인 CLI 명령어의 앞에 작성하여, 루트 권한을 일시적으로 획득하는 명령어입니다. 명령어 sudo는 한시적으로나마 루트 권한을 가지기 때문에 항상 비밀번호와 함께 사용합니다. 처음 리눅스 계정을 생성할 때 입력한 사용자의 비밀번호를 입력하세요. 비밀번호는 화면에 출력되지 않지만, 터미널에 정상적으로 입력되고 있습니다. 비밀번호를 정확하게 입력하고 Enter(엔터 키)를 눌러 실행시키세요.

출력 결과는 각 필드가 콜론(:)으로 구분되어 있습니다. 가장 처음 등장하는 필드는 사용자 이름이며, 세번째에 등장하는 숫자는 uid, 즉 숫자로 표현되는 고유의 user id입니다. 루트 계정의 uid는 항상 0입니다.
root:x:0:0:root:/root:/bin/bash
ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash
kimcoding:x:1001:1001::/home/kimcoding:/bin/sh
parkhacker:x:1002:1002::/home/parkhacker:/bin/sh
choigosu:x:1003:1003::/home/choigosu:/bin/sh
/etc/passwd 파일은 이름과는 달리 비밀번호를 포함하지 않습니다. 실제로 비밀번호가 저장되어 있는 파일은 /etc/shadow 파일이며, 비밀번호 문자열은 암호화되어 있습니다.
터미널 프롬프트에 id 라는 명령을 입력해보세요. 출력은 uid 및 해당 사용자가 속해있는 그룹을 포함합니다.

| 05_Study(프로그램, 프로세스, 스레드, 멀티 스레드) (0) | 2023.03.13 |
|---|---|
| 04_Study(출력 관련 명령) (0) | 2023.03.13 |
| 04_(접근제어의 기본_사용자와 관리자) (0) | 2023.03.10 |
| 04_Study(관리자로서의 리눅스_시스템 관리자가 하는 일) (0) | 2023.03.10 |
| 04_Study(파이프라인) (0) | 2023.03.10 |