TMPERAMENTAL(1)

πŸ’– NAME πŸ’–

okay so bestie, say hi to tmperamental β€” it's the little tool that helps you avoid writing to /tmp. that's it. that's the whole job. no cap. πŸŽ€


✨ SYNOPSIS ✨

tmperamental cmd arg1 arg2 ...

yeah you literally just yeet your command in after it. iconic behaviour honestly. πŸ¦‹


🌸 DESCRIPTION 🌸

so here's the tea, bestie: tmperamental uses a preloaded library that intercepts filesystem writes, and it makes writes go LOUDLY WRONG if anything tries to write into /tmp/*. like, not a quiet little oops. a whole scene. πŸ’€

the whole idea is this: by setting TMPDIR and friends, it catches programs in the act of not respecting those env-vars. gotcha, bestie. 🫢


πŸ”₯ USAGE πŸ”₯

just prefix the command you wanna run with tmperamental and it should cause it to abort if it ever tries to write anywhere within /tmp.

ngl, this is pretty brutal, so you probably only want to use it for testing. it is NOT the vibe for your everyday setup, ok? πŸ™ˆ

πŸ’… ENVIRONMENT πŸ’…

  • if TMPDIR is unset, tmperamental will set it automatically to $HOME/tmp. it's got you. ✨
  • tmperamental uses LD_PRELOAD to load a custom library called libtmperamental.so that intercepts library calls. yes queen, we're intercepting. πŸ‘‘

🧚 LIMITATIONS 🧚

okay so this is the part where we keep it real fr fr:

tmperamental only catches writes to /tmp at shared object library calls using the standard libc interface. so a statically-compiled program that makes system calls directly will be able to write to /tmp without being intercepted. it just slips right past. πŸ’€

it's giving "very good, not omniscient." know the limits, bestie. 🌈


that's the whole page, gorgeous. this was tmperamental 1.2, born March 2020 β€” and it's still out here protecting /tmp like the main character it is. slay, stay hydrated, and keep your tmp clean πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from