2010-10-15 62 views

回答

0

您可以查找/ var/log/messages查找插入消息。他們會因設備而異,但一般看起來有點像這樣:

[183532.373402] sda: sda1 
[196936.098729] usb 1-3: USB disconnect, address 3 
[196936.440424] usb 1-3: new high speed USB device using ehci_hcd and address 6 
[196936.586043] usb 1-3: New USB device found, idVendor=0781, idProduct=9219 
[196936.586052] usb 1-3: New USB device strings: Mfr=3, Product=4, SerialNumber=5 
[196936.586057] usb 1-3: Product: ImageMate CF Reader/Writer 
[196936.586061] usb 1-3: Manufacturer: SanDisk 
[196936.586065] usb 1-3: SerialNumber: 0302855445 
[196936.586286] usb 1-3: configuration #1 chosen from 1 choice 
[196936.592552] scsi1 : SCSI emulation for USB Mass Storage devices 
[196936.593074] usb-storage: device found at 6 
[196936.593078] usb-storage: waiting for device to settle before scanning 
[196941.592515] usb-storage: device scan complete 

其餘的只是一個smop。

+0

非常感謝你,我得到了一些線索,我會嘗試這 – 2010-10-15 16:51:17

+1

一個smop!讓我谷歌。:) – bzlm 2010-10-15 17:31:14

2

daemons怎麼樣?

您可以創建一個檢測pendrive插入並執行你想要在終端中。

4

如果我得到了你的意思,你的意思是像Windows'AUTORUN.INF,是不是?

在這種情況下,我想你很難找到你要找的東西。這經常被認爲是危險的,因爲你可以運行任何你想要的,包括病毒和其他惡意軟件!

0

我認爲KDE在插入設備的根目錄中查找autorun.sh,但我不確定。

3

當您插入USB(或通常很多其他類型的可移動存儲設備)時,內核在識別出內容後會通知一個名爲udevd的程序。 udevd會查看一些規則(存儲在/etc/udev/rules.d/,/lib/udev/rules.d/或/dev/.udev/rules.d下的文件中),以查找與新設備匹配的規則並執行那些做的。可移動塊設備的一個規則是運行一個程序來掛載該驅動器上的文件系統(可能會創建掛載點/目錄)。

Gnome,KDE或類似的桌面界面通過D-BUS獲知已經安裝並安裝了新設備(我不是100%關於這裏的確切步驟)。

無論如何,爲了在新插入的驅動器上運行程序,您需要一個程序來爲您執行已經運行的程序。你可以嘗試改變你的udev規則或安裝新驅動器的腳本來爲你做這件事,或者編寫一個新的守護進程,通知像gnome或KDE這樣的桌面管理系統得到通知來運行它的方式得到通知,但是沒有我知道如果已經這樣做。這樣做存在安全風險,因爲它允許任何訪問USB(或類似)插頭的人在計算機上運行任何程序。我可以走到某人在咖啡館使用筆記本電腦,並很快在他們的計算機上運行程序而未經他們的同意。或者,如果我給某人一個USB驅動器,並說「這有我的假期照片」,他們把它放到他們的Linux計算機上,驅動器上的惡意自動運行程序將在未經他們同意的情況下運行。

如果這樣的功能已經是某些Linux發行版的一部分(它可能是,我不知道),它應該肯定需要用戶在它運行之前達成一致,但即使如此,它也必須限於運行該用戶的UID和GID(忽略更復雜的SELinux安全性的可能性)以及該用戶安全的工作目錄。而這完全忽略了移動文件系統所有權混淆和SUID位的問題。

這可能不是解決您嘗試解決的任何問題的正確方法。

+0

非常感謝我有一個維度來思考 – narayanpatra 2010-10-18 17:39:16

相關問題