insmodブラックリストを設定するには?

insmodブラックリストを設定するには?

特定のドライバモジュールがLinuxカーネルにロードされないようにしたいと思います。そのため、/etc/modprobe.d/cdc_acm.confにファイルを作成しました。このファイルに次の行を追加しました。

install cdc_acm /bin/false

これは解放されると期待どおりに機能します。

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

問題は、insmodユーティリティを使用するとモジュールがロードされることです。

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

なぜこれが起こるのですか? insmodのブラックリストファイルを作成する方法はありますか?

答え1

ブラックリストは insmod によって読み取られ、modprobeinsmod は依存関係やブラックリストなどを考慮せずにモジュールの挿入を試みます。

insmodマニュアルページ:

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.

関連情報