2014-12-26 49 views
-1

我想編寫一個bash腳本來阻止某些idVendors掛載,我的想法是使用tail -f /var/log/messages並將其註冊到idVendor並在偵測時阻止某個供應商,有人可以幫我解決這個問題請?bash腳本阻止某些idVendor從掛載

+0

你有沒有嘗試過的東西,你有最少的代碼我們可以繼續工作嗎?任何其他信息可能會有用。 如果我明白你試圖識別'kernel:usb 3-1:找到新的USB設備,idVendor = 03f0,idProduct = 5a07'這樣的行,並試圖在掛載時卸載它們?我對麼? – furins

+0

其實我嘗試了很多東西來得到這個工作,但由於即時通訊新的Linux沒有他們做了我想要的,是的,這就是我的問題,謝謝你回覆如此之快 – mike

+0

好的,我們仍然需要一些信息。你在使用哪種Linux版本?爲什麼你需要在腳本中使用'/ var/log/messages'和'idVendors',而不是在'fstab'中使用'noauto'選項作爲特定的設備ID?你試圖卸載哪種外設?如果不是嚴格與腳本語言相關,請考慮將此問題發佈到http://superuser.com/ – furins

回答

1

A udev規則會在這裏派上用場。在我的拱形系統中,我只需添加一條這樣的規則(儘管沒有嘗試過)。創建

/etc/udev/rules.d/40-do-not-mount.rules 

文件,並添加一行像這樣(與你的設備的那些取代[VENDOR ID][PRODUCT ID]wildcards are allowed

SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]", ATTR{idProduct}=="[PRODUCT ID]",ENV{UDISKS_IGNORE}="1" 

然後重新

udevadm control --reload-rules 

測試您的規則:

udevadm test /sys/dev/block/[device] 

它應該輸出像

... 
UDISKS_IGNORE=1 
USEC_INITIALIZED=760036464 
unload module index 
Unloaded link configuration context 


一些參考:

+0

這是我想建議的相同的方法,你比我快:) – furins

+0

非常感謝你,我會試試看,讓你知道,你們搖滾:) – mike

+0

好吧,我做了你所說的,但它didn 't工作:(沒有錯誤出現,該設備仍然可以安裝... – mike