我创建了一个应用程序,它也使用 TPM 进行签名/加密/解密(使用库tss2-fapi
)...但是对于 Linux(Ubuntu)权限,我还是个新手。现在,当我运行该应用程序时,我总是必须以以下方式运行它:
sudo ./tpmProjectApp
像这样运行应用程序不会产生任何问题。
我希望任何登录的用户(也具有有限的权限)运行此可执行文件,但我不希望他们以任何其他方式与 TPM 通信。
所以我想知道,有没有什么方法可以让用户无需使用即可运行该应用程序sudo
?
我尝试使用以下命令将可执行文件分配给 root:
sudo chown root ./tpmProjectApp
并设置 setuid 位(我也尝试过g+s
):
sudo chmod u+s tpmProjectApp
权限如下所示:
-rwsrwsrwx 1 root root 713608 apr 14 16:02 tpmProjectApp*
但是当我运行时./tpmProjectApp
会出现通常不会出现的错误。
例如:未找到密钥 P_RSA2048SHA256/HS/SRK/myRsaKey。
但我知道密钥存在,因为如果我用 运行它,应用程序就会起作用sudo
。
我认为,如果出现问题,为该可执行文件分配 root 权限可能比尝试修改 TPM 文件更省事。