Почему я должен использовать newgrp или su (или выход из системы и войти в систему снова) применить новые составы группы?

Некоторые оболочки позволяют ls **/filename, который довольно удобен.

4
23.06.2011, 16:17
1 ответ

Когда дочерний процесс создается, идентификатор пользователя процесса и идентификаторы группы наследованы от его родительского процесса.

Таким образом, при изменении групп пользователя (на самом деле файлы конфигурации изменения где-нибудь на диске), процессы автоматически не заметят его и изменят их идентификаторы группы (некорневые процессы не имеют прав для этого так или иначе).

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

Но когда Вы выполняете su или входите в систему затем, все волшебство происходит. Они проверяют, разрешают ли Вам войти и изменить их идентификатор пользователя и идентификаторы группы (использующий системные вызовы, которые требуют эффективного корневого идентификатора между прочим - вот почему у них есть suid набор битов) так, чтобы все их дочерние процессы наследовали эти идентификаторы.

11
27.01.2020, 20:48

Теги

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