Respostas:
/tmp
significa armazenamento rápido (possivelmente pequeno) com uma vida útil curta. Muitos sistemas limpam /tmp
muito rápido - em alguns sistemas ele é montado como disco RAM. /var/tmp
normalmente está localizado em um disco físico, é maior e pode conter arquivos temporários por mais tempo. Alguns sistemas também limpam /var/tmp
, mas com menos frequência.
Observe também que /var/tmp
pode não estar disponível no processo de inicialização precoce, pois /var
e / ou /var/tmp
podem ser pontos de montagem. Portanto, é um pouco comparável à diferença entre /bin
e /usr/bin
. O primeiro está disponível durante a inicialização antecipada - o último após o sistema ter montado tudo. Portanto, a maioria dos scripts de inicialização usará /tmp
e não /var/tmp
para arquivos temporários.
Outro (próximo) local no Linux para arquivos temporários é /dev/shm
.
/bin
e /usr/bin
são realmente os mesmos estes dias (links simbólicos). ;-)
/tmp
pode ser, e às vezes é, limpo na reinicialização. /var/tmp
é preservado entre as reinicializações.
Eles têm o mesmo objetivo e funcionalidade. Toda versão do UNIX / Linux manipula esses diretórios de maneira diferente. Historicamente, antes do advento dos sistemas de arquivos baseados em RAM / swap, você tinha sistemas sem disco, onde os sistemas de arquivos /
e /usr
seriam somente leitura e /var
(variável) seriam leitura-gravação. O /tmp
nome seria um link simbólico para /var/tmp
. Mais tarde, os sistemas sem disco ficaram fora de moda, o espaço em disco ficou mais barato (para ter maiores arquivos raiz) e a tecnologia permitida para sistemas de arquivos montados a partir da memória em vez do disco. O /var/tmp
diretório ficou fora de moda, mas ainda é usado por alguns programas.
Atualmente, mais segurança é configurada por padrão em /tmp
, como g+s,+t
permissões, mas não em /var/tmp
. Além disso, /var/tmp
raramente é montado na RAM ou na troca.
a+rwx+t
- e não g+s
.
Especificações básicas do POSIX, edição 7 em / tmp :
O diretório a seguir deve existir em sistemas conformes e deve ser usado conforme descrito:
/ tmp
Um diretório disponibilizado para aplicativos que precisam de um local para criar arquivos temporários. Os aplicativos devem criar arquivos neste diretório, mas não devem assumir que esses arquivos são preservados entre as invocações do aplicativo.
O Padrão de Hierarquia de Arquivos 2.3 em / tmp :
O diretório / tmp deve estar disponível para programas que requerem arquivos temporários.
Os programas não devem assumir que quaisquer arquivos ou diretórios em / tmp sejam preservados entre as invocações do programa.
Fundamentação
O padrão IEEE P1003.2 (POSIX, parte 2) estabelece requisitos semelhantes à seção acima.
Embora os dados armazenados em / tmp possam ser excluídos de uma maneira específica do site, é recomendável que os arquivos e diretórios localizados em / tmp sejam excluídos sempre que o sistema for inicializado.
A ESF adicionou essa recomendação com base no precedente histórico e na prática comum, mas não a tornou um requisito porque a administração do sistema não está dentro do escopo deste padrão.
O POSIX não especifica / var / tmp . A ESF faz :
O diretório / var / tmp é disponibilizado para programas que requerem arquivos ou diretórios temporários preservados entre as reinicializações do sistema. Portanto, os dados armazenados em / var / tmp são mais persistentes que os dados em / tmp .
Arquivos e diretórios localizados em / var / tmp não devem ser excluídos quando o sistema é inicializado. Embora os dados armazenados em / var / tmp sejam normalmente excluídos de uma maneira específica do site, é recomendável que as exclusões ocorram em um intervalo menos frequente que / tmp .