임시 파일을 두는 「버려도 되는」 자리가 두 종류 있습니다.
/tmp와 /var/tmp.
둘 다 「임시」지만 「영속성」 차이가 있어 용도가 다릅니다.
/tmp.
「재부팅 시 비워지는」 임시 영역.
모든 사용자가 쓸 수 있고, 큰 파일도 자유롭게 만들 수 있음.
모던 리눅스(Ubuntu·Fedora)는 /tmp를 tmpfs(메모리 기반 파일시스템)로 마운트 — 매우 빠르지만 RAM을 사용.
큰 파일은 RAM을 잡아먹음.
/var/tmp.
「재부팅 후에도 보존되는」 임시 영역.
오래 살아남아야 하는 임시 파일에.
디스크에 저장되므로 RAM 부담 없음.
대신 정리는 사람이 직접 하거나 systemd-tmpfiles 같은 도구가 정기적으로(예: 30일 후 삭제).
권한 — sticky bit.
ls -ld /tmp로 보면 drwxrwxrwt 마지막 t.
sticky bit이라 「자기가 만든 파일만 자기가 지울 수 있음」.
모든 사람이 쓸 수 있는 폴더에서 다른 사람 파일 삭제 사고 방지.
주의 — 보안.
/tmp는 모든 사용자가 쓰기 가능 → 「심볼릭 링크 공격」 같은 보안 이슈가 있을 수 있음.
임시 파일을 만들 때는 mktemp 명령 사용 — 안전하게 충돌 없는 이름 생성.
패스워드·키 같은 민감 데이터 임시 저장 절대 금지.
한 줄 요약
/tmp는 재부팅 시 비워짐(tmpfs로 RAM 가능), /var/tmp는 재부팅 후 보존.
둘 다 sticky bit으로 자기 파일만 삭제 가능.
mktemp로 안전한 임시 파일, 민감 데이터는 절대 금지.
더 알아볼 것
- tmpfs vs 디스크 — 성능 vs 영속
- systemd-tmpfiles로 자동 정리
- mktemp로 안전한 임시 파일