Linux

限制應用程序訪問某些硬體(網路攝像頭、麥克風……)

  • January 1, 2017

如果我告訴 VLC 或 Audacity 等應用程序從我的網路攝像頭或麥克風進行錄製,它們只會在睡眠時喚醒硬體並在不受我干擾的情況下完成工作。

儘管這是一件好事,但出於隱私考慮,我一直想知道:有沒有辦法限制應用程序訪問硬體設備?

在寫這篇文章時,我想到了使用 SELinux 或 AppArmor 之類的東西來限制對/dev/something. 這可能嗎?有沒有更好或更簡單的方法?

另外,除了網路攝像頭和麥克風之外,我還應該關注其他硬體嗎?

我猜傳統的方法是為程序/程序集創建偽使用者(如游戲使用者),將此使用者分配給它應該訪問的設備(例如相機)的組,然後執行程序) SUID 作為這個使用者。如果您刪除了“其他人”(不是所有者或組)的權限,則只有組的所有者和成員(包括偽使用者)可以訪問它。

此外,您可以使用程序組來限制允許執行程序的使用者。為允許進行影片會議的使用者創建一個組(例如會議),並將相關程序(被授予對攝像頭和麥克風的特殊訪問權限的程序)的執行僅限於該組。

+++

另一種方法是將程序 SGID 作為屬於設備的特殊組執行,並刪除“其他”的權限。這當然只有在程序只需要訪問一個受限設備時才有效。

引用自:https://unix.stackexchange.com/questions/79261