Modprobe - Linux ကိုစစ်ဌာနချုပ် - Unix စစ်ဌာနချုပ်

က NAME

modprobe - loadable module တွေ၏အဆင့်မြင့်ကိုင်တွယ်

အနှစ်ချုပ်

[-adnqv] [-C config ကို] module တစ်ခု modprobe [သင်္ကေတ = value ကို ... ]
modprobe [-adnqv] [-C config ကို] [-t အမျိုးအစား] ပုံစံ
modprobe -l [-C config ကို] [-t အမျိုးအစား] ပုံစံ
-c [-C config ကို] modprobe
modprobe -r [-dnv] [-C config ကို] [module တစ်ခု ... ]
modprobe -Vh

ရွေးချယ်စရာများ

-a, --all

အားလုံးကိုက်ညီ module တွေ load အစား၏ပထမဦးဆုံးအောင်မြင်သောတင်ပြီးနောက်ရပ်တန့်။

-c, --showconfig

လက်ရှိအသုံးပြုသော configuration ကိုပြပါ။

-C, --config config ကို

ဖိုင်ကို config ကိုအစားအတွက် configuration ကိုသတ်မှတ်ပါ (optional) /etc/modules.conf ကိုသုံးပါ။ variable ကို MODULECONF ကိုလည်း select လုပ်ပါ (နှင့် override) ကိုသုံးနိုင်တယ်ပတ်ဝန်းကျင်ကို default /etc/modules.conf (သို့မဟုတ် /etc/conf.modules (ကန့်ကွက်ခံထား)) အနေဖြင့်တစ်ဦးကွဲပြားခြားနား configuration file ကို။

ပတ်ဝန်းကျင် variable ကို UNAME_MACHINE သတ်မှတ်ထားလျှင်, modutils အဆိုပါ uname () syscall ကနေမယ့်အစားစက်ကိုလယ်၎င်း၏တန်ဖိုးကိုသုံးပါလိမ့်မယ်။ ဤသူသည်သင်တို့ 32 bit နဲ့အသုံးပြုသူအာကာသသို့မဟုတ်အပြန်အလှန်အတွက် 64 bit နဲ့ module တွေပြုစုကြသောအခါ, အဓိကအားဖြင့်အသုံးပြုမှုသည် module တွေအမျိုးအစားကိုမှ UNAME_MACHINE ထားကြ၏။ လက်ရှိ modutils module တွေအပြည့်အဝလက်ဝါးကပ်တိုင်တည်ဆောက် mode ကိုထောကျပံ့ပေးမထားဘူး, ဒါကြောင့်အိမ်ရှင်ဗိသုကာ၏ 32 နဲ့ 64 bit နဲ့ဗားရှင်းအကြားရွေးချယ်ရာတွင်ဖို့ကန့်သတ်သည်။

-D, --debug

module တွေ၏ stack ၏ပြည်တွင်းရေးကိုယ်စားပြုမှုနဲ့ပတ်သက်တဲ့သတင်းအချက်အလက်ကိုပြပါ။

-h, --help

options နဲ့ချက်ချင်းထွက်ပေါက်တစ်ခုအကျဉ်းချုပ်တင်ပြပါ။

-k, --autoclean

တင် module တွေအပေါ် '' autoclean '' သတ်မှတ်မည်။ အဲဒါကို (က module တစ်ခုအဖြစ်ထောက်ပံ့) တစ်ဦးပျောက်ဆုံး feature ကိုကျေနပ်အောင်လုပ်ဖို့ modprobe အပေါ်ခေါ်ဆိုသောအခါ kernel ကိုအသုံးပြုတဲ့။ အဆိုပါ -q option ကို -k အားဖြင့်ဆိုလိုခြင်းဖြစ်သည်။ အဲဒီ options ကိုအလိုအလျောက် insmod ထံသို့စလှေတျပါလိမ့်မည်။

-l, --list

စာရင်းကိုက်ညီခြင်း module တွေ။

-n, --show

အမှန်တကယ်ပဲအမှုကိုပြုလိမ့်မည်ဟုအဘယျသို့ပွ action ကိုလုပ်ဆောင်မထားပါနဲ့။

-q, --quiet

insmod တစ်ဦးရဲ့ module တစ်ခု install လုပ်ဖို့ပျက်ကွက်အကြောင်းကိုတိုင်ကြားမထားပါနဲ့။ ပုံမှန်ပေမယ့်တိတ်တဆိတ်, စမ်းသပ်ဖို့ modprobe အခြားဖြစ်နိုင်ခြေနှင့်ဝသကဲ့သို့ Continue ။ ဒီ option ကိုအလိုအလျောက် insmod ထံသို့စလှေတျပါလိမ့်မည်။

-r, --remove

module ကိုဖယ်ရှားပါ (ထပ်) သို့မဟုတ် autoclean ပြုက command line ပေါ်မှာဖော်ပြခဲ့တဲ့ဆို module တွေရှိပါတယ်ရှိမရှိအပေါ်မူတည်။

-s, --syslog

syslog အစား stderr မှတဆင့်သတင်းပို့ပါ။ ဤသည်ရွေးချယ်စရာအလိုအလြောကျ insmod ထံသို့စလှေတျပါလိမ့်မည်။

-t moduletype; --type moduletype

သာဒီအမျိုးအစား module တွေစဉ်းစားပါ။ modprobe သာသူ၏ directory ကိုလမ်းကြောင်း "/ moduletype /" အတိအကျပါဝင်သည် module တွေကိုကြည့်ပါလိမ့်မယ်။ moduletype ဥပမာ "အသားတင် -t ယာဉ်မောင်း /" တစ်ဦးထက်ပို directory ကိုအမည်ဖြင့်ပါဝင်နိုင်ပါသည် xxx / drivers တွေကို / အသားတင် / နှင့်၎င်း၏ subdirectories အတွက် module တွေစာရင်းပြုစုမယ်။

-v, --verbose

သူတို့ကွပ်မျက်ခံရနေကြသည်အဖြစ်အားလုံးပညတ်တော်တို့ကို Print ။

-V, --version

modprobe ၏ဗားရှင်းဖော်ပြရန်။

မှတ်စု:

module အမည်များကိုလမ်းကြောင်း (အဘယ်သူမျှမ / '') ဆံ့မခံရမယ်, မသူတို့ကကပ်တွယ်မှုကို '' အို '' င်နိုင်ပါသည်။ ဥပမာအားဖြင့်, စလစ် /lib/modules/2.2.19/net/slip နှင့် slip.o မမှန်ပါ, modprobe များအတွက်တရားဝင် module ကိုနာမည်ဖြစ်ပါတယ်။ ဤသည်က command line နှင့် config ကိုအတွက် posts များသက်ဆိုင်သည်။

DESCRIPTION

အဆိုပါ modprobe နှင့် depmod utilities အားလုံးသုံးစွဲသူများအုပ်ချုပ်ရေးမှူးများနှင့်ဖြန့်ဖြူးဆက်လက်ထိန်းသိမ်းများအတွက် Linux ကို modular kernel ကိုပိုပြီးစီမံခန့်ခွဲစေရန်ရည်ရွယ်ပါသည်။

Modprobe ကိုအလိုအလျောက်ကြိုတင်သတ်မှတ်ထား directory ကိုသစ်ပင်များအတွက်ရရှိနိုင်မည့် modules ၏သတ်မှတ်ချက်အနေဖြင့်သက်ဆိုင်ရာ module (s) ကို load ရန်, depmod အသုံးပြုနေသူများကဖန်တီးနေတဲ့ "Makefile" -like မှီခိုဖိုင်အသုံးပြုသည်။

Modprobe တစ်ခုတည်း module, မှီခို module တွေတစ် stack, ဒါမှမဟုတ်တစ်ဦးသတ်မှတ်ထားသော tag နဲ့မှတ်သားထားတဲ့သောသူအပေါင်းတို့သည် module တွေ load ကိုအသုံးပြုသည်။

အဆိုပါမှီခိုဖိုင် modules.dep အားဖြင့်ဖော်ပြထားသကဲ့သို့ Modprobe အလိုအလျှောက်တစ် module ကို stack ထဲမှာလိုအပ်အားလုံးအခြေစိုက်စခန်း module တွေ load ပါလိမ့်မယ်။ ဤအ module တွေတစျဦး၏တင်ပျက်ကွက်လျှင်, လက်ရှိ session တစ်ခုအတွက် loaded module တွေ၏မြေတပြင်လုံးသည်လက်ရှိ stack ကိုအလိုအလျောက်မြေပေါ်သို့ချပါလိမ့်မည်။

Modprobe တင် module တွေ၏နည်းလမ်းနှစ်ခုရှိပါတယ်။ တလမ်းတည်းကို (စုံစမ်းစစ်ဆေး mode ကို) (ပုံစံအားဖြင့်သတ်မှတ်ပါတယ်) စာရင်းတစ်ခုထဲကတစ်ဦး module ကို load ဖို့ကြိုးစားပါလိမ့်မယ်။ Modprobe အဖြစ်မကြာမီအောင်မြင်စွာတဦးတည်းရဲ့ module တစ်ခုဝန်အဖြစ်တင်ရပ်လိုက်နိုင်သည်။ ဒါကစာရင်းထဲက autoload တဦးတည်း Ethernet ဟာယာဉ်မောင်းဖို့အသုံးပြုနိုင်ပါတယ်။
modprobe သုံးနိုငျအခြားလမ်းတစ်စာရင်းထဲမှအားလုံး module တွေ load ဖို့ဖြစ်ပါတယ်။ အောက်တွင်ဖော်ပြထားသောဥပမာကိုကြည့်ပါ။

ထို option -r နှင့်အတူ, modprobe အလိုအလျှောက် "rmmod -r" မလမ်းကိုဆင်တူ module တွေတစ် stack, ရြပါလိမ့်မယ်။ ပဲ "modprobe -r" ကိုအသုံးပြုပြီးအသုံးမပြုတဲ့ autoloaded module တွေကို clean up နှင့်လည်း configuration ဖိုင် /etc/modules.conf အတွက်အကျူးနဲ့ post-ကိုဖယ်ရှားပညတ်တော်တို့ကိုလုပ်ဆောင်ပါလိမ့်မယ်သတိပြုပါ။

အဆိုပါရှေးခယျြစရာ -l နှင့် -t စာရင်းမတယောအမျိုးအစားအားလုံးရရှိနိုင် module တွေပေါင်းစပ်ပြီး။

Option ကို -c လက်ရှိအသုံးပြုသောဖွဲ့စည်းမှုပုံစံ (ပုံမှန် + configuration ဖိုင်) print ထုတ်ပါလိမ့်မယ်။

configuration

modprobe (နှင့် depmod) ၏အပြုအမူအတွက် (optional) configuration ဖိုင် /etc/modules.conf ပြုပြင်နိုင်ပါသည်။
ဒီ file ကိုမဆံ့နိုငျသညျအဘယျသို့တစ်ဦးထက်ပိုသောအသေးစိတ်ဖော်ပြချက်အဖြစ် depmod နှင့် modprobe အသုံးပြုသော default configuration ဟာအဘို့, modules.conf (5) ကိုကြည့်ပါ။

တစ်ဦးရဲ့ module တစ်ခု kerneld အားဖြင့် "autocleaned" ဖြစ်ပါတယ်လျှင်အကျူးနဲ့ post-ကိုဖယ်ရှားပညတ်တော်တို့ကိုကွပ်မျက်မည်မဟုတ်ပါသတိပြုပါ! အစားမလြှော့ module တစ်ခုသိုလှောင်မှုများအတွက်ထ-လာမယ့်အထောက်အပံ့ကိုရှာဖွေပါ။
သင်အကျူးနဲ့ post-install features တွေအသုံးပြုချင်လျှင်, သင် autoclean တိုင်း 2 မိနစ်လုပ်ဖို့ kerneld များအတွက် autoclean ကို turn off အစား (ဒီအဖြစ်ကောင်းစွာ kmod စနစ်များကိုအသုံးပြုသည်) သင့် crontab ထဲတွင်အောက်ပါလိုင်းတူတစ်ခုခုထားရပါလိမ့်မယ် :

* / 2 * * * * စမ်းသပ်မှု -f / proc / module တွေ && / sbin / modprobe -r

မဟာဗျူဟာ

စိတ်ကူး modprobe Kernel အားလက်ရှိလွှတ်ပေးရန်ပြုစု module တွေပါဝင်တဲ့အတွက် directory ထဲတွင်ပထမဦးဆုံးကြည့်ရှုမည်ဖြစ်ပါသည်။ အဆိုပါ module တစ်ခုရှိမတွေ့ရှိလျှင် modprobe Kernel အားဗားရှင်း (ဥပမာ 2.0, 2.2) မှဘုံကတော့ directory ထဲတွင်ကြည့်ရှုမည်။ ယင်းမော်ကျူးနေဆဲတွေ့ရှိခဲ့လျှင် modprobe ဒါပေါ်မှာ default အနေနဲ့လွှတ်ပေးရန် module တွေပါဝင်တဲ့အတွက် directory ထဲတွင်ကြည့်ရှုမည်။

သငျသညျသစ်တစ်ခု linux ကို install လုပ်သောအခါ, module တွေသငျသညျကို install နေသော kernel ကိုများလွှတ်ပေးရေး (နှင့်ဗားရှင်း) နှင့်ဆက်စပ်သောဟာ directory သို့ပြောင်းရွှေ့သင့်ပါတယ်။ ထိုအခါသင်သည် "default" directory ကိုမှယခု directory ကနေ symlink လုပ်ပေးသင့်ပါတယ်။

သငျသညျသစ်တစ်ခု kernel ကို compile တစ်ခုချင်းစီကိုအချိန်, အမိန့်အသစ်တခု directory ကိုဖန်တီးပါလိမ့်မယ် "modules_install စေ" ဒါပေမယ့် "default" link ကိုပြောင်းလဲပစ်မည်မဟုတ်။

သင် kernel ကိုဖြန့်ဖြူးဖို့သက်ဆိုင်တဲ့တစ်ဦးရဲ့ module တစ်ခုရလာတဲ့အခါသင် / lib / module တွေအောက်မှာဗားရှင်း-လွတ်လပ်သောလမ်းညွှန်တစ်ဦးအတွက်နေရာသငျ့သညျ။

ဤသည် /etc/modules.conf အတွက်အသီးသီးတွင်နိုင်သည့်အတွက် default မဟာဗျူဟာဖြစ်ပါတယ်။

ဥပမာများ

-t အသားတင် modprobe

အဆိုပါ directory ထဲတွင်သိမ်းထားသည့် module တွေ၏ဝန်တဦးတည်း "အသားတင်" tagged ။ တဦးတည်းအောင်မြင်သည်အထိတစ်ဦးချင်းစီရဲ့ module တစ်ခုကြိုးစားခဲ့ကြပါတယ်။

-a -t Boot တက် modprobe

directory များတွင်သိမ်းဆည်းထားသမျှသော module တွေ "Boot တက်" loaded ပါလိမ့်မည် tagged ။

modprobe စလစ်

ဒါကစလစ် module တစ်ခုဟာ slhc module အတွက်လုပ်ဆောင်နိုင်စွမ်းကိုလိုအပ်ပါတယ်ကတည်းကကြောင့်ယခင်က, loaded မခံခဲ့ရလျှင် module တစ်ခု slhc.o load ဖို့ကြိုးစားပါလိမ့်မယ်။ ဤသည်မှီခို depmod အားဖြင့်အလိုအလျှောက်ဖန်တီးခဲ့သောဖိုင်ကို modules.dep တှငျဖျောပွထားလိမ့်မည်။

-r စလစ် modprobe

ဒါကစလစ် module တစ်ခုချပါလိမ့်မယ်။ ဒါဟာအဖြစ်ကောင်းစွာအချို့သောအခြား module ကိုအသုံးပြုမဟုတ်လျှင်ဒါဟာအစ (ဥပမာ PPP), အလိုအလြောကျ slhc module တစ်ခုချပါလိမ့်မယ်။

လည်းဖတ်ကြည့်ပါ

depmod (8), lsmod (8), kerneld (8), ksyms (8), rmmod (8) ။

safe mode

ထိရောက်စွာ uid အစစ်အမှန် uid ညီမျှမပါရှိလျှင်ထို့နောက် modprobe အစွန်းရောက်သံသယနှင့်အတူ၎င်း၏ input ကိုဆကျဆံတယျ။ '-' 'နောက်ဆုံး parameter သည်အမြဲကစတင်သည်လျှင်ပင်တစ် module တစ်ခုအမည်အဖြစ်ကုသနေပါတယ်။ တစ်ဦးတည်းသာ module တစ်ခုအမည်နှင့်ပုံစံ "variable ကို = value ကို" ၏ရွေးချယ်စရာတားမြစ်ထားကြသည်ရှိနိုငျပါသညျ။ အဆိုပါ module ကိုနာမတျောကိုအစဉ်အမြဲတစ်ဦး string ကိုအဖြစ်ကုသမရှိ meta တိုးချဲ့လုံခြုံ mode မှာဖျော်ဖြေနေသည်။ သို့သော် meta တိုးချဲ့နေဆဲ config ကိုဖိုင်မှဖတ် data တွေကိုအသုံးချနေသည်။

> = 2.4.0-test11 euid, modprobe Kernel အားထံမှမဖြစ်၏သောအခါ uid ညီမျှမကျမည်အကြောင်းကဒီအဆန်များအတွက်မှန်သည်။ တစ်ခုစံပြကမ်ဘာပျေါတှငျ, modprobe သာ modprobe မှတရားဝင်သတ်မှတ်ချက်ဘောင်လွန်သွားဖို့ kernel ကိုယုံကြည်စိတ်ချနိုင်ပါတယ်။ သို့သော်အနည်းဆုံးဒေသခံအမြစ်အဆင့်မြင့် kernel ကိုကုဒ် modprobe မှအသုံးပြုသူများထံမှတိုက်ရိုက်အတည်မပြုနိုင်သော parameters တွေကိုလွန်သောကွောငျ့ဖြစ်ပွားခဲ့သည် exploit ။ ဒီတော့ modprobe မရှိတော့ kernel ကို input ကိုခိုလှုံ။

ပတ်ဝန်းကျင်ကိုသာထိုအညှို့ပါဝင်ပါသည်သည့်အခါ modprobe အလိုအလျှောက်ဘေးကင်းလုံခြုံ mode ကိုသတ်မှတ်

မူလစာမျက်နှာ = / TERM = linux ကို PATH = / sbin: / usr / sbin: / ဘင်: / usr / bin

ဤသည်ကိုပင်ကအစောပိုင်းကအဆန်ပေါ်မပေးသော uid == euid လျှင်, 2.4.0-test11 သော်လည်းအဆန် 2.2 အပေါ် kernel ကိုထံမှ modprobe ကွပ်မျက်ကို detect ။

logging command

directory ကို / var / log / ksymoops အကယ်. တည်ရှိခြင်းနှင့် modprobe load တစ်ခုသို့မဟုတ်ထို့နောက် modprobe ယင်း၏ command ကို log နှင့် / var / log / ksymoops / `နေ့စွဲ +% Y ကို% မီတာ% ဃထဲမှာ status ကိုပြန်လာလိမ့်မယ်တဲ့ module ကိုဖျက်ပစ်နိုင်သည့် option ကိုအတူပြေးနေသည် .log` ။ သငျသညျ / var / log / ksymoops ဖန်တီးပါဘူး, ဒါကြောင့်ပေါ်ပေါက်ချင်ကြဘူးလျှင်ဤအလိုအလျောက်သစ်ထုတ်လုပ်ရေးကို disable လုပ်ဖို့အဘယ်သူမျှမ switch သည်ရှိ၏။ ကြောင်း directory ကိုတည်ရှိပါကအမြစ်ကပိုင်ဆိုင်ခြင်းနှင့် mode ကို 644 သို့မဟုတ် 600 ဖြစ်နှင့်သင်တို့သည်ဤမျှနေ့တိုင်းသို့မဟုတ် insmod_ksymoops_clean script ကို run သင့်ပါတယ်ရပါမည်။

လိုအပ်သောအသုံးအဆောင်များ

depmod (8), insmod (8) ။

အရေးကြီး: command တစ်ခုကိုသင်၏အထူးသဖြင့်ကွန်ပျူတာပေါ်တွင်အသုံးပြုသည်ကိုမည်သို့ကြည့်ဖို့လူကို command ကို (% သည်လူ) ကိုသုံးပါ။