![如何以 root 身份调用可执行文件而无需使用 sudo?](https://linux22.com/image/955892/%E5%A6%82%E4%BD%95%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E8%B0%83%E7%94%A8%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E8%80%8C%E6%97%A0%E9%9C%80%E4%BD%BF%E7%94%A8%20sudo%EF%BC%9F.png)
我创建了一个应用程序,它也使用 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 文件更省事。