Насколько я понимаю, сессия Linux кэширует членство в группах при входе в систему. Затем, если добавлено новое членство в группе (например, с помощью adduser someuser somegroup
), пользователь должен выйти из системы и войти снова, чтобы иметь возможность воспользоваться преимуществами нового членства.
Мой вопрос: есть ли способ обновить членство в группе в процессе, без повторного входа в систему, выхода из текущего процесса или запуска нового процесса?
источник
Я так не думаю. Но вы можете использовать
newgrp
команду для создания новой оболочки с новой группой. Это не навсегда.Вам нужно будет отключить, а затем снова включить пользователей.
источник
su
Другие упоминали "
su - $USER
" и "newgrp
", и я подумал, что должен упомянуть, что вы также должны посмотреть на "sg
".источник
Вы можете использовать
gpasswd
для немедленного изменения:Там нет необходимости для создания новой оболочки или relogin. Затем проверьте членство в группе, используя
getent
:источник
Ты можешь сделать:
Это неявно обновляет список групп, не выходя из терминала.
источник
Как насчет этого (хотя это только отвечает требованию, что вы не должны были повторно регистрироваться)
Флаг -l предполагает, что новая оболочка входа в систему и exec заменит текущую оболочку этой новой. Кстати, не опечатка название оболочки :-)
Одна из проблем с использованием newgrp и su, как предлагалось ранее, заключается в том, что будет создана новая вложенная оболочка. Да, вы также можете использовать команду exec.
источник