合理管理Linux临时目录需设置粘滞位权限,配置systemd-tmpfiles定期清理,限制/tmp大小为tmpfs,并监控使用情况。具体操作包括:检查/tmp和/var/tmp的t权限位,配置/etc/tmpfiles.d/clean.conf实现10天自动清理,通过/etc/fstab挂载tmpfs限制/tmp为2G并启用noexec,nosuid,使用du和find命令监控空间与旧文件,推荐mktemp生成安全临时文件,确保服务最小权限访问,从而保障系统稳定与安全。

Linux系统中临时文件目录的管理是维护系统稳定与安全的重要环节。临时目录如 /tmp 和 /var/tmp 常被程序、服务和用户用来存储短期数据,若不妥善管理,容易造成磁盘空间耗尽或安全风险。
理解临时目录的作用
/tmp 是大多数应用程序默认的临时文件存放位置,系统重启后内容通常会被清空。/var/tmp 用于需要在重启后仍保留的临时数据。两者都应设置合适的权限,防止未授权访问。
确保这些目录具有正确的粘滞位(sticky bit),这样只有文件所有者才能删除自己的文件。可通过以下命令检查:
ls -ld /tmp /var/tmp
正常输出中应包含 t 权限位,例如 drwxrwxrwt。
定期清理临时文件
长时间运行的系统可能积累大量无用临时文件。可配置自动清理机制:
- 使用 systemd-tmpfiles 管理临时文件生命周期。该工具读取配置文件并按规则清理或创建目录。
- 查看默认配置:/usr/lib/tmpfiles.d/*.conf 和 /etc/tmpfiles.d/*.conf。
- 例如,要设置 /tmp 每10天清理一次,可在 /etc/tmpfiles.d/clean.conf 添加:
# 清理超过10天的 /tmp 文件 L /tmp – – – – – v /tmp 10d
然后通过 systemd-tmpfiles –clean 手动执行,或依赖 systemd 定时任务自动运行。
限制临时目录的大小
为避免临时文件耗尽磁盘空间,可将 /tmp 挂载为 tmpfs(内存文件系统):
- 编辑 /etc/fstab,添加:
tmpfs /tmp tmpfs defaults,noexec,nosuid,size=2G 0 0
这将 /tmp 限制为最大2GB,并禁止执行程序(增强安全性)。注意:重启后 /tmp 内容会丢失,符合预期行为。
同样方式可应用于 /var/tmp,但需确认应用是否依赖跨重启保留临时数据。
监控与权限控制
定期检查临时目录的使用情况:
- 使用 du -sh /tmp 查看占用空间。
- 用 find /tmp -type f -mtime +7 查找7天前创建的文件,判断是否可清理。
- 禁止写入敏感信息到临时目录,建议程序使用 mktemp 命令生成安全的临时文件。
确保关键服务不用的临时目录及时关闭访问权限,减少攻击面。
基本上就这些。合理配置自动清理、设置大小限制、保持正确权限,就能有效管理Linux中的临时文件目录。不复杂但容易忽略细节。


