I also tried

  aa-disable usr.bin.crun

but that doesn't work either. I guess it's not really crun, but
profile="containers-default-0.50.1", but that is created dynamically --
it's not anywhere in /etc/apparmor.d/. I grepped the whole file system
for that:

  grep: /usr/lib/podman/rootlessport: binary file matches
  grep: /usr/bin/podman: binary file matches
  grep: /usr/bin/buildah: binary file matches

Running an individual container with --security-opt=label=disable also
doesn't work, same DENIED and failure.

"man containers.conf" points at apparmor_profile="container‐default",
but not how to disable it. I naively tried apparmor_profile="none" but

  Error: AppArmor profile "none" specified but not loaded

But curiously an empty string works. 🎉 So, my official workaround:

  mkdir -p /etc/containers/containers.conf.d
  printf '[CONTAINERS]\napparmor_profile=""\n' > 
/etc/containers/containers.conf.d/disable-apparmor.conf

** No longer affects: apparmor (Ubuntu)

** No longer affects: apparmor (Ubuntu Mantic)

** No longer affects: apparmor (Ubuntu Noble)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apparmor in Ubuntu.
https://bugs.launchpad.net/bugs/2040483

Title:
  AppArmor denies crun sending signals to containers (stop, kill)

Status in libpod package in Ubuntu:
  Confirmed
Status in libpod source package in Mantic:
  New
Status in libpod source package in Noble:
  Confirmed

Bug description:
  Mantic's system podman containers are completely broken due to bug
  2040082. However, after fixing that (rebuilding with the patch, or a
  *shht don't try this at home* hack [1]), the AppArmor policy still
  causes bugs:

    podman run -it --rm docker.io/busybox

  Then

    podman stop -l

  fails with

     2023-10-25T11:06:33.873998Z: send signal to pidfd: Permission
  denied

  and journal shows

    audit: type=1400 audit(1698231993.870:92): apparmor="DENIED"
  operation="signal" class="signal" profile="containers-default-0.50.1"
  pid=4713 comm="3" requested_mask="receive" denied_mask="receive"
  signal=term peer="/usr/bin/crun"

  This leaves the container in a broken state:

    # podman ps -a
    CONTAINER ID  IMAGE                             COMMAND     CREATED         
STATUS                      PORTS       NAMES
    61749260f9c4  docker.io/library/busybox:latest  sh          40 seconds ago  
Exited (-1) 29 seconds ago              confident_bouman

    # podman rm --all
    2023-10-25T11:07:21.428701Z: send signal to pidfd: Permission denied
    Error: cleaning up container 
61749260f9c4c96a51dc27fdd9cb8a86d80e4f2aa14eb7ed5b271791ff8008ae: removing 
container 61749260f9c4c96a51dc27fdd9cb8a86d80e4f2aa14eb7ed5b271791ff8008ae from 
runtime: `/usr/bin/crun delete --force 
61749260f9c4c96a51dc27fdd9cb8a86d80e4f2aa14eb7ed5b271791ff8008ae` failed: exit 
status 1

    audit: type=1400 audit(1698232041.422:93): apparmor="DENIED"
  operation="signal" class="signal" profile="containers-default-0.50.1"
  pid=4839 comm="3" requested_mask="receive" denied_mask="receive"
  signal=kill peer="/usr/bin/crun"

  [1] sed -i 's/~alpha2/0000000/' /usr/sbin/apparmor_parser

  Ubuntu 23.10

  ii  apparmor                        4.0.0~alpha2-0ubuntu5 amd64        
user-space parser utility for AppArmor
  ii  golang-github-containers-common 0.50.1+ds1-4          all          Common 
files for github.com/containers repositories
  ii  podman                          4.3.1+ds1-8           amd64        engine 
to run OCI-based containers in Pods

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libpod/+bug/2040483/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to