Узел устройства Linux доступен только определенным группам процессов
-
06-07-2019 - |
Вопрос
У меня есть модуль драйвера устройства, который выполняет register_chardev (). В функции драйвера open () я хотел бы иметь возможность определить pid или pgid процесса, который пытается открыть узел устройства. Это возможно? У кого-нибудь есть идеи, с чего начать?
Я предполагаю, что это должно несколько обезопасить мой узел устройства, чтобы позволить моим приложениям использовать его, поскольку вы не можете перенести процесс в новую группу процессов, если они не находятся в одном сеансе.
Решение
Ядро не является подходящим местом для принятия такого рода политических решений - правильное место для установки разрешений на то, кто может открывать узел устройства, - это установка обычного владельца и разрешений для файла узла устройства в файловой системе. р>
Если у вас действительно настроено сердце, current-> gid; pid
- это PID, current-> gt;
current-> group_leader-> gid; pid
- это PGID.