/procで他人のプロセスを隠蔽する

昨日は/homeでの他ユーザの隠蔽について書きました。
/homeの一覧を見せなくする
ついでに最近調べてたやつで、/procにおける他ユーザの隠蔽について書いておきます。

/procでの他ユーザの隠蔽といえば、Gentoo歴の長い自分としてはhardened-sourcesを思い出します。
hardened-sources
Grsecurityを取り込んでいるやつです。
Grsecurity

hardened-sourcesにはGrsecurityの機能なのかなんなのか、他人のプロセスの隠蔽機能があって、仮想化までは必要じゃないんだけど、そこそこ分離したいケースに使えるんじゃないかと思ってました。しかしhardened-sourcesはライセンスの問題でGentooからは削除の方向になっています。
Hardened Linux kernel sources removal

しかしまぁ、他ユーザを隠蔽したいというニーズはあるだろうから、そのうち追加されるだろうと思って早3年ぐらい。実は実装されていました。

hidepid=n (since Linux 3.3)
This option controls who can access the information in /proc/[pid] directories. The argument, n, is one of the following values:

マウントオプションにhidepidを指定すると、/proc下のプロセスごとのディレクトリへのアクセスを制御することができるんだそうです。

選択肢は、0:今までどおり(デフォルト)、1:他人のユーザのとこは中身が見れない、2:他人のユーザのディレクトリは存在すら見れない、だそうです。

しかもgidも指定できて、そのグループに属していれば、hidepidの設定にかかわらず、今までどおり全てのディレクトリの中まで見れるんだそうです。

機能は寝て待て。あなたが欲しい機能は他人も欲しい。

この機能を試したい場合、mount -o remount,hidepid=? /procってやればいいです。たぶん何もないけど、何かあったら再起動で元に戻ります。

恒久的に設定する場合はfstabに書けばいいですね。ただ、最近のUbuntu系はfstabにprocが書かれていないようで、どうするのが正解なのか調査が間に合っていません。どうするのがいいんだろう?直接書いてもいいだろうけど、不安だったらrc.localとかでremountかな?

ともあれ、ちょっとした共有サーバでコンテナまでは不要ってときに、chrootせずに/homeと/procをユーザごとに分離できたら助かりますね。