我如何区分用户是 root 还是用户是 sudo
How do I distinguish between when user is root vs when user is sudo'd
我想为 KDE 应用程序编写一些 Qt 代码,以区分用户何时为 root 用户与何时用户使用 sudo 请求提升的权限,以便该应用程序可以为每个用例显示不同的消息.检查 uid == 0
会捕获这两种情况,但我如何区分它们?
您可以使用 QProcessEnvironment
class:
读取 SUDO_USER
环境变量
QProcessEnvironment system_env = QProcessEnvironment::systemEnvironment();
qDebug() << "USER : " << system_env.value("USER");
qDebug() << "SUDOER: " << system_env.value("SUDO_USER");
或 #include <unistd.h>
并使用 getlogin
:
std::cout << "LOGGED IN USER: " << getlogin() << std::endl;
我想为 KDE 应用程序编写一些 Qt 代码,以区分用户何时为 root 用户与何时用户使用 sudo 请求提升的权限,以便该应用程序可以为每个用例显示不同的消息.检查 uid == 0
会捕获这两种情况,但我如何区分它们?
您可以使用 QProcessEnvironment
class:
SUDO_USER
环境变量
QProcessEnvironment system_env = QProcessEnvironment::systemEnvironment();
qDebug() << "USER : " << system_env.value("USER");
qDebug() << "SUDOER: " << system_env.value("SUDO_USER");
或 #include <unistd.h>
并使用 getlogin
:
std::cout << "LOGGED IN USER: " << getlogin() << std::endl;