我如何区分用户是 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;