При авторизации в tty обычным пользователем переменная окружения USER=root. systemd environment показывает правильно при этом: $ systemctl --user --show-environment |grep USER= USER=antohami А env показывает: $ env |grep USER USER=root В /etc/profile есть такой код: [ -n "$USER" ] || USER="/usr/bin/id -un" Если закомментировать строку, то ничего меняется. Если убрать условие, т.е.: USER="/usr/bin/id -un" то USER=antohami Где-то переменная устанавливается, но непонятно где. Я ничего не нашёл. Проблема началась 24 мая 2024 года после обновления systemd 254.10-alt2 -> 255.6-alt1. Поэтому пока на systemd.
Я внёс такое исправление в /usr/lib/systemd/system/getty@.service: [Service] # the VT is cleared by TTYVTDisallocate # The '-o' option value tells agetty to replace 'login' arguments with an # option to preserve environment (-p), followed by '--' for safety, and then # the entered username. -ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear - $TERM +ExecStart=-/sbin/agetty -o '-- \\u' --noclear - $TERM Т.е. убрал -p, и помогло.
(Ответ для Антон Мидюков на комментарий #0) [...] > В /etc/profile есть такой код: > [ -n "$USER" ] || USER="/usr/bin/id -un" > Если закомментировать строку, то ничего меняется. Значит, там уже заполнена неправильно. [...]
Можно также добавить в getty@.service: UnsetEnvironment=USER
(In reply to Антон Мидюков from comment #3) > Можно также добавить в getty@.service: > > UnsetEnvironment=USER Но это костыль. Казалось бы, программа login(1), порождённая из-под getty, не должна переносить в сеанс значение USER из своего env block, потому что там PAM-стек задействуется.
(In reply to Антон Мидюков from comment #1) > Я внёс такое исправление в /usr/lib/systemd/system/getty@.service: > > [Service] > # the VT is cleared by TTYVTDisallocate > # The '-o' option value tells agetty to replace 'login' arguments with an > # option to preserve environment (-p), followed by '--' for safety, and then > # the entered username. > -ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear - $TERM > +ExecStart=-/sbin/agetty -o '-- \\u' --noclear - $TERM > > Т.е. убрал -p, и помогло. Информация от arseny@, что в Debian убрали: commit 3d2157e7072b3e9691c469b992848fb249f8b605 Author: Ronan Pigott <ronan@rjp.ie> Date: Wed Aug 14 11:42:03 2024 -0700 units: drop "-p" flag from agetty's login options Так что предлагаю тоже это сделать. Исправить в getty@.service и serial-getty@.service Проблема актуальна для p11. Нужно исправить до выпуска дистрибутивов на p11.
Оказывается, уже есть апстримный патч (спасибо Арсению за ссылку), удаляющий опцию -p у agetty: https://github.com/systemd/systemd/commit/3d2157e7072b3e9691c469b992848fb249f8b605
Ещё бы мантейнер пакета нашёлся...
Похоже, что при багах все подобные пакеты баги репортеру флаг в руки. ;-)
Пока что вокруг текущей баги остаётся один вопрос: стоит ли лишь сбекпортить патч, где убирают -p, или лучше просто обновиться до systemd-stable 257.x. Ответ на него, думаю, зависит от планируемого жизненного цикла systemd не только в сизифе, но и в p11. Скорее всего, у shaba@ были какие-то соображения на этот счёт.
Я пока бэкпортирую. Обновлением на новую ветку займусь позже.
systemd-1:255.18-alt1 -> sisyphus: Wed Mar 19 2025 Alexey Shabalin <shaba@altlinux> 1:255.18-alt1 - 255.18 - drop "-p" flag from agetty's login options (ALT#53483)
(In reply to Repository Robot from comment #11) > systemd-1:255.18-alt1 -> sisyphus: > > Wed Mar 19 2025 Alexey Shabalin <shaba@altlinux> 1:255.18-alt1 > - 255.18 > - drop "-p" flag from agetty's login options (ALT#53483) Спасибо. Теперь ждём исправление в p11.
> Спасибо. Теперь ждём исправление в p11. Я отправил https://packages.altlinux.org/ru/tasks/378740/
(Ответ для Sergey V Turchin на комментарий #13) > Я отправил https://packages.altlinux.org/ru/tasks/378740/ Ой, это другое. :-)
Ждём исправление в p11. Очень не хочется, чтобы дистрибутивы были из коробки с этим багом.
systemd-1:255.18-alt1 -> p11: Wed Mar 19 2025 Alexey Shabalin <shaba@altlinux> 1:255.18-alt1 - 255.18 - drop "-p" flag from agetty's login options (ALT#53483) Sun Jan 05 2025 Alexey Shabalin <shaba@altlinux> 1:255.16-alt1 - 255.16 Thu Oct 10 2024 Alexey Shabalin <shaba@altlinux> 1:255.13-alt1 - 255.13 Tue Sep 24 2024 Alexey Shabalin <shaba@altlinux> 1:255.12-alt1 - 255.12