Bug 52931
| Summary: | cloud-init: в окне авторизации 2 пользователя ALT Linux Cloud User | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Tatyana Gagina <tatyana> | ||||
| Component: | cloud-init | Assignee: | Alexey Shabalin <shaba> | ||||
| Status: | NEW --- | QA Contact: | qa-p10 <qa-p10> | ||||
| Severity: | normal | ||||||
| Priority: | P5 | CC: | fedor, geochip, obirvalger, shaba | ||||
| Version: | unstable | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Attachments: |
|
||||||
Created attachment 17670 [details]
2 пользователя ALT Linux Cloud User
Результат проверки актуальности Состояние: Ошибка описана для cloud-init-24.2-alt2: после Cloud-Init в окне входа два пользователя «ALT Linux Cloud User». В p10 сейчас 24.2-alt3, в Sisyphus — 25.3-alt1. Подтверждения исправления нет. Рекомендация: перепроверить сценарий Proxmox Cloud-Init в Sisyphus с cloud-init-25.3-alt1. Ошибка передана qa-team. Проверил на Sisyphus, cloud-init-25.3-alt1 (задание https://packages.altlinux.org/tasks/407380/). Дубль воспроизводится, и это не один пользователь, показанный дважды, а две разные учётные записи с одинаковым полным именем. Полное имя зашито в /etc/cloud/cloud.cfg константой и не зависит от имени учётной записи: default_user: name: altlinux lock_passwd: True gecos: ALT Linux Cloud User Поэтому GECOS "ALT Linux Cloud User" получает любой пользователь, созданный из шаблона default, как бы он ни назывался. Proxmox в user-data пишет одновременно "user: <ciuser>" и "users: - default", а instance-id у него — хеш конфигурации Cloud-Init. Пока ciuser не задан, создаётся altlinux; после того как ciuser задали, меняется конфигурация, меняется instance-id, cloud-init считает это новым инстансом и заводит вторую учётную запись — с именем ciuser и тем же GECOS. Воспроизведение через NoCloud seed, два запуска с разными instance-id: этап 1 (без user:) -> altlinux:x:1001:1002:ALT Linux Cloud User:/home/altlinux:/bin/bash этап 2 (user: tuser) -> tuser:x:1002:1003:ALT Linux Cloud User:/home/tuser:/bin/bash AccountsService, откуда список берут GDM и lightdm: User1001 UserName="altlinux" RealName="ALT Linux Cloud User" Uid=1001 User1002 UserName="tuser" RealName="ALT Linux Cloud User" Uid=1002 Обе строки в окне входа называются одинаково. Войти можно только под одной, потому что у altlinux пароль заблокирован (lock_passwd: True), а пароль из Cloud-Init получил ciuser: passwd -S altlinux -> No Password set. passwd -S tuser -> Password set, SHA-2-512 encryption. Если ciuser задан сразу и cloud-init отрабатывает один раз, создаётся ровно одна учётная запись. Лечится тем, чтобы не наследовать константный gecos шаблона default для пользователя с другим именем (подставлять имя учётной записи). Заодно на сервере без systemd-networkd стадия init-local падает на chown несуществующего пользователя systemd-network: OSError: Unknown user or group: "getpwnam(): name not found: 'systemd-network'" |

Description
Tatyana Gagina 2025-02-04 17:55:14 MSKСтенд P10: Workstation 10.4 x86-64 Версия: cloud-init-24.2-alt2 Шаги: 1) Развернуть proxmox 2) Создать виртуальную машину 3) Добавить к виртуальной машине CloudInit Dirve в Hardware 4) На виртуальной машине выполнить следующие действия: 4.1) # apt-get install -y cloud-init 4.2) # systemctl enable cloud-init cloud-config 4.3) # rm -f /etc/machine-id /var/lib/dbus/machine-id && touch /etc/machine-id && ln -s /etc/machine-id /var/lib/dbus/machine-id && poweroff 5) В proxmox для виртуальной машины добавить: User - <Любое имя>, Password - <Любой пароль> и запустить систему. 6) Выполнить для получения 6.1) Ip адреса (взять ipv4 для доступного интерфейса): # ip -c a 6.2) Шлюз по умолчанию: # route -n | grep 'UG[ \t]' | awk '{print $2}' 7) # apt-get install -y cloud-init-config-network-manager 8) В настройках виртуальной машины выбрать Cloud-Init -> IP Config и указать следующее: IPv4/CIDR - ipv4 из шага 6.1 Gateway(IPv4) - ipv4 из шага 6.2 После этого отключить машину (Stop) и включить ее (Start). 9) Зайти под созданным пользователем CloudInit. Результат: в окне авторизации 2 пользователя ALT Linux Cloud User. Проверено: вход работает только под одним из них (скриншот будет приложен). Ожидаемый результат: в окне авторизации только один пользователь ALT Linux Cloud User.