Skip to content

Commit 3c559f6

Browse files
committed
Ubuntu: install /etc/apparmor.d/usr.local.bin.rootlesskit
Ubuntu 23.10 introduced `kernel.apparmor_restrict_unprivileged_userns` to restrict unsharing user namespaces: https://ubuntu.com/blog/ubuntu-23-10-restricted-unprivileged-user-namespaces `kernel.apparmor_restrict_unprivileged_userns` is still opt-in in Ubuntu 23.10, but it is expected to be enabled in future releases of Ubuntu. The cloud-init script is now updated to install `/etc/apparmor.d/usr.local.bin.rootlesskit` to continue allowing `/usr/local/bin/rootlesskit` to unshare user namespaces. Signed-off-by: Akihiro Suda <[email protected]>
1 parent a4ca134 commit 3c559f6

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

pkg/cidata/cidata.TEMPLATE.d/boot/40-install-containerd.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,26 @@ EOF
7777
if command -v selinuxenabled >/dev/null 2>&1 && selinuxenabled; then
7878
selinux=1
7979
fi
80+
if [ ! -e "/etc/apparmor.d/usr.local.bin.rootlesskit" ] && [ -e "/etc/apparmor.d/abi/4.0" ] && [ -e "/proc/sys/kernel/apparmor_restrict_unprivileged_userns" ]; then
81+
cat >"/etc/apparmor.d/usr.local.bin.rootlesskit" <<EOF
82+
# Ubuntu 23.10 introduced kernel.apparmor_restrict_unprivileged_userns
83+
# to restrict unsharing user namespaces:
84+
# https://ubuntu.com/blog/ubuntu-23-10-restricted-unprivileged-user-namespaces
85+
#
86+
# kernel.apparmor_restrict_unprivileged_userns is still opt-in in Ubuntu 23.10,
87+
# but it is expected to be enabled in future releases of Ubuntu.
88+
abi <abi/4.0>,
89+
include <tunables/global>
90+
91+
/usr/local/bin/rootlesskit flags=(unconfined) {
92+
userns,
93+
94+
# Site-specific additions and overrides. See local/README for details.
95+
include if exists <local/usr.local.bin.rootlesskit>
96+
}
97+
EOF
98+
systemctl restart apparmor.service
99+
fi
80100
if [ ! -e "${LIMA_CIDATA_HOME}/.config/systemd/user/containerd.service" ]; then
81101
until [ -e "/run/user/${LIMA_CIDATA_UID}/systemd/private" ]; do sleep 3; done
82102
if [ -n "$selinux" ]; then

0 commit comments

Comments
 (0)