歡迎您光臨本站 註冊首頁

Linux下自動格式化插入的U盤和另外兩則案例

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

U盤能方便我們共享數據,但你是不是有時候害怕別人隨便在你的電腦上拷貝私密的數據啊,呵呵.下面我就告訴你一個比較缺德的方法,來防止別人隨便用U盤從你的電腦上偷偷的拷貝數據.

使用UDEV機制,讓插入的U盤自動格式化.

/etc/udev/rules.d/目錄下,新建一個75-usb.rules

的文件,當然,這個文件名中的數字和usb可以換成其他的,但rules這個後綴一定不要變.

內容如下:

BUS=="usb", ACTION=="add", DIRVER=="usb-storage", NAME="xiaosu", RUN="/sbin/mkfs.vfat /dev/xiaosu"

意思就是,如果插入的USB設備是存儲設備,就在/dev

下建立的節點就叫xiaosu,然後用mkfs.vfat這個命令來格式化它.

效果如下:

我們先前的U

把這個配置文件保存之後,U盤拔出再插入:

我們發現

U盤裡面已經沒有任何東西了.

你可能會疑問了:這樣不是把所有插入的U盤都給格式化了嗎,如果我不想讓系統格式化我自己的U盤,而只是格式化別人的U盤呢?

這樣好辦,我們在這個配置文件中加入一條規則,判斷這個設備是不是屬於你.

首先將不想被格式化的

U盤插入,我已我的8GU盤為例:

首先把U盤中的數據備份一下,然後將U盤插入,使用mount命令,可以知道我的U盤被識別為了/dev/sdb4

,截圖如下

現在我探測一下我的U盤的序列號之類的能確保U盤身份唯一性的信息.

使用如下命令:

udevinfo -a -p $(udevinfo -q path -n /dev/sdb) |grep serial

當然,這裡的

sdb要換成你對應的信息.

截圖如下:

這裡發現,有兩個serial

我們用udevinfo -a -p $(udevinfo -q path -n /dev/sdb) 這個命令,仔細查看信息,發現:

第一個serial對應的是

productUSB DISK

截圖如下:

第二個serial對應的product HOST Controller

截圖如下:

我們修改配置文件為:

BUS=="usb", ACTION=="add", DIRVER=="usb-storage", NAME="xiaosu", SYSFS{serial}!="07A71A002345111E", SYSFS{serial}!="0000:00:1d.7", RUN="/sbin/mkfs.ext3"

這一行的意思就是:

如果插入了USB的存儲設備,先把建立的節點重命名為xiaosu,然後檢測一下這個設備的序列號,如果不等於這兩個,就格式化它.

這兩個serial

都要用到!少一個都不行,.並且需要注意的是,這裡的序列號要改成你的U盤的序列好.

說實話,這樣做確實有些缺德.....並且,這樣做對系統還有一定的風險,比如說哪一天,你拿著一個其他人的有重要數據的U盤,一不小心給忘記了,就插入了,然後就悲劇了........

現在我們修改一下這個配置文件,不要格式化別人的

U盤了,我們只是讓系統不掛載它就是了.這樣,別人插入U盤之後,發現系統一直沒有反應,就會懷疑是USB介面損壞或者其他原因,就作罷了.

我們把配置文件修改為:

BUS=="usb", ACTION=="add", DIRVER=="usb-storage", NAME="xiaosu", SYSFS{serial}!="07A71A002345111E", SYSFS{serial}!="0000:00:1d.7", RUN="/bin/rm -f /dev/xiaosu"

也就是把面的RUN命令改為/bin/rm -f /dev/xiaosu

這樣.系統就會刪除這個節點,更談不上掛載了.....

經過我測試,系統目前只能識別我的這個8GU盤,其他都已經識別

不了了.

更多的操作,可以通過man udev來研究它的規則,然後就是發揮你的想象力,進行無窮的創造了.......

再說一下系統識別設備的步驟:

1.內核發現設備,然後將探測到的系統的各種信息傳遞給sysfs

2.系統會把這個設備的這個事件給

udev傳遞個提示消息

3.udev會在/dev下創建這個設備的節點,然後根據rules文件的設置執行相應的指令

4.udev會通過一個介面給HAL發送一個提醒

本文出自 「飛翔的單車」 博客,請務必保留此出處http://xiaosu.blog.51cto.com/2914416/544315


[火星人 ] Linux下自動格式化插入的U盤和另外兩則案例已經有343次圍觀

http://coctec.com/docs/linux/show-post-48923.html