かまたま日記3

プログラミングメイン、たまに日常

cgroupのDevice Whitelist Controllerについて

https://www.kernel.org/doc/Documentation/cgroup-v1/devices.txt

cgroupはmknod (特殊ファイルの作成) を制限できる。

echo 'c 1:3 mr' > /sys/fs/cgroup/1/devices.allow

これは 「cgroup 1 に/dev/nullのread and mknod の権限を追加する」という意味になる

  • 最初のcはtypeでa (all), c (char), or b (block) の3つがある
  • 1:3 はMajor, minorデバイス番号。詳細は ここ 参照
  • 最後のmrは権限でr (read), w (write), m (mknod)

参考: https://linuxcommand.net/mknod

Dockerで設定する場合 --device-cgroup-rule を使う

docker run --rm --device-cgroup-rule 'c 1:3 mr' myapp