반응형

루트 디렉토리의 기본 구성과 각 디렉토리가 무슨 역할을 하는지 알아보겠다. 전체를 알아보는 것이 아닌 대표적인 것들을 위주가 될 예정이다.


/bin, /sbin

/bin과 /sbin 디렉토리는 모두 바이너리(binary) 파일을 저장하는 디렉토리이며, 시스템의 실행 파일들을 담고 있다는 공통점을 가지고 있다.

  • /bin 디렉토리 : 일반 사용자도 사용할 수 있는 실행 파일들이 위치하며, 예를 들어 cat, ls 등이 있다.
  • /sbin 디렉토리 : 시스템 관리를 위한 실행 파일들이 위치하며, 대표적으로 시스템 부팅, 복구 및 유지보수를 위해 필요한 명령어들이 있다. 이러한 실행 파일들은 시스템의 운영을 위해 루트 파일 시스템에 있어야 할 명령어들로, 일반 사용자는 사용할 수 없고, 루트 권한을 가진 사용자만 사용할 수 있다

lib와 lib64

lib와 lib64는 리눅스 시스템의 라이브러리 파일을 보관하는 디렉토리다. /lib 디렉토리는 32비트 라이브러리 파일을, /lib64 디렉토리는 64비트 라이브러리 파일을 보관한다. 이러한 구분은 다양한 이유는 다음과 같다.

  • 64비트와 32비트 프로그램 간의 호환성을 유지하기 위해
  • 프로그램이 실행될 때, 프로그램이 필요로 하는 라이브러리를 찾는 과정에서 라이브러리 파일이 저장된 위치를 찾기 위해

/lib와 /lib64에는 시스템 시작 시에 필요한 라이브러리 파일이 포함되어 있다. 이러한 라이브러리 파일은 부트 프로세스에서 중요한 역할을 하며, 이 단계에서는 다른 디렉토리의 라이브러리를 사용할 수 없으므로 /lib와 /lib64 디렉토리에 필요한 라이브러리가 모두 포함되어 있어야 한다.

 

/lib와 /lib64가 분리되어 있는 이유는, 라이브러리 파일의 크기 때문이다. 32비트와 64비트 라이브러리 파일은 크기가 서로 다르기 때문에, 같은 경로에 둘 경우 파일 이름이 중복되는 경우가 발생할 수 있다. 또한, /lib와 /lib64 디렉토리를 분리함으로써, 64비트 라이브러리 파일만 필요한 시스템에서는 32비트 라이브러리 파일을 불필요하게 설치하지 않아도 되므로 디스크 공간을 절약할 수 있다


home

Home 디렉토리는 다중 사용자 운영 체제에서 각 사용자가 자신의 파일을 보관하는 기본 디렉토리이다. 일반적으로 로그인하면 해당 사용자의 홈 디렉토리로 이동하며, 해당 디렉토리에는 사용자에게 관련된 여러 가지 정보와 파일이 저장된다.

 

윈도우 운영 체제에서는 각 사용자의 홈 디렉토리가 "Documents and Settings" 폴더에 저장되고 있으며, 리눅스 운영 체제에서는 "/home" 디렉토리에 저장된다. 홈 디렉토리는 각 사용자에게 개별적으로 할당되며, 해당 사용자만 접근할 수 있다.

 

사용자는 홈 디렉토리에 저장된 파일을 쉽게 찾을 수 있으며, 일반적으로 디렉토리 이름은 사용자 이름과 동일하다. 따라서, 사용자는 홈 디렉토리에서 작업하며, 파일 및 디렉토리 구조를 구성하거나, 다른 디렉토리로 파일을 복사하거나 이동할 수 있다.


root

root 디렉토리는 리눅스 운영체제에서 최상위 디렉토리를 가리키는 것으로, 모든 디렉토리와 파일이 이 디렉토리를 기준으로 경로가 설정된다. 이 디렉토리에는 시스템 운영을 위해 필요한 파일들이 위치하며, 일반적으로 시스템 관리자나 root 사용자만이 접근 가능하다. root 디렉토리의 권한은 현재 제3자는 쓰기가 불가능하며, ubuntu 사용자는 디렉토리 생성이나 파일 생성 등과 같은 root 디렉토리에 영향을 끼치는 행위를 할 수 없다.

 

또한, root 디렉토리는 리눅스 파일 시스템 계층 구조에서 최상위 디렉토리인 /를 가리키기도 한다. 따라서 모든 디렉토리와 파일은 /디렉토리를 기준으로 경로가 설정되며, 이 경로에서 /를 제외하면 root 디렉토리 내의 경로가 된다.

 

/root 디렉토리는 root 사용자의 홈 디렉토리입니다. 이 디렉토리의 권한은 root 사용자만이 접근 가능하다.


dev

dev 디렉토리는 리눅스 시스템에서 장치 파일들이 위치하는 디렉토리이다. 시스템은 각각의 장치들로부터의 정보를 해당 장치 파일로부터 /dev 디렉토리에서 가지고 온다. 예를 들면, /dev/console은 시스템의 콘솔을 나타내고, /dev/hda는 시스템의 첫 번째 하드 디스크를 의미한다.


proc

proc 디렉토리는 가상 파일 시스템(virtual file system)으로, 커널, 하드웨어, 작동 중인 프로세스에 대한 정보를 제공한다. 이 디렉토리에는 현재 실행 중인 프로세스 정보, 시스템 자원 사용 정보, 하드웨어 정보 등이 포함된다. 또한 /proc 디렉토리 안에 있는 파일들은 읽기 전용이며, 프로세스 상태 정보를 포함하여 각종 시스템 정보를 볼 수 있습니다. 이러한 정보는 여러 명령어를 통해서도 확인 가능하다.

 

/proc 디렉토리는 시스템 관리와 디버깅에 유용하게 사용될 수 있다. 예를 들어, 프로세스 상태 정보를 확인하거나 프로세스가 사용하는 자원과 관련된 정보를 확인할 수 있다. 또한 이 디렉토리를 통해 커널 메모리, 하드웨어 장치 및 네트워크 정보도 확인 가능하다.

 

참고로, /proc 디렉토리는 실제로 디스크에 저장되어 있지 않고, 메모리 상에만 존재한다. 그러나 /proc 디렉토리는 시스템 관리자나 개발자를 위한 디버깅 용도로만 사용해야 하며, 일반 사용자는 실수로 파일을 삭제하거나 수정하지 않도록 주의해야 한다.


etc

/etc 디렉토리는 리눅스 운영 체제에서 시스템의 전반적인 환경 설정 파일과 사용자, 그룹 정보 등을 담고 있는 디렉토리다. 이 디렉토리에는 사용자, 암호, 그룹 등의 정보를 담고 있는 /etc/passwd 파일이 포함되어 있다. 이 파일은 사용자 이름, 암호, UID, GID, 그 외 정보, 홈 디렉토리, 셸 등의 정보를 담고 있으며, 사용자 및 그룹을 관리하는 데 사용된다. 또한 /etc 디렉토리에는 리눅스 부팅 시 작동하는 서비스들이 들어있는 /etc/init.d 디렉토리도 포함되어 있다. 이 디렉토리에는 런레벨에 따라 작동하는 서비스를 조정할 수 있는 파일들이 들어 있으며, 부팅 시 서비스를 자동으로 시작하거나 중지하는 데 사용된다. 또한, /etc/netboot 디렉토리에는 WAN 부트 설치에 필요한 구성 정보, 개인 키, 디지털 인증서 및 인증 기관이 들어있어, WAN 부트 설치를 사용자 정의할 때 이 디렉토리를 이용할 수 있다.


var

/var 디렉토리는 시스템에서 변동적인 데이터 파일들이 저장되는 공간이다. 대표적으로 로그 파일이 저장되는 /var/log, 시스템 실행 중 생성되는 프로세스나 락 파일 등이 저장되는 /var/run, 임시 파일이 저장되는 /var/tmp 등이 있다. 이 외에도 다른 시스템과 공유할 수 없는 고유한 디렉토리도 있다. 예를 들어 /var/mail, /var/cache/man, /var/cache/fonts, /var/spool/news 등이 있습니다.


tmp

/tmp 디렉토리는 리눅스 시스템에서 프로그램이나 사용자들이 임시 파일을 생성하고 저장하는 디렉토리이다. 일반적으로 /tmp에 저장된 파일들은 시스템 재부팅시 자동으로 삭제된다. 일반적인 사용자의 경우 /tmp 디렉토리를 채우는 것은 매우 어려운 일이며, 이 디렉토리에 저장된 파일은 몇 킬로바이트 정도로 매우 작다. 그러나 서버에서는 많은 사용자들이 접근하여 임시 파일을 생성할 수 있으며, 이 경우 보안상의 이유로 /tmp 디렉토리의 권한 값을 수정해야 할 수도 있다. 디렉토리의 권한 값은 기본적으로 아무나 읽고, 쓰고, 실행할 수 있도록 설정되어 있으며, 이로 인해 악성 스크립트가 실행될 수 있기 때문이다. 따라서 서버에서는 /tmp 디렉토리의 권한 값을 수정하거나, 보안 프로그램을 이용하여 위협으로부터 보호해야 한다.


 

반응형