Чи є в Linux спосіб оновити властивості користувача / групи без необхідності повторного входу?


24

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

Чи існує команда для оновлення властивостей користувачів / груп у поточному сеансі?


1
Чи є причина ви редагувати файл вручну, а не використовувати useradd -G groupname username?
Боббі

4
@Bobby: це не має значення.
niXar

Ви можете подивитися цю відповідь .
Пабло А

Відповіді:


16

На рівні ядра членство в групі є властивістю кожного процесу. Якщо він не має відповідних можливостей (CAP_SETGID, якщо я не помиляюся), тобто кореневі привілеї для всіх намірів і цілей, процес не може належати до нової групи.

Користувач не існує як об'єкт на рівні ядра; виконують лише процеси (і файли). Процес містить uid (ефективний і багато чого) та список групових ідентифікаторів.

Коли ви додаєте користувача до групи, ядро ​​поняття не має, що це означає. Він лише опосередковано знає, що наступного разу, коли / bin / login або / usr / bin / newgrp буде запущено процес із цим ідентифікатором користувача, у його списку буде новий ідентифікатор групи.

Отже, щоб відповісти на ваше запитання, якщо ви говорите про сеанс Gnome або KDE, вам доведеться справді перезапустити його. Або якщо вам цікавий лише результат однієї команди, що стосується цієї нової групи, ви можете використовувати newgrp, про який я тільки що згадував. Він запустить нову оболонку із щойно доданою групою.


5

Я раніше читав, що команда newgrp робить це, але тільки для поточної оболонки. Не здається кращою альтернативою, ніж вийти та знову ввійти.


3
Те, що робить newgrp - це фактично запустити нову оболонку. Отже, якщо ви ^ D з нього повернетесь до своєї старої оболонки. Зазвичай я просто роблю 'exec newgrp'
niXar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.