После добавления группы logout+login находится недостаточно в 18,04?

В человечности 18.04 с рабочим столом по умолчанию изменилось поведение выхода из системы/входа в систему:

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

sudo adduser ludwig docker # adds me to group docker

и затем я должен был выйти из системы и войти в систему снова для внесения изменения группы эффективным.

Я замечаю, что с Ubuntu 18.04, после добавления группы и выходить из системы и въезжают задним ходом, список эффективных групп все еще неизменен.

Как обходное решение я перезагрузил систему, которая неудобна (требует делания правильного выбора в личинке и повторно введения пароля шифрования диска).

  1. Почему поведение теперь как это?
  2. Я могу сделать что-то еще за исключением перезагрузки?

(Я знаю, что могу ssh в localhost и получать корректные группы на ssh сессии только. Это также слишком неудобно.)

30
задан 13 May 2019 в 13:23

4 ответа

У меня сработала команда loginctl terminate-user . (Замените своим именем пользователя) Вы, вероятно, не должны запускать это при входе в систему, поскольку это убьет все ваши процессы.

13
ответ дан 23 November 2019 в 04:29

Процессы, остающиеся для пользователя после выхода из системы, связаны с systemd

usrtest 4150 4150 4150 1.7 0.1 77140 8500? Ss 22:46 0:00/lib/systemd/systemd - пользователь

usrtest 4151 4150 4150 0.0 0.0 280232 3084? S 22:46 0:00 (sd-pam)

usrtest 4610 4610 4610 0.2 0.0 49796 3824? Ss 22:47 0:00/usr/bin/dbus-daemon - сессия - address=systemd: - nofork - nopidfile - systemd-активация - только для системного журнала

usrtest 4328 4327 4327 0.5 0.1 386100 12060? S

эти процессы действительно запускается systemd от имени пользователя.

, Таким образом, я сделал следующий тест:

кошка/etc/systemd/system/user@1000.service KillMode=control-group

systemctl - системный выставочный-p KillMode user@1000.service KillMode=control-group

после операции выхода из системы/входа в систему, это, кажется, изменяет это поведение выхода из системы после (все же) другой выход из системы/вход в систему после usermod-a-G, команда 'групп' возвращает добавленную группу. Мне не нравится он, потому что, если эти процессы задерживаются после того, как выход из системы там является, вероятно, серьезным основанием (заключительные операции кажется вероятным), но эта проблема чувствует себя определенно связанной с systemd.

0
ответ дан 14 April 2019 в 17:45

При «выходе» из рабочего стола по умолчанию в ubuntu 18.04 некоторые процессы пользователя не завершаются немедленно, а остаются. Вот они (наблюдаемые другим пользователем):

$ ps axu | grep ^ludwig
ludwig    26508  0.3  0.2  77052  8308 ?        Ss   23:32   0:00 /lib/systemd/systemd --user
ludwig    26509  0.0  0.0 261776  2968 ?        S    23:32   0:00 (sd-pam)
ludwig    26691  0.2  0.3 381288 12204 ?        S<l  23:32   0:00 /usr/bin/pulseaudio --start --log-target=syslog
ludwig    27352  0.0  0.0  49796  3756 ?        Ss   23:33   0:00 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only

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

Временное решение, чтобы избежать перезагрузки, - подождать ~ 20 секунд после выхода из системы и только затем снова войти в систему. Процессы где-то завершаются от 10 до 20 секунд после выхода.

Изменить : Как сообщается в комментариях ниже, иногда устаревшие процессы не прекращаются даже при ожидании, а после повторного входа в систему членство в группах не обновлялось. Я обнаружил, что в этом случае помогает

ps axu | grep ^ludwig | awk '{print $2}' | xargs kill -9

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

12
ответ дан 23 November 2019 в 04:29

Временное решение в текущей оболочке - запустить su, чтобы создать новую группу без перезагрузки.

Как я сказал, этот трюк нужно применять к каждой оболочке. Это не глобально.

3
ответ дан 23 November 2019 в 04:29

Другие вопросы по тегам:

Похожие вопросы: