Есть ли способ в Linux, чтобы обновить свойства пользователя / группы без необходимости входа снова?

10682
wonea

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

Есть ли команда для обновления свойств пользователя / группы в текущем сеансе?

22
Есть ли причина, по которой вы редактируете файл вручную вместо использования `useradd -G groupname username`? Bobby 13 лет назад 1
@ Бобби: это не имеет значения. niXar 13 лет назад 3
Вы можете посмотреть [этот ответ] (https://superuser.com/a/354475/500826). Pablo Bianchi 6 лет назад 0

2 ответа на вопрос

14
niXar

На уровне ядра членство в группе является свойством каждого процесса. Если у него нет соответствующей возможности (CAP_SETGID, если я не ошибаюсь), то есть привилегии root для всех намерений и целей, процесс не может принадлежать новой группе.

Пользователь не существует как объект на уровне ядра; делают только процессы (и файлы). У процесса есть uid (эффективный и прочее) и список идентификаторов групп.

Когда вы добавляете пользователя в группу, ядро ​​понятия не имеет, что это значит. Он только косвенно знает, что при следующем запуске / bin / login или / usr / bin / newgrp процесс с этим идентификатором пользователя будет иметь новый идентификатор группы в своем списке.

Итак, чтобы ответить на ваш вопрос, если вы говорите о сеансе Gnome или KDE, вам действительно нужно его перезапустить. Или, если вас интересует только результат одной команды в отношении этой новой группы, вы можете использовать newgrp, который я только что упомянул. Запустится новая оболочка с добавленной группой.

5
Andy Shellam

Я читал ранее, что команда newgrp делает это, но только для текущей оболочки. Кажется, нет лучшей альтернативы, чем выйти и снова войти.

На самом деле newgrp запускает новую оболочку. Так что, если вы ... D из этого вы вернетесь к своей старой оболочке. Я обычно просто делаю 'exec newgrp' niXar 13 лет назад 3

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