Quelle est la différence entre / tmp et / var / tmp?

Réponses:

114

/tmpsignifie stockage rapide (éventuellement petit) avec une durée de vie courte. De nombreux systèmes nettoient /tmptrès rapidement - sur certains systèmes, il est même monté sur un disque RAM. /var/tmpest normalement situé sur un disque physique, est plus volumineux et peut contenir des fichiers temporaires plus longtemps. Certains systèmes nettoient également /var/tmp, mais moins souvent.

Notez également que, /var/tmpdans le processus de démarrage précédent, ils pourraient ne pas être disponibles, /varet / ou /var/tmppeuvent être des points de montage. Ainsi, il est un peu comparable à la différence entre /binet /usr/bin. Le premier est disponible au début du démarrage - le dernier après que le système a tout monté. Donc, la plupart des scripts de démarrage utiliseront /tmpet non /var/tmpdes fichiers temporaires.

Un autre emplacement (à venir) sur Linux pour les fichiers temporaires est /dev/shm.

Nils
la source
4
Je trouve cela un peu ironique /binet /usr/binsont en fait les mêmes de nos jours (liens symboliques). ;-)
Felix Schwarz
2
@Felix Pas encore sur toutes les distributions. Mais Linux évolue de cette façon. Probablement parce que les disques deviennent de plus en plus gros.
Nils
26

/tmppeut être, et est parfois, nettoyé au redémarrage. /var/tmpest préservé entre les redémarrages.

Voir l'article de Wikipedia sur la FHS .

njsg
la source
1
/ tmp peut même nettoyer les fichiers créés par un processus juste après sa fermeture!
Osvein
15

Ils ont le même but et la même fonctionnalité. Chaque version d'UNIX / Linux gérera ces répertoires différemment. Historiquement, avant l'avènement des systèmes de fichiers à base de RAM / swap, vous disposiez de systèmes sans disque où les systèmes de fichiers /et /usrétaient en lecture seule et /var(variable) en lecture-écriture. Le /tmpnom serait un lien symbolique vers /var/tmp. Plus tard, les systèmes sans disque ne sont plus à la mode, l’espace disque devient moins cher (pour avoir des systèmes de fichiers racine plus grands) et la technologie autorise les systèmes de fichiers montés à partir de la mémoire plutôt que sur disque. Le /var/tmprépertoire est tombé en désuétude, mais est toujours utilisé par certains programmes.

De nos jours, plus de sécurité est configurée par défaut sur /tmp, comme les g+s,+tautorisations, mais pas sur /var/tmp. De plus, il /var/tmpest rarement monté à partir de RAM ou d’échange.

Arcege
la source
Sur mes systèmes debian et fedora, / tmp et / var / tmp ont le même mode a+rwx+t- et no g+s.
sourcejedi
12

Spécifications de base POSIX, numéro 7 sur / tmp :

Le répertoire suivant doit exister sur les systèmes conformes et doit être utilisé comme décrit:

/ tmp

Répertoire disponible pour les applications nécessitant un emplacement pour créer des fichiers temporaires. Les applications sont autorisées à créer des fichiers dans ce répertoire, mais ne supposent pas que ces fichiers sont préservés entre les invocations de l'application.

La norme de hiérarchie de fichiers 2.3 sur / tmp :

Le répertoire / tmp doit être disponible pour les programmes nécessitant des fichiers temporaires.

Les programmes ne doivent pas supposer que des fichiers ou des répertoires dans / tmp sont préservés entre les invocations du programme.

Raisonnement

La norme IEEE P1003.2 (POSIX, partie 2) établit des exigences similaires à celles de la section ci-dessus.

Bien que les données stockées dans / tmp puissent être supprimées de manière spécifique au site, il est recommandé de supprimer les fichiers et les répertoires situés dans / tmp à chaque démarrage du système.

FHS a ajouté cette recommandation sur la base d'un précédent historique et d'une pratique courante, sans toutefois en faire une exigence, car l'administration du système n'entre pas dans le champ d'application de cette norme.

POSIX ne spécifie pas / var / tmp . La FHS fait cependant :

Le répertoire / var / tmp est disponible pour les programmes nécessitant des fichiers temporaires ou des répertoires préservés entre les redémarrages du système. Par conséquent, les données stockées dans / var / tmp sont plus persistantes que les données dans / tmp .

Les fichiers et les répertoires situés dans / var / tmp ne doivent pas être supprimés au démarrage du système. Bien que les données stockées dans / var / tmp soient généralement supprimées de manière spécifique au site, il est recommandé de supprimer les suppressions à un intervalle moins fréquent que / tmp .

osvein
la source
Ahhh, j'adore la documentation. Maintenant je sais que je sais, et pourquoi je crois que je le sais. Mes besoins épistémologiques sont tellement satisfaits en ce moment.
Stephen C