nixp.ru v3.0

25 мая 2017,
четверг,
02:28:24 MSK

DevOps с компанией «Флант»
psea написал 13 марта 2009 года в 22:08 (488 просмотров) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 2 комментария на сайте.

Как сделать так чтоб информация о группах из файла /etc/groups попала в ядро.

пример:

-добавляем пользователя в группу с gid 10 в файле /etc/groups при помощи текстового редактора

-смотрим что возвращает функция getgroups(): пользователь несостоит в группе с gid 10

-завершаем сеанс, логинимся снова

-смотрим что возвращает функция getgroups(): пользователь состоит в группе с gid 10

т.е. получается для того чтобы информация о группах пользователя в ядре соответсововала файлу /etc/groups необходимо перелогиниться.

вопрос в следующем как можно программно синхронизировать информацию о группах в ядре и в файле /etc/groups?

DimkaS

Я не программист, могу ошибаться.

Ман по getgroups говорит:

getgroups() returns the supplementary group IDs of the calling process in list.

Т.е. возвращаются ID групп процесса, вызвавшего функцию. Процесс наследует группы от запустившего его пользователя. Пользователь получает членство в группах, указанных в /etc/groups, в момент логина в оболочку. Далее, манипуляции с /etc/groups ни на что не влияют до следующего логина. ИМХО, кроме перелогина остаётся только запуск процесса в новой оболочке. Может, su user поможет?..

psea

В этом то и вопрос: можно ли сделать так что бы при изменении /etc/groups менялась информация о состоянии в группах соответствующих процессов. т.е. что бы сразу после изменения файла /etc/groups пользователь получал или лишался соответствующих привилегий (доступ к файлам например)

myst

Нет, так сделать нельзя.

psea

а почему? есть же inotify например.

или все таки можно, просто не реализовано. а может есть какой нибудь патчик.