正在研究可信任平台模組 (TPM) 晶片(TPM12 和 TPM20)。截至目前,我正在對 TPM 進行一些操作,例如獲取 TPM 所有權、清除 TPM、在 TPM 內產生金鑰等。
那麼我可以在沒有root權限的情況下以普通使用者身分執行上述所有操作嗎?如果是,如何在沒有 root 權限的情況下存取 TPM?
答案1
這個答案適用於TPM2(TPM1.2的原理應該類似)。首先:您的 TPM 可透過以下字元裝置存取。
/dev/tpm0
:直接存取TPM驅動程式/dev/tpmrm0
:透過核心中的 TPM 資源管理器存取 TPM 驅動程式(建議)
您當然可以臨時更改這些文件的讀/寫權限。然而,您真正想做的是創建一條udev
規則。這基本上是一個/etc/udev/rules.d/
.作為參考,請查看TSS 提供的 udev 規則:
# tpm devices can only be accessed by the tss user but the tss
# group members can access tpmrm devices
KERNEL=="tpm[0-9]*", MODE="0660", OWNER="tss"
KERNEL=="tpmrm[0-9]*", MODE="0660", OWNER="tss", GROUP="tss"
正如你所看到的,對於用戶來說有一個規則tss
。該用戶專門用於使用者空間資源管理器。如果您使用此資源管理器,您將不再需要自行存取這些文件,但使用者空間資源管理器會為您完成此操作。因此您不再需要 root 權限。使用者空間資源管理器將作為服務運行(或作為 user 手動啟動tss
)。