Bug 53421

Summary: virt-builder/libguestfs/passt: Couldn't create user namespace: Operation not permitted
Product: Sisyphus Reporter: Artem Varaksa <varaksaaa>
Component: libguestfsAssignee: Alexey Shabalin <shaba>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: at, cas, crux, egori, ender, lav, ldv, mike, obirvalger, qa_viy, rider, shaba, viy
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
virt-builder -vx fedora-32
none
Вывод libguestfs-test-tool none

Description Artem Varaksa 2025-03-12 16:49:13 MSK
Created attachment 17960 [details]
virt-builder -vx fedora-32

Шаги
====

# apt-get install libvirt guestfs-tools -y
# systemctl enable --now libvirtd
# echo "export LIBGUESTFS_BACKEND=direct" >> ~/.bashrc && source ~/.bashrc
# virt-builder -vx fedora-32

Фактический результат
=====================

Образ не собирается (полный вывод см. во вложении):

> ...
> libguestfs: command: run: passt
> libguestfs: command: run: \ --one-off
> libguestfs: command: run: \ --socket /tmp/libguestfsusb58v/passt.sock
> libguestfs: command: run: \ --pid /tmp/libguestfsusb58v/passt1.pid
> libguestfs: command: run: \ --address 169.254.2.15
> libguestfs: command: run: \ --netmask 16
> libguestfs: command: run: \ --mac-addr 52:56:00:00:00:02
> libguestfs: command: run: \ --gateway 169.254.2.2
> Started as root, will change to nobody.
> UNIX domain socket bound at /tmp/libguestfsusb58v/passt.sock
> Couldn't create user namespace: Operation not permitted
> libguestfs: trace: launch = -1 (error)
> virt-builder: error: libguestfs error: passt exited with status 1
> ...

Ожидаемый результат
===================

Успешная сборка образа.

Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[sisyphus] ALT Server 11.0 beta20250213 x86_64
libguestfs-1.54.0-alt1.x86_64
guestfs-tools-1.53.7-alt1.x86_64

[p11+374637] ALT Server 11.0 beta20250213 x86_64
libguestfs-1.54.0-alt1.x86_64
guestfs-tools-1.52.0-alt1.x86_64

[p11] ALT Server 11.0 beta20250213 x86_64
libguestfs-1.52.0-alt2.x86_64
guestfs-tools-1.52.0-alt1.x86_64
Comment 1 Artem Varaksa 2025-03-12 16:58:31 MSK
Created attachment 17961 [details]
Вывод libguestfs-test-tool

Вывод libguestfs-test-tool (TEST FINISHED OK)
Comment 2 Alexey Shabalin 2025-03-13 18:40:39 MSK
Проверьте пожалуйста с установленным пакетом sysctl-conf-userns (после установки требуется перезагрузка).
Comment 3 Alexey Shabalin 2025-03-13 18:41:34 MSK
без перезагрузки можно так:
sysctl kernel.unprivileged_userns_clone=1
Comment 4 Artem Varaksa 2025-03-13 18:55:49 MSK
Попробовал на sisyphus, после выполнения

# sysctl kernel.unprivileged_userns_clone=1

образ собирается успешно.

[sisyphus] ALT Server 11.0 beta20250213 x86_64
libguestfs-1.54.0-alt1.x86_64
guestfs-tools-1.53.7-alt1.x86_64
Comment 5 Alexey Shabalin 2025-03-13 19:06:18 MSK
тогда это не баг, а особенность работы.
qemu может не только passt использовать.
И зависимость на sysctl-conf-userns ставить нельзя, эту опцию sysctl надо осмысленно делать.
Comment 6 Artem Varaksa 2025-03-14 10:59:00 MSK
Напрягает то, что в p10:

> # sysctl kernel.unprivileged_userns_clone
> kernel.unprivileged_userns_clone = 0

И при этом создание образа в p10 проходит успешно.

Ожидаемое ли это изменение в новых версиях guestfs / в p11?

[p10] ALT Server 10.4 x86_64
libguestfs-1.48.4-alt2.x86_64
guestfs-tools-1.48.2-alt1.x86_64