Sur la plupart des systèmes FHS , il existe un /tmp
dossier ainsi qu'un /var/tmp
dossier. Quelle est la différence fonctionnelle entre les deux?
/tmp
est conçu comme un stockage rapide (éventuellement petit) avec une courte durée de vie. De nombreux systèmes nettoient /tmp
très rapide - sur certains systèmes, il est même monté en tant que disque RAM. /var/tmp
est normalement situé sur un disque physique, est plus grand et peut contenir des fichiers temporaires plus longtemps. Certains systèmes nettoient également /var/tmp
, mais moins souvent.
Notez également que /var/tmp
peut ne pas être disponible au début du processus de démarrage, car /var
et/ou /var/tmp
peut être des points de montage. Elle est donc un peu comparable à la différence entre /bin
et /usr/bin
. Le premier est disponible lors du démarrage précoce - le dernier après que le système a tout monté. La plupart des scripts de démarrage utiliseront donc /tmp
et pas /var/tmp
pour les fichiers temporaires.
Un autre emplacement (à venir) sur Linux pour les fichiers temporaires est /dev/shm
.
/tmp
peut être, et est parfois, nettoyé au redémarrage. /var/tmp
est conservé entre les redémarrages.
Ils ont le même objectif et les mêmes fonctionnalités. Chaque version d'UNIX/Linux traitera ces répertoires différemment. Historiquement, avant l'avènement des systèmes de fichiers RAM/swap, vous disposiez de systèmes sans disque où le /
et /usr
les systèmes de fichiers seraient en lecture seule et /var
(variable) serait en lecture-écriture. Le /tmp
nom serait un lien symbolique vers /var/tmp
. Plus tard, les systèmes sans disque sont tombés en désuétude, l'espace disque est devenu moins cher (pour avoir des systèmes de fichiers racine plus grands) et la technologie a permis des systèmes de fichiers montés à partir de la mémoire au lieu du disque. Le /var/tmp
Le répertoire n'est plus à la mode, mais est toujours utilisé par certains programmes.
De nos jours, plus de sécurité est configurée par défaut sur /tmp
, comme g+s,+t
autorisations, mais pas sur /var/tmp
. Aditionellement, /var/tmp
est rarement monté à partir de RAM ou swap.
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
Un répertoire mis à disposition pour les applications qui ont besoin d'un emplacement pour créer des fichiers temporaires. Les applications doivent être autorisées à créer des fichiers dans ce répertoire, mais ne doivent pas supposer que ces fichiers sont conservés entre les appels de l'application.
The File Hierarchy Standard 2.3 sur /tmp :
Le répertoire /tmp doit être disponible pour les programmes qui nécessitent des fichiers temporaires.
Les programmes ne doivent pas supposer que tous les fichiers ou répertoires de /tmp sont conservés entre les invocations du programme.
Justification
La norme IEEE P1003.2 (POSIX, partie 2) établit des exigences similaires à la section ci-dessus.
Bien que les données stockées dans /tmp puissent être supprimées d'une manière spécifique au site, il est recommandé de supprimer les fichiers et répertoires situés dans /tmp chaque fois que le système est démarré.
La FHS a ajouté cette recommandation sur la base d'un précédent historique et d'une pratique courante, mais n'en a pas fait une exigence car l'administration du système ne relève pas du champ d'application de cette norme.
POSIX ne spécifie pas /var/tmp. Le FHS le fait cependant :
Le répertoire /var/tmp est disponible pour les programmes qui nécessitent des fichiers temporaires ou des répertoires qui sont conservé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 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 d'une manière spécifique au site, il est recommandé que les suppressions se produisent à un intervalle moins fréquent que /tmp .