linux 3.14.8, 3.15.1 での非特権コンテナ
(追記: 2014-07-01)
この問題に関するパッチがマージされました。
- Fix to work lxc-start with unprivileged containers on recent kernel · lxc/lxc@1bd3214 · GitHub
- Fix to work lxc-destroy with unprivileged containers on recent kernel · lxc/lxc@308fddd · GitHub
- Cast to gid_t to fix android build failure · lxc/lxc@8c760bb · GitHub
最後の修正は Android 開発環境でのビルドが通らない問題の修正なのでなくても動くと思います。master, stable-1.0 両方のブランチにマージされていますので、1.0 系列でも次のバージョンで直って出てくるはずです (でないと Ubuntu で動かなくなるだろうし)。
(追記: ここまで)
6 月 16 日に 3.14.8, 3.15.1 カーネルが出ていますが、このカーネル上では LXC の非特権コンテナ (一般ユーザによるコンテナの起動) ができなくなっています。
これは以下のコミットが行われたためです。
このコミットのパッチだけを上記カーネルから抜くと (patch -R)、ちゃんと起動してきます。ただし、この修正は CVE-2014-4014 が割り当てられていますので、コレを抜けば OK というわけでもありません。
LXC でコンテナを起動するときのマッピング (コンテナ内のttyのための/dev/pts/*をsubuid所有にする) を今までは uid だけマッピングすれば OK だったのが、uid/gid をちゃんとマッピングしてから起動する必要があるようで、今修正にとりかかっていますが、ちょっとまだどう修正すれば良いのかわかってません。
Serge さんからアドバイスはもらってますが、そのままやってもうまくいきませんのでしばらくお待ちを ^^; 状況が変わったらここで報告します。
とりあえず非特権コンテナを使う人は 3.14.8, 3.15.1 には上げないで、脆弱性については中身を理解してお使いください。