Domanda

Ho un modulo driver di dispositivo che fa register_chardev (). Nella funzione driver open () desidero poter determinare il pid o il pgid del processo che sta tentando di aprire il nodo del dispositivo. È possibile? Qualcuno ha qualche idea di dove iniziare?

Suppongo che questo dovrebbe in qualche modo proteggere il mio nodo del dispositivo per consentire solo alle mie applicazioni di usarlo, poiché non è possibile migrare un processo in un nuovo gruppo di processi a meno che non si trovino nella stessa sessione.

È stato utile?

Soluzione

Il kernel non è il posto giusto per prendere questo tipo di decisione politica - il posto giusto per impostare le autorizzazioni su chi può aprire il nodo del dispositivo è impostando la solita proprietà e le autorizzazioni sul file del nodo del dispositivo nel filesystem.

Se hai davvero il cuore su di esso, current- > pid è il PID, current- > tgid è l'id del gruppo di thread e current- > group_leader- > pid è il PGID.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top