As configurações normais para /tmp
são 1777, que ls
mostra como drwxrwxrwt
. Ou seja: totalmente aberto, exceto pelo fato de que apenas o proprietário de um arquivo pode removê-lo (isso é o que esse t
bit extra significa para um diretório).
O problema com um /tmp
com o modo 777 é que outro usuário poderia remover um arquivo que você criou e substituir o conteúdo de sua escolha.
Se o seu /tmp
é um sistema de arquivos tmpfs, uma reinicialização irá restaurar tudo. Caso contrário, execute chmod 1777 /tmp
.
Além disso, muitos arquivos em /tmp
precisam ser privados. No entanto, pelo menos um diretório precisa ser crítico em termos globais: /tmp/.X11-unix
e possivelmente outros diretórios similares ( /tmp/.XIM-unix
, etc.). O comando a seguir deve basicamente definir as coisas corretamente:
chmod 1777 /tmp
find /tmp -mindepth 1 -name '.*-unix' -exec chmod 1777 {} + -prune -o -exec chmod go-rwx {} +
Ou seja. Torne todos os arquivos e diretórios privados (remova todas as permissões para o grupo e outros), mas torne os sockets X11 acessíveis a todos. O controle de acesso nesses soquetes é imposto pelo servidor, não pelas permissões de arquivo. Pode haver outros soquetes que precisam estar disponíveis publicamente. Execute find /tmp -type s -user 0
para descobrir os soquetes de propriedade da raiz que podem ser necessários para tornar o mundo acessível. Podem existir também tomadas pertencentes a outros utilizadores do sistema (por exemplo, para comunicar com um barramento de sistema); explore com find /tmp -type s ! -user $UID
(onde $UID
é seu ID de usuário).