Bug 54777

Summary: ptyxis: Запускает для контейнеров `sh` вместо `bash`, и `sh: line 1: getent: command not found`
Product: Sisyphus Reporter: Artem Varaksa <varaksaaa>
Component: ptyxisAssignee: boria138 <boria138>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: boria138, boriabloger
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Artem Varaksa 2025-06-10 19:12:50 MSK
Шаги
====

1. # apt-get install -y podman sysctl-conf-userns && \
    sed -i -e "s|\#default_subnet = \"10.88.0.0\/16\"|default_subnet = \"192.168.154.0\/24\"|" /usr/share/containers/containers.conf && \
    USER=test && \
    control newgidmap public && \
    control newuidmap public && \
    grep $USER /etc/subuid || usermod --add-subuids 100000-165535 --add-subgids 100000-165535 $USER

2. # apt-get install ptyxis

3. В ptyxis:

- $ podman system migrate && \
    podman pull registry.altlinux.org/p11/alt && \
    podman run --name alt-p11-test --interactive --tty alt

- В левом верхнем углу терминала нажать на стрелку вниз около значка создания новой вкладки > выбрать контейнер alt-p11-test

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

> sh: line 1: getent: command not found
> sh-5.2#

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

> sh-5.2#

и (возможно) запуск bash, как и происходит при --interactive --tty.

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

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

[sisyphus] ALT Workstation 11.0 x86_64
ptyxis-48.4-alt1.x86_64

[p11] ALT Workstation 11.0 x86_64
ptyxis-47.10-alt1.x86_64
Comment 1 Boris Yumankulov 2025-06-11 10:11:01 MSK
Сохраняется ли данное поведенее в других контейнерах ?
Comment 2 Artem Varaksa 2025-06-11 10:49:54 MSK
* p11/nginx: -it зависает и не запускает shell. Открытие вкладки открывает sh с такой же ошибкой о getent.

* p11/postgresql: -it запускает bash с отличающимся от p11/alt PS1, просто "bash-5.2$". Открытие вкладки открывает sh, но без ошибки о getent.

* p11/ansible: -it запускает bash с стандартным PS1, как у p11/alt. Открытие вкладки также открывает bash, без ошибки о getent.

Получается, зависит от контейнера, но не понятно, почему открытие вкладки и -it запускают разные shell.
Comment 3 Boris Yumankulov 2025-07-31 11:27:40 MSK
Ответ от upstream

"Скорее всего, это означает, что в вашем контейнере нет подходящего пользователя, которого мы могли бы сопоставить с текущим пользователем. Это также может означать, что в контейнере нет пароля, который мы не можем перехватить, чтобы получить подходящий шелл.

Имеется множество поданных заявок, с которыми вы можете ознакомиться здесь для получения более подробной информации.

Но мое главное предложение — использовать toolbox/distrobox и т. д. для создания контейнеров."

https://gitlab.gnome.org/chergert/ptyxis/-/issues/438

Поскольку upstream это фиксить не собирается закрываю