1. 程式人生 > >Udev規則及Linux下非root使用者使用串列埠的許可權設定

Udev規則及Linux下非root使用者使用串列埠的許可權設定

系統 Ubuntu 16.04 LTS

Linux下的裝置使用都需要使用sudo或root使用者才能開啟,為了能讓普通使用者也能使用串列埠,有以下兩種方法:

1、可以增加udev規則來實現,具體方法如下:
sudo vim /etc/udev/rules.d/70-ttyusb.rules
增加如下內容:KERNEL==”ttyUSB[0-9]*”,MODE=”0666”
儲存,重新插入USB轉串列埠,就可以了。

2、新增使用者 (該方法未實踐)
a.由於tty屬於“dialout”組別,比如你的使用者名稱是muyangren,
先命令檢視下使用者隸屬的組別
groups muyangren
b.如果沒有隸屬“dialout”,那麼把使用者加入進去
sudo gpasswd –add muyangren dialout
c.logout 再登入系統啟用功能
執行sudo gpasswd –add muyangren dialout

關於udev規則:
1、udev規則檔案目錄
/etc/udev/rules.d : 使用者自定義的udev規則檔案一般存放在這裡
/lib/udev/rules.d : 系統自帶的udev規則檔案
2、udev主配置檔案
/etc/udev/udev.conf : 在配置檔案中查詢規則檔案所在目錄,規則檔案預設放在/etc/udev/rules.d/下。
3、udev規則檔案命名
例如10-dm.rules,60-persistent-storage.rules,執行規則檔案,是根據開頭的數字大小,數字大小相等,
根據字母順序執行,且後面的規則檔案會覆蓋前面的規則(‘NAME’動作除外,因為’NAME’只能操作一次,
後續NAME操作無用)。
4、部分規則
a.udev從頭到尾逐行解析每個規則檔案,每行代表一個規則,每個規則由若干”鍵-值”(key-value)對組成。
b.鍵分為兩種:匹配鍵(match key)、賦值鍵(assignment key)。
c.每個規則必須至少有一個匹配鍵和一個賦值鍵。
d.每個規則一行,不可換行。
e.不可在一行規則中混合匹配兩個不同父裝置的屬性。
f.建立的裝置節點的mode預設值為0666


操作符     匹配或賦值                         解釋  
--------------------------------- 
==   匹配   相等比較  
!=   匹配   不等比較  
=    賦值   分配一個特定的值給該鍵,他可以覆蓋之前的賦值.  
+=   賦值   追加特定的值給已經存在的鍵  
:=   賦值   分配一個特定的值給該鍵,後面的規則不可能覆蓋它.  
鍵                含義  
--------------------------------- 
ACTION               事件 (uevent) 的行為,例如:add( 新增裝置 )、remove( 刪除裝置 ).  
KERNEL 在核心裡看到的裝置名字,比如sd*表示任意SCSI磁碟裝置 DEVPATH 核心裝置錄進,比如/devices/* SUBSYSTEM 子系統名字,例如:sda 的子系統為 block. BUS 匯流排的名字,比如IDE,USB DRIVER 裝置驅動的名字,比如ide-cdrom ID 獨立於核心名字的裝置名字 SYSFS{ value} sysfs屬性值,他可以表示任意 ENV{ key} 環境變數,可以表示任意 PROGRAM 可執行的外部程式,如果程式返回0值,該鍵則認為為真(true) RESULT 上一個PROGRAM呼叫返回的標準輸出. NAME 根據這個規則建立的裝置檔案的檔名. (注意:僅僅第一行的NAME描述是有效的,後面的均忽略.如果你想使用使用兩個以上的名字來訪問一個裝置的話,可以考慮SYMLINK鍵.) SYMLINK 為 /dev/下的裝置檔案產生符號連結.由於 udev 只能為某個裝置產生一個裝置檔案, (所以為了不覆蓋系統預設的 udev 規則所產生的檔案,推薦使用符號連結.) OWNER 裝置檔案的屬組 GROUP 裝置檔案所在的組. MODE 裝置檔案的許可權,採用8進位制 RUN 為裝置而執行的程式列表 LABEL 在配置檔案裡為內部控制而採用的名字標籤(下下面的GOTO服務) GOTO 跳到匹配的規則(通過LABEL來標識),有點類似程式語言中的GOTO IMPORT{ type} 匯入一個檔案或者一個程式執行後而生成的規則集到當前檔案 WAIT_FOR_SYSFS 等待一個特定的裝置檔案的建立.主要是用作時序和依賴問題. PTIONS 特定的選項: last_rule 對這類裝置終端規則執行; ignore_device 忽略當前規則; ignore_remove 忽略接下來的並移走請求. all_partitions 為所有的磁碟分割槽建立裝置檔案.