FreeBSDのメインのテンポラリディレクトリは/tmp。
あまり権限を気にしない人は /tmpの権限は777で良いかと思ってるかもだけどそれは危険なので注意。
Rubyでは/usr/local/lib/ruby/2.4/tmpdir.rb (Ruby2.4の場合)で/tmpが普通のディレクトリであることを許可していない。Sticky Bit付きのディレクトリ(管理者とオーナー以外は削除禁止)でなくてはならないみたい。
だからうっかり chmod 777 /tmp なんてやっちゃうとその後Rubyが正常に使えなくなるかも。
( chmod 777 hoge は chmod 0777 hoge と同じなのでStick Bitが付いていてもそれが外れてしまう点に注意)
なにげにRubyを使うアプリがあると思うので/tmpのSticky Bitが外れるのはヤバい。直接Rubyを使うのでなくてもRubyを呼び出すツールなどでも発生する。
Rubyの場合は/tmpが使えないと下のメッセージ(tmpdir.rbによる)が出るみたい。
Could not find a temporary directory
Ruby以外でも/tmpはSticky Bit付きのディレクトリであることを前提としていることがあるかもだし他のユーザー(で動いているアプリ)が使っているファイルを別のユーザーに消されるというのは好ましくないのでRubyを使ってなくてもSticky Bit付きのディレクトリにしておくのは悪いことではないかと思われる。
# chmod +t /tmp # drwxrwxrwの場合 または # chmod 1777 /tmp # ls -l / | grep tmp drwxrwxrwt 11 root wheel 12800 Apr 27 11:41 tmp ↑最後にtが付いていること