리눅스 파일 시스템
리눅스를 처음보는, 그리고 꽤 사용한 모든 개발자에게도 리눅스 파일 시스템은 알 수 없는 것 천지입니다. 리눅스 파일 시스템은 모든 파일을 구성하는 프레임워크입니다. 단순한 스토리지가 아니라 리눅스 환경에서 애플리케이션과 서비스가 실행되는 방식을 정의하는 규칙 모두가 있습니다. 이 글에서는 파일 시스템의 구조를 살펴보고 다양한 디렉터리의 중요성과 시스템 기능에서 기본적인 각 디렉터리의 역할에 대해 보겠습니다.
리눅스 파일 시스템의 주요 개념
리눅스 파일 시스템의 근간은 리눅스 배포판의 디렉토리 구조와 콘텐츠를 설정하는 FHS입니다. 리눅스 생태계를 효과적으로 이해하고 사용하려면 이를 이해하는 것이 필수적입니다. 리눅스에서는 디렉터리도 파일이고, 파일도 파일이고, 장치도 파일이며, 각각 특정 유형과 목적을 가진 모든 것이 파일입니다. 이것이 핵심입니다.
루트 디렉터리 '/' 이해하기
'/'로 표시되는 루트 디렉터리는 파일 시스템의 시작점입니다. 다른 모든 파일과 디렉토리는 그 아래에 중첩되어 있습니다. 루트 디렉토리는 모든 가지가 파생되는 나무의 줄기에 같습니다.
필수 시스템 디렉토리
/bin - 커맨드를 위한 툴킷. 시스템이 single-user 모드로 마운트될 때 반드시 있어야 하는 필수 사용자 바이너리(프로그램)가 포함되어 있습니다. 예를 들면 ls, cat 것들입니다.
/boot - 부팅 프로세스의 수호자. 이 디렉토리에는 커널과 같은 부트 로더 파일과 시스템 시작에 필수적인 초기 RAM 디스크 이미지가 포함되어 있습니다.
/dev - 장치 허브. 여기서 리눅스는 하드웨어 장치를 파일로 표시하여 소프트웨어가 표준 파일 작업을 통해 장치와 상호 작용할 수 있도록 합니다.
/etc - 설정 파일들의 중심. 호스트별 시스템 전체 구성 파일이 여기에 있습니다. 설치된 애플리케이션의 설정 파일을 찾을 수 있는 곳입니다.
/lib - 공유 라이브러리 마켓플레이스. 필수 공유 라이브러리 및 커널 모듈이 여기에 있으며 /bin 및 /sbin의 바이너리를 지원합니다.
/sbin - 시스템 관리 바이너리. 일반 사용자에게는 일반적으로 필요하지 않지만 시스템 유지 관리에 필수적입니다.
사용자 및 관리 디렉터리
/home - 리눅스의 개인 공간. 각 사용자는 /home에 디렉터리를 가지므로 사용자 파일을 개별적으로 백업하고 관리하기가 더 쉽습니다.
/root - 루트 사용자의 거처. 루트 사용자의 홈 디렉토리로, 보안을 강화하고 /home에 액세스할 수 없는 경우에도 시스템을 부팅하고 복구할 수 있도록 /home과 분리되어 있습니다.
/opt - 애드온 앱이 여기에 있습니다. 이 디렉토리에는 시스템 파일을 방해하지 않는 추가 타사 소프트웨어가 저장됩니다.
/usr - 범용 시스템 리소스입니다. 여기에는 대부분의 사용자 유틸리티와 애플리케이션이 포함되어 있으며, 소프트웨어 프로그램에 대한 정적 데이터와 설명서를 제공합니다.
/var - 변수 파일. 로그, 스풀 및 임시 데이터로 인해 증가할 것으로 예상되는 파일이 여기에 저장됩니다. 파일 시스템의 동적 부분입니다.
특수 목적 디렉토리
/proc - 시스템의 심장. 커널이 프로세스에 정보를 전송하는 메커니즘을 제공하는 가상 파일시스템입니다.
/sys - 커널로 가는 다리. 여기에는 장치, 드라이버 및 일부 커널 기능에 대한 정보가 들어 있습니다.
/tmp - 임시 저장소. 애플리케이션과 시스템에서 사용하는 임시 파일을 위한 공간입니다.
공유 및 가변 데이터를 위한 디렉토리 구조
/media - 이동식 미디어 장치를 위한 플러그 앤 플레이 공간입니다. CD, USB 드라이브 및 기타 이동식 미디어를 마운트할 수 있는 곳입니다.
/mnt - 임시 작업 공간입니다. 미디어가 아직 표준이 아니었을 때 파일 시스템을 임시로 마운트하는 데 사용되었습니다.
/run - 시스템의 런타임 상태. 마지막 부팅 이후의 시스템 정보를 저장하는 곳입니다.
/srv - 서비스 스테이션. 여기에는 서버에서 제공하는 웹 페이지 등 시스템에서 제공하는 서비스에 대한 데이터가 들어 있습니다.
리눅스 파일 시스템의 권한 및 소유권
리눅스의 파일 시스템 보안은 권한과 소유권에 달려 있습니다. 모든 파일은 소유자 및 그룹과 연결되어 있고, 각 파일에는 사용자가 파일과 상호 작용할 수 있는 수준을 제어하는 정의된 권한이 있습니다. 이러한 권한에 따라 파일을 읽고, 쓰고, 실행할 수 있는 사람이 결정되며, 이는 시스템 보안을 유지하는 데 필수적입니다.
이제 다시 리눅스에 들어가 ls / 를 해본다면, 무엇들이 있고 뭐가 들어있는지, 어떤걸 찾으려면 무엇을 봐야하는지 보일겁니다. 이게 리눅스를 이해하고 잘 사용하기 위한 시작점이 될 겁니다.