Trusted Platform Module (TPM) チップ (TPM12 と TPM20 の両方) に取り組んでいます。現在、TPM 所有権の取得、TPM のクリア、TPM 内でのキーの生成など、TPM でいくつかの操作を行っています。ただし、これらすべての操作には、Linux ラップトップでの sudo 権限が必要です。
では、ルート権限なしで通常のユーザーとして上記のすべての操作を実行できますか? 実行できる場合、ルート権限なしで 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 権限は不要になります。ユーザー空間リソース マネージャーはサービスとして実行されます (または、ユーザーとして手動で起動されますtss
)。