
新Linux入門|/tmp・/var/tmp の役割とスティッキービットの仕組み
Linuxシステムを使っていると、よく目にするディレクトリ /tmp や /var/tmp。
これらはどちらも一時ファイル(temporary files)を保存するための場所ですが、
実は動作や用途に明確な違いがあります。
また、この2つのディレクトリではスティッキービット(Sticky Bit)という特殊なアクセス制御も設定されています。
この記事では、それぞれの役割とスティッキービットの仕組みをわかりやすく解説します。

📂 /tmp ディレクトリとは?
/tmp は「Temporary」の略で、短期間だけ使う一時ファイルを保存するディレクトリです。
アプリケーションやシステムが作業用の一時データを保存するときによく利用されます。
主な特徴
| 項目 | 内容 |
|---|---|
| 目的 | 一時ファイルを保存するための領域 |
| 寿命 | システムの再起動時に自動的に削除される。 |
| 権限 | すべてのユーザーが読み・書き・実行可能(rwxrwxrwt) |
| スティッキービット | 設定されている(他人のファイルを削除できない) |
💡 ポイント
/tmp 内のファイルは再起動時に消えるため、長期保存したいファイルには不向きです。
AlmaLinux 9.6 での確認例
[suzuki@AlmaLinux ~]$ ls -ld /tmp
drwxrwxrwt. 18 root root 4096 11月 9 21:16 /tmpここで末尾の「t」が、スティッキービットが有効になっていることを示しています。
🗂️ /var/tmp ディレクトリとは?
/var/tmp も一時ファイルを保存するためのディレクトリですが、
システムの再起動後もファイルが削除されないという点で /tmp と異なります。
主な特徴
| 項目 | 内容 |
|---|---|
| 目的 | 長期間保持する一時ファイルの保存 |
| 寿命 | システム再起動後もファイルが残る。 |
| 権限 | すべてのユーザーが読み・書き・実行可能(rwxrwxrwt) |
| スティッキービット | 設定されている(安全な共有を実現) |
💡 ポイント
/var/tmp は /tmp と同様に全ユーザーが利用できますが、再起動で消えません。
たとえば、アプリケーションがインストール途中で中断しても再開可能にする一時データなどを保存するのに使われます。
AlmaLinux 9.6 での確認例
[suzuki@AlmaLinux ~]$ ls -ld /var/tmp
drwxrwxrwt. 15 root root 4096 11月 9 16:56 /var/tmpこちらも末尾に「t」があることから、スティッキービットが有効であることがわかります。
🔒 スティッキービットとは?
スティッキービット(Sticky Bit)は、ディレクトリに設定できる特別なアクセス制御ビットです。
通常、ディレクトリに書き込み権限(w)があれば、他のユーザーが作成したファイルでも削除できます。
しかしスティッキービットが設定されていると、ファイルの所有者本人・ディレクトリの所有者・rootユーザー以外は削除できません。
仕組みのイメージ
| 状況 | スティッキービットなし | スティッキービットあり |
|---|---|---|
| suzukiが作成したファイルをtanakaが削除 | ✅ 可能 | 🚫 不可能 |
| suzukiが自分のファイルを削除 | ✅ 可能 | ✅ 可能 |
| rootユーザーが削除 | ✅ 可能 | ✅ 可能 |
💡 /tmp や /var/tmp のように複数ユーザーが使うディレクトリでは必須のセキュリティ機能です。
⚙️ スティッキービットの設定方法
スティッキービットは chmodコマンド を使って設定します。
コマンド書式
chmod +t ディレクトリ名例:共有ディレクトリに設定する場合
[root@AlmaLinux ~]# chmod +t /shared設定後の確認
[root@AlmaLinux ~]# ls -ld /shared
drwxrwxrwt 2 root root 4096 8月 29 15:00 /shared末尾に「t」が表示されていれば設定成功です。
🧮 スティッキービットを数値で設定する
スティッキービットは、8進数表記(数値モード)で 1000 を加えることで表現します。
| 通常の権限 | スティッキービット付き | コマンド例 |
|---|---|---|
| 777 | 1777 | chmod 1777 /shared |
| 755 | 1755 | chmod 1755 /shared |
| 700 | 1700 | chmod 1700 /shared |
📘 例
[root@AlmaLinux ~]# chmod 1777 /shared→ これで、誰でもアクセスできるが他人のファイルは削除できない安全な共有ディレクトリになります。
🧩 スティッキービットを解除する
スティッキービットを解除するには、次のようにします。
[root@AlmaLinux ~]# chmod -t /shared解除後に確認
[root@AlmaLinux ~]# ls -ld /shared
drwxrwxrwx 2 root root 4096 8月 29 15:05 /shared末尾の「t」が消えていれば解除されています。
🧠 コマンドまとめ:chmodの主なオプション
| オプション | 説明 |
|---|---|
| -R | ディレクトリ以下を再帰的に変更 |
| -v | 変更内容を詳細に表示 |
| -c | 変更があった場合のみ出力 |
📘 例
[root@AlmaLinux ~]# chmod -Rv 1777 /shared
'/shared' のモードを 0755 (rwxr-xr-x) から 1777 (rwxrwxrwt) へ変更しました✅ まとめ
| ディレクトリ | 主な用途 | 再起動後の挙動 | スティッキービット | 権限 |
|---|---|---|---|---|
| /tmp | 短期的な一時ファイル | 自動削除される | 有効(t) | drwxrwxrwt |
| /var/tmp | 長期間保持する一時ファイル | 残る | 有効(t) | drwxrwxrwt |
💡 /tmp と /var/tmp は、どちらも誰でも使える便利な場所ですが、
スティッキービットによって「他人のファイルを守る」仕組みがきちんと働いています。
システムの安定運用やセキュリティを考えるうえでも、
これらのディレクトリの役割とスティッキービットの関係を理解しておくことはとても大切です。
