簡體   English   中英

Linux/Ubuntu:根據用戶名限制對特定 USB 端口的訪問

[英]Linux/Ubuntu: Restricting access to specific USB ports based on username

我們有多個測試系統通過 USB 端口連接到 Ubuntu PC,每個設備由其序列號確定。 未提供序列號時,應用程序默認使用第一個可用端口。 為了能夠使用該系統,每個用戶都需要成為超級用戶。 考慮到每個 USB 端口對系統中的每個用戶名都是可見的,用戶可以(無意地)控制另一個系統。 如果有一種方法可以將 usb 端口鎖定/限制為特定用戶名,則可以更好地管理對設備的訪問。 問:有沒有辦法根據用戶名限制USB端口?

我正在尋找有關可能選項的指導以進一步探索

我認為udev 規則和 Linux 組可以解決這個問題。

目前尚不清楚您所說的 USB 設備到底是什么類型,它在您的文件系統中創建了哪些節點,以及這些節點的權限是什么。 所以這個答案可能不完全是你需要的,但我希望它能為你指明正確的方向。

通常,您可能必須向系統添加 udev 規則以授予用戶訪問那些 USB 設備的權限。 這是我經常在我維護的系統上使用的典型規則,以便授予所有用戶使用供應商 ID 為 1234 的本機 USB 設備的權限:

SUBSYSTEM=="usb", ATTRS{idVendor}=="1234", MODE="0666"

您可以將該文件保存在/etc/udev/rules.d文件夾中,文件名類似於99-myrules.rules

但是您不想完全使用該規則。 以下是您需要進行的一些更改:

  1. 將鍵值對添加到規則中,以便該規則僅適用於一個 USB 設備,由其序列號指定。 認為它看起來像這樣: ATTRS{serial}=="serial_number_of_one_of_your_devices"
  2. 您應該將 MODE 更改為0660 ,這樣它就不會向所有人授予權限,但會向正確組中的用戶授予權限。
  3. 添加一個類似於GROUP="groupname"的 GROUP 指令,為該 USB 設備設置文件節點的 GROUP。 Ubuntu 上的每個用戶通常都有自己的組,與用戶同名,因此您可以使用它,或者您可以使用 Unix 提供的標准機制創建更多組來管理用戶組。

您可以在一個文件中包含多個規則,每個規則各占一行。 每個設備將有一個規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM