Como configurar uma lista negra para o insmod?

1

Eu quero impedir que um determinado módulo de driver carregue no kernel do Linux. Então criei um arquivo em /etc/modprobe.d/cdc_acm.conf. Neste arquivo eu adicionei a seguinte linha:

install cdc_acm /bin/false

Isso funciona como esperado ao emitir:

modprobe cdc-acm

libkmod: ERROR libkmod/libkmod-module.c:924
command_do: Error running install command for cdc_acm ERROR: could not
insert 'cdc_acm': Operation not permitted

O problema é que quando eu uso o utilitário insmod, o módulo é carregado:

insmod cdc-acm.ko

[ 1051.914578] cdc_acm 2-1.1:1.0:
usb_probe_interface [ 1051.919437] cdc_acm 2-1.1:1.0:
usb_probe_interface - got id [ 1051.926323] cdc_acm 2-1.1:1.0:
ttyACM0: USB ACM device [ 1051.934700] usbcore: registered new
interface driver cdc_acm [ 1051.941315] cdc_acm: USB Abstract Control
Model driver for USB modems and ISDN adapters

Por que isso está acontecendo? Existe uma maneira de criar um arquivo de lista negra para o insmod?

    
por Diurpaneus 15.05.2013 / 14:23

1 resposta

2

A lista negra é lida por modprobe , onde o insmod apenas tenta inserir um módulo sem se preocupar com dependências ou listas negras ou qualquer coisa.

insmod man page:

insmod is a trivial program to insert a module into the kernel. Most users will want to 
use modprobe(8) instead, which is more clever and can handle module dependencies.
    
por 15.05.2013 / 15:08