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
. 이 사용자는 다음 작업을 전담합니다.사용자 공간 리소스 관리자. 이 리소스 관리자를 사용하면 더 이상 직접 파일에 액세스할 필요가 없지만 사용자 공간 리소스 관리자가 대신 이를 수행합니다. 따라서 더 이상 루트 권한이 필요하지 않습니다. 사용자 공간 리소스 관리자는 서비스로 실행됩니다(또는 사용자로 수동으로 시작됩니다 tss
).