テンポラリディレクトリ /tmp の権限

FreeBSDのメインのテンポラリディレクトリは/tmp。
あまり権限を気にしない人は /tmpの権限は777で良いかと思ってるかもだけどそれは危険なので注意。

Rubyでは/usr/local/lib/ruby/2.4/tmpdir.rb (Ruby2.4の場合)で/tmpが普通のディレクトリであることを許可していない。Sticky Bit付きのディレクトリ(管理者とオーナー以外は削除禁止)でなくてはならないみたい。
だからうっかり chmod 777 /tmp なんてやっちゃうとその後Rubyが正常に使えなくなるかも。
( chmod 777 hogechmod 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が付いていること