리눅스 tmp 디렉토리: /tmp와 /var/tmp 차이

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

리눅스 tmp 디렉토리는 임시 파일을 저장하기 위해 주로 /tmp와 /var/tmp 디렉토리를 사용합니다.

/tmp는 일시적인 임시 파일을 저장하는 공간으로, 시스템이 재부팅 되면 대부분의 파일이 삭제됩니다. 따라서 빠른 입출력과 임시 작업에 적합하며, 주로 프로세스가 실행 중 생성하는 임시 데이터를 저장합니다.

반면에 /var/tmp는 재부팅 후에도 파일이 유지되는 임시 저장 공간입니다. 장기간 유지가 필요한 임시 파일이나 작업 중간 저장용으로 사용되며, 일부 애플리케이션에서 중요한 임시 데이터를 보관할 때 사용됩니다.

✅ /tmp와 /var/tmp 차이

/ [ROOT]
├─ /bin -> usr/bin
├─ /boot
├─ /dev
├─ /etc
├─ ...
├─ /tmp [재부팅 시 삭제되는 일시적 임시 파일 저장소]
├─ /usr
└─ /var
    ├─ ...
    └─ tmp [재부팅 후에도 유지되는 장기 임시 파일 저장소]

🔲 /tmp

/tmp 디렉토리는 시스템이나 애플리케이션이 일시적인 데이터를 저장할 때 사용하는 공간입니다. 주요 특징은 다음과 같습니다.

  • 재부팅 시 자동 삭제됨: 대부분의 배포판에서는 /tmp의 파일이 시스템 부팅 시 삭제되도록 설정되어 있습니다.
  • 빠른 접근성과 입출력 성능: 일부 시스템에서는 /tmp를 tmpfs로 마운트하여 메모리 기반으로 운영하기도 합니다.
  • 공용 임시 저장소: 사용자와 프로세스 간의 임시 파일 공유 장소로도 사용됩니다.
  • 보안 주의 필요: 전역 쓰기 가능(writable)이므로, 악의적인 스크립트나 공격 대상이 되지 않도록 권한 설정과 정기적인 정리가 필요합니다.

🔲 /var/tmp

/var/tmp 디렉토리는 재부팅 후에도 삭제되지 않는 임시 파일을 저장하기 위한 공간입니다. /tmp와의 차이점은 파일의 수명과 보존 목적에 있습니다. 주요 특징은 다음과 같습니다.

  • 재부팅 후에도 파일 유지됨: 시스템이 꺼졌다가 다시 켜져도 /var/tmp의 파일은 삭제되지 않습니다.
  • 장기 임시 저장소: 설치 작업 도중 생성되는 큰 임시 파일, 장시간 실행되는 프로세스의 중간 결과물 등이 저장됩니다.
  • 애플리케이션 의존성: 일부 프로그램은 /var/tmp에 저장된 데이터를 기준으로 실행 상태를 판단하거나 복구 작업을 수행하기도 합니다.
  • 보안 및 정리: /tmp와 마찬가지로 누구나 파일을 만들 수 있는 공간이기 때문에, 오래된 파일을 자동으로 지우는 설정(cron이나 systemd-tmpfiles 사용)을 해 두는 것이 좋습니다.
📌 리눅스 tmp 디렉토리 용도 요약
/tmp: 짧은 생명, 휘발성 작업 
/var/tmp:  생명, 지속적인 임시 파일

✅ 리눅스 tmp 디렉토리를 하나로 사용하는 경우

리눅스 tmp 디렉토리를 하나로 사용하는 경우는 다음과 같습니다.

  1. 운영 단순화
     → /tmp 하나만 관리하면 되므로, 디렉토리 권한/보안/정리 정책 등을 설정하기 쉬움
  2. 임시 파일 대부분이 짧은 생명 주기
     → 많은 프로그램들이 재부팅 시 사라져도 되는 임시 파일을 생성함 → /tmp로 충분
  3. tmpfs 마운트 활용
     → /tmp를 메모리 기반(tmpfs)으로 마운트하면 빠른 입출력 제공 가능
     → 디스크 I/O 줄이고 성능 향상
  4. 현대 시스템에서는 /var/tmp 필요성 감소
     → 장기 임시 저장이 필요한 프로그램이 줄었고, 자체 저장 디렉토리를 따로 쓰는 경우가 많아짐
  5. 보안/감사 추적 일원화
     → 하나의 tmp 공간에만 정책 적용 및 모니터링 가능

리눅스 tmp 디렉토리를 하나로 사용하는 이유는 운영 및 보안 관리가 편리하기 때문입니다. 많은 임시 파일이 짧은 생명 주기를 가지므로, /tmp를 tmpfs로 마운트해 빠른 입출력을 제공하는 경우가 많습니다. 다만, 장기 임시 저장이 필요한 경우를 위해 /var/tmp가 별도로 존재하며, 레드햇 8부터는 이 둘의 역할 분담을 유지하면서 보안 정책과 정리 정책을 각각 적용하는 것이 일반적입니다.

📌요약: 운영 편의성 + 성능
리눅스 tmp 디렉토리 콘텐츠: 리눅스 디렉토리 구조

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

Similar Posts

  • SSL 인증서 설치(Sectigo)

    Apache 웹 서버에 Sectigo SSL 인증서 설치를 진행합니다. 테스트 URL로 서브 도메인 tozisin.com으로 하여 설치 테스트를 진행합니다. 설치할 인증서는 설치 후 30일 간 이용 가능한 ‘Free 30Days SSL‘ 설치를 진행합니다. AlmaLinux 9.4는 Rocky Linux 9.4와 완전히 호환되는 RHEL 계열의 클론입니다. 따라서 Apache 설치 및 모듈 구성 방식도 Rocky Linux와 동일합니다. Apache 버전은 2.4.57입니다….

  • |

    컴파일 뜻 : 컴파일링이란?

    ■ 컴파일이란? 컴파일(compile)이란 프로그래머가 작성한 소스코드를 바이너리 파일로 변환하는 과정이다. 소스코드를 Compiler 하여 프로그램을 만들 수 있다. 요즘은 배포판 공급업체에서 이미 compile 된 바이너리 파일들을 저장소에 관리하는 것이 일반적인 사항이 되었으며, 서버로 다운로드 후 바로 사용할 수 있다. Ⅰ. 컴파일링과 링킹 compile 과정을 컴파일링(compiling)이라고 하며, 소스코드(사람일 읽을 수 있는 형태의 프로그램)를 컴퓨터 프로세서의…

  • 리눅스 kill 명령어[kill -9 PID]

    리눅스 kill 명령어는 사용 중인 프로세스를 종료하는 명령어입니다. 터미널에서 프로세스에 시그널(Signal)을 보내서 프로세스를 종료합니다. 프로그램이 정지하거나 응답하지 않는 경우 일반적인 종료가 되지 않는 경우 등에 따라 명령어를 실행하게 됩니다. kill process는 사용 시 중요한 시스템 프로세스를 종료 시키면 시스템이 불안정해질 수 있기 때문에 주의해서 사용해야 합니다. ✅ 리눅스 kill 명령어 기본 사용 방법…

  • [Linux] Shell 확장 6가지와 Shell 인용 3가지

    echo 명령어를 사용해서 Shell 확장(Expansion)에 대해 알아 보겠습니다. 1. Shell 확장 Shell 확장(Expansion)이란 셸에서 프로그램을 실행하기 직전 사용자가 입력한 인자를 정해진 의미에 맞게 해석해서 입력 or 출력으로 전환하는 것을 의미합니다. 프로그램은 echo를 포함한 명령어와 쉘에서 실행하는 모든 기능과 명령어들을 의미합니다. echo 명령어로 인수(or 인자: Argument)가 표시됩니다. 1.1 경로명 확장(Pathname Expansion) 와일드카드가 작동하는 메커니즘을…

  • [Linux] userdel 명령어: 사용자 계정 삭제 명령어

    리눅스에서 useradd로 계정 생성 후 삭제가 필요한 경우 userdel 명령어를 사용합니다. ✅ userdel 명령어 기본 사용은 아래와 같습니다. ✅ userdel 주로 사용하는 옵션 userlde만 입력해서 사용자를 삭제할 경우 보통 /home/[user]로 계정명이 폴더에 버전에 따라 남아있거나 삭제되는데 /var/spool/mail/[user] 파일은 대부분의 리눅스에서 남게 됩니다. ✅ 사용자 계정 강제 삭제 제거할 사용자 계정이 로그인 되어 있거나…

  • 리눅스 커널(Kernel)이란? | 커널 버전

    리눅스 커널과 커널은 같은 뜻을 가지고 있습니다. 커널을 말할 때 리눅스 커널을 이야기 하는 것입니다. 핵심(&알맹이)이라는 뜻을 가진 커널(Kernel)은 내부 계층에 속하며, Shell 명령과 하드웨어를 연결해 주는 역할을 합니다. 리눅스 커널(Kernel)의 개념 컴퓨터는 크게 물리적으로 만질 수 있는 하드웨어(키보드, 모니터, 본체:CPU, 메모리 등)와 소프트웨어로 나뉘게 됩니다. 소프트웨어는 운영체제인 윈도우, 리눅스, MacOS 등이며, 추가로…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 2   +   1   =