Lesstep
GitHub Actions・Ubuntu 26.04・2026年11月4日に確認

ubuntu-latest(Ubuntu 26.04)の bubblewrap:「No permissions to create a new namespace」と bwrap-userns-restrict

ubuntu-latest は、2026年10月19日から11月19日にかけて Ubuntu 24.04 から 26.04 に移ります(ほかに変わること)。bubblewrap(bwrap)を、直接またはエージェントのサンドボックスを通して動かすジョブは、AppArmor の変更に当たります。26.04 では bwrap-userns-restrict のプロファイルが apparmor パッケージに含まれ、/etc/apparmor.d/ から読み込まれます。このプロファイルは /usr/bin/bwrap にユーザー名前空間を作らせますが、bwrap が始めるものはすべて、あらゆる権限(capability)を拒む2つ目のプロファイル unpriv_bwrap の下で動きます。

サンドボックスの中のサンドボックス

単純な bwrap の呼び出しは今も動きます。落ちるのは、その中で権限を必要とするもの、たとえば2つ目の bwrap や、入れ子のユーザー名前空間で setgroups を書く seccomp の補助プログラムです。bwrap 自身からは(Identity-md/worker #12):

bwrap: No permissions to create a new namespace, likely because the kernel does not allow non-privileged user namespaces. On e.g. debian this can be enabled with 'sysctl kernel.unprivileged_userns_clone=1'.

ここでは sysctl についてのヒントは見当違いです。拒んでいるのはプロファイルなので、kernel.apparmor_restrict_unprivileged_userns=0 だけでは直りません。Claude Code のもののようなサンドボックスのランタイムからは(claude-code #101946):

apply-seccomp: write /proc/self/setgroups (nested userns is capability-restricted; caller must provide CAP_SYS_ADMIN): Permission denied

カーネルのログにはプロファイルの名前が出ます:apparmor="DENIED" operation="capable" profile="unpriv_bwrap" capname="sys_admin"。ランナーでは、サンドボックスを呼ぶステップが落ちるか、サンドボックスを必要とするテストが飛ばされるか落ちます。

ジョブのあとに捨てられるランナーなら、そのジョブの間だけプロファイルを外し、bwrap が自分の名前空間を作れるようにユーザー名前空間を許します。devspace の CI がこうしていて、イメージ ubuntu-26.04 20261025.179.1 で、サンドボックスのテストを必須にしたまま緑です:

- name: Let bwrap nest
  run: |
    sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
    if [ -f /etc/apparmor.d/bwrap-userns-restrict ]; then
      sudo apparmor_parser -R /etc/apparmor.d/bwrap-userns-restrict || true
    fi

これはジョブの残りの間、ランナーのすべてのプログラムについて制限を外します。使い続けるマシンには写さないでください。そこでは、上の報告はプロファイルを無効にしたうえで、bwrap 用の制限の無いプロファイルを読み込んでいます。

プロファイルを読み込んでいた 24.04 のステップ

24.04 では、同じプロファイルが無効のまま apparmor-profiles パッケージの /usr/share/apparmor/extra-profiles/ に入っていて、多くのワークフローが、bwrap をそもそも動かすためにこれを読み込んでいました。26.04 ではそこに無いので、このステップがジョブを止めます(stashbase/cli #81:apparmor_parser が 2 で終了):

sudo apparmor_parser -r /usr/share/apparmor/extra-profiles/bwrap-userns-restrict

ファイルがあるときだけ読み込みます。26.04 ではプロファイルがもう読み込まれているので、このステップですることはありません:

profile=/usr/share/apparmor/extra-profiles/bwrap-userns-restrict
if [ -f "$profile" ]; then
  sudo apparmor_parser -r "$profile"
fi

ジョブが上の節の入れ子も必要とするなら、そのあとに上の行を足します。

見分け方

26.04 のほかの失敗

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べ、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

GitHub と GitHub Actions は GitHub, Inc. の商標、Ubuntu は Canonical Ltd. の商標、Claude は Anthropic, PBC の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・Canonical・Anthropic・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:「The ubuntu-latest label will migrate to Ubuntu 26」 · 「coreutils: unknown program」 · Ubuntu 26.04 の sudo -E · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English