linux:kernel:cgroup:cgroup_management_daemon

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
linux:kernel:cgroup:cgroup_management_daemon [2013/12/11 10:29] tenforwardlinux:kernel:cgroup:cgroup_management_daemon [2013/12/11 11:11] (現在) tenforward
行 196: 行 196:
       ucred over the unix socket, and therefore translated to init       ucred over the unix socket, and therefore translated to init
       userns.       userns.
 +
 +    * r が cgroup /x に対して uid Y への chown をリクエストした場合,Y
 +      は Unix socket 経由で ucred に渡される.そのため,init userns に
 +      変換される.
 +
     * if r requests setting a limit under /x, then     * if r requests setting a limit under /x, then
       . either r must be root in its own userns, and UID(/x) be mapped       . either r must be root in its own userns, and UID(/x) be mapped
行 206: 行 211:
         (see devices.allow/deny).  Further we need to support older kernels         (see devices.allow/deny).  Further we need to support older kernels
         which don't support setns for pid.         which don't support setns for pid.
 +
 +    * r が /x 以下の制限を設定するリクエストをした場合,
 +      - r は自身の userns で root であり,UID(/x) がその userns 内でマッ
 +        ピングされていなければならないか,UID(r) == UID(/x) でなければ
 +        ならないかのどちらかである.
 +      - /x は / であってはならない (厳密に必要ではない.全てのユーザが
 +        / が cgroup の特別なレイヤーであることを知っている)
 +      - setns(UIDNS(r)) が動かない.これはカーネル内の capable() チェッ
 +        クを満たさないためである.それゆえ,特権チェックを我々自身が行
 +        う必要がある.そして,ホストの root ユーザとして書き込みを行う
 +        (see devices.allow/deny).さらに,我々は pid に対する setns が
 +        できない古いカーネルをサポートする必要がある.
 +
     * If r requests action on victim V, it passes V's pid in a ucred,     * If r requests action on victim V, it passes V's pid in a ucred,
       so that gets translated.       so that gets translated.
  • linux/kernel/cgroup/cgroup_management_daemon.1386757757.txt.gz
  • 最終更新: 2013/12/11 10:29
  • by tenforward