Estou trabalhando no chip Trusted Platform Module (TPM) (TPM12 e TPM20). A partir de agora, estou realizando algumas operações no TPM, como assumir a propriedade do TPM, limpar o TPM, gerar chaves dentro do TPM, etc. Mas para todas essas operações, preciso da permissão sudo no meu laptop Linux.
Então, posso fazer todas as operações mencionadas acima como um usuário normal sem permissão de root? Se sim, como acessar o TPM sem permissões de root?
Responder1
Esta resposta se aplica ao TPM2 (o princípio deve ser semelhante para o TPM1.2). Em primeiro lugar: o seu TPM pode ser acessado através dos seguintes dispositivos de caracteres.
/dev/tpm0
: acesso direto ao driver TPM/dev/tpmrm0
: acesso ao driver TPM por meio do gerenciador de recursos TPM no kernel (recomendado)
É claro que você pode alterar temporariamente as permissões de leitura/gravação desses arquivos. O que você realmente quer fazer, entretanto, é criar uma udev
regra. Isso é basicamente um arquivo em /etc/udev/rules.d/
. Para referência, dê uma olhada noregras do udev fornecidas pelo TSS:
# 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"
Como você pode ver, existe uma regra para o usuário tss
. Este usuário é dedicado aogerenciador de recursos do espaço do usuário. Se você usar este gerenciador de recursos, não precisará mais acessar os arquivos sozinho, mas o gerenciador de recursos do espaço do usuário fará isso por você. Portanto, você não precisa mais de permissões de root. O gerenciador de recursos do espaço do usuário será executado como serviço (ou iniciado manualmente como user tss
).