【问题标题】:How do I distinguish between when user is root vs when user is sudo'd如何区分用户是 root 还是用户是 sudo'd
【发布时间】:2018-10-13 21:47:40
【问题描述】:

我想为 KDE 应用程序编写一些 Qt 代码,以区分用户是 root 用户还是用户使用 sudo 请求提升权限的时间,因此应用程序可以为每个用例显示不同的消息。检查uid == 0 会捕获这两种情况,但我如何区分它们呢?

【问题讨论】:

    标签: c++ qt root sudo kde


    【解决方案1】:

    您可以使用QProcessEnvironment class 读取SUDO_USER 环境变量:

    QProcessEnvironment system_env = QProcessEnvironment::systemEnvironment();
    qDebug() << "USER  : " << system_env.value("USER");
    qDebug() << "SUDOER: " << system_env.value("SUDO_USER");
    

    #include &lt;unistd.h&gt; 并使用getlogin

    std::cout << "LOGGED IN USER: " << getlogin() << std::endl;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 2016-09-05
      相关资源
      最近更新 更多