linux

· Infra/Linux
1. 커널 수준에서의 root 권한 처리 메커니즘리눅스 커널은 파일에 접근할 때 해당 프로세스의 자격 증명(Credentials)을 확인한다. 일반 사용자는 파일의 아이노드(Inode)에 기록된 9비트 권한(rwxrwxrwx)을 기준으로 통제받지만, root는 다르다. CAP_DAC_OVERRIDE의 동작커널 내부에는 권한을 세분화한 Capability라는 체계가 존재한다.root(UID 0) 프로세스는 기본적으로 모든 Capability를 소유한다.그 중 CAP_DAC_OVERRIDE는 파일의 소유주나 권한 비트에 상관없이 읽기, 쓰기, 실행을 허용하는 핵심 권한이다.커널의 권한 확인 함수capability를 확인하여 CAP_DAC_OVERRIDE가 있으면 권한 부족을 무시SELinux/AppArmor..
· Infra/Linux
금일 수업시간에 ../../../ … 무한히 반복되어 root 그 이상의 파일 시스템에 접근(?) 하려했을 때도 여전히 루트 디렉토리를 가리키는 현상을 보았습니다.이는 파일시스템의 근본적인 설계와 관련이 있는데 한번 알아보려고 합니다.inode파일시스템에서 모든 파일/디렉토리는 고유한 inode번호를 가집니다. inode에는 메타데이터(권한, 소유자, 크기, 데이터 블록 위치 등)가 저장되고, 파일명은 디렉토리 엔트리에 저장됩니다.자세한 inode 구조는 아래의 링크를 참고하면 좋을 거 같습니다.[UNIX] Inode, 디렉터리 [UNIX] Inode, 디렉터리리눅스와 디렉터리 리눅스의 파일 구분 리눅스에서는 파일을 일반 파일과 특수 파일, 디렉터리로 구분 디렉터리는 해당 디렉터리에 속한 파일을 관리하는..
· Infra/Docker
이전 글에서 namespace와 cgroup에 대해 알아보았다.namespace: 격리cgroup: 제한그런데 이 둘만으로 Docker에서 사용되는 Container처럼 구현할 수는 없다.컨테이너는 화물 컨테이너처럼 환경을 통째로 가져오는 기술이다. 따라서 실행 환경 설치를 하지 않고 바로 실행할 수 있다. 내가 처음 Docker에서 Container에 대해 설명을 들었을 때 화물 컨테이너라는 비유를 들었던 게 기억이 난다. namespace / cgroup은 프로세스를 가두고... 제한하는 기술이다. 그렇다면 환경을 통째로 가져온다 이건 어떻게 구현할 수 있을까?Union FS포토샵 레이어를 떠올려보자.[레이어 3] 텍스트 "Hello"[레이어 2] 빨간 원[레이어 1] 배경 이미지-----------..
· Infra/Docker
이전 글에서 namespace로 프로세스를 격리하는 방법에 대해서 알아봤다. 하지만 마지막에도 언급했듯이 격리된 프로세스만으로는 부족한 점이 몇가지 있다.CPU를 100% 점유하는 나쁜 녀석들메모리를 무한정 먹어버리는 이상한 녀석들그럼 착한 녀석들로 만들어주기 위해선 어떻게 해야될까? 이 문제를 해결하는 게 cgroup이다.cgroup?namespace가 '뭘 볼 수 있는가'를 제한한다면, cgroup은 '얼마나 쓸 수 있는가'를 제한한다. cgroup은 Control Groups의 약자로, 프로세스 그룹의 리소스 사용량을 제한, 계량, 격리하는 리눅스 커널 기능이다. cgroup이 제어하는 리소스컨트롤러설명cpuCPU 시간 할당량 제한 -> 전체의 50%만 써cpuset특정 CPU 코어만 사용하도록 ..
· Infra/Docker
docker는 어떻게 내 컴퓨터 안에서 또 다른 OS가 독립적으로 돌아가도록 할 수 있을까? image를 통해 여러 container들을 만들어보면서, 신기하다... 밖에 생각을 안했다. 컨테이너는 VM처럼 하드웨어를 가상화하는 게 아니다. 리눅스 커널의 기능을 이용해 프로세스를 격리하고, 제한하는 기술을 기반으로 한다. 이 기능은 namespace, cgroup + union fs를 메인으로 한 기술들을 통해 이루어진다. 오늘은 namespace에 대해 알아본다. (사실 다 하려했다가 분량이 넘 길어져서 컷함 ^^7) https://bentist.tistory.com/73 가상화, 도커 의미(이미지와 컨테이너)도커가 필요한 이유는 무엇인가? 내가 만든 파워포인트 문서를 다른 컴퓨터에서 열었을 때, 글꼴..
ParkSeongGeun
'linux' 태그의 글 목록