23

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

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

2 ответа2

15

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

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

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

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

5

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .