Nodo de dispositivo Linux accesible solo para ciertos grupos de procesos
-
06-07-2019 - |
Pregunta
Tengo un módulo de controlador de dispositivo que hace un register_chardev (). En la función driver open () deseo poder determinar el pid o pgid del proceso que intenta abrir el nodo del dispositivo. es posible? ¿Alguien tiene alguna idea de por dónde empezar?
Supongo que esto debería proteger de alguna manera el nodo de mi dispositivo para permitir que mis aplicaciones lo usen, ya que no puede migrar un proceso a un nuevo grupo de procesos a menos que estén en la misma sesión.
Solución
El kernel no es el lugar adecuado para tomar este tipo de decisión de política: el lugar correcto para establecer los permisos sobre quién puede abrir el nodo del dispositivo es establecer la propiedad y los permisos habituales en el archivo del nodo del dispositivo en el sistema de archivos.
Si realmente tiene su corazón puesto en él, current- > pid
es el PID, current- > tgid
es la identificación del grupo de hilos y current- > group_leader- > pid
es el PGID.