如何判断当前程序是否正以管理员或root权限运行

2023-11-03

在windows下,一般超级用户是管理员权限administrator;在linux下,一般超级用户是root。

  • windows下,使用IsUserAnAdmin()函数进行判断;
  • linux下,使用geteuid()函数进行判断。

编写一个UAC.h文件,使得在win/linux均可以进行判断,如下:

#ifndef UAC_H
#define UAC_H

#ifdef WIN32
// for IsUserAnAdmin()
#include <ShlObj_core.h>
#pragma comment (lib, "Shell32.lib")
#else
#include <unistd.h>
#endif

/**
 * @brief runAsAdmin
 * 判断当前程序是否以管理员权限运行,win下为administrator,linux下为root
 * @return 是否以管理员权限运行
 */
bool runAsAdmin()
{
#ifdef WIN32
    return IsUserAnAdmin(); // true, is admin
#else
    return (geteuid() == 0); // true, is root
#endif
}

#endif // UAC_H

参考链接:《如何判断当前的进程是否以root权限运行》



若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何判断当前程序是否正以管理员或root权限运行 的相关文章

  • C++ 字符串比较------strcmp函数和strncmp函数

    strcmp 函数原型 int strcmp const char str1 const char str2 功能 strcmp函数会按照字典顺序逐个比较两个字符串的字符 直到遇到不同的字符或者遇到字符串结束符 0 返回值 该函数返回值如下
  • C++常见STL容器基本用法

    1 vector include
  • C 语言运算符详解

    C 语言中的运算符 运算符用于对变量和值进行操作 在下面的示例中 我们使用 运算符将两个值相加 int myNum 100 50 虽然 运算符通常用于将两个值相加 就像上面的示例一样 它还可以用于将变量和值相加 或者将变量和另一个变量相加
  • 在etc文件夹中找不到php.ini?

    我对我的专用服务器有 root 访问权限 当我运行时phpinfo 它说我的 php ini 文件位于 etc 目录中 使用 ssh 我似乎无法在那里找到它 我不知道在哪里可以找到它 谢谢 这可能不是 SO 的问题 但这里有一些潜在的解决方
  • 权限如何在 mac 上运行 sbin 命令?

    我正在使用 mac os x 并且我正在尝试运行shutdown命令但它说我不是超级用户 不过 我可以跑ifconfig无需成为超级用户 这两个命令都在 sbin 中 我的 PATH 环境变量包括 sbin 这就是为什么我可以运行 ifco
  • 在 Linux 上为 Qt 应用程序获取 root 访问权限的正确方法

    Good day 背景 我正在为 Linux 系统创建一个 OpenVPN 包装应用程序 该应用程序已接近完成 我遇到了一个小障碍 OpenVPN 需要 root 访问权限才能修改路由表 添加和删除路由 这就是事情变得有点模糊和混乱的地方
  • 如何设置 Windows 计划任务在后台运行? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有谁知道如何使用 Windows 任务计划程序设置计划任务在后台运行 似乎没有任何选择可以做到这一点 As noted https stackover
  • 是否可以在没有 root 的情况下在 CentOS 上安装 g++?

    我有一台配备 CentOS 5 8 的 core i7 机器 我通过 SSH 连接并使用它来运行模拟 不幸的是它只有 gcc 版本 4 1 2 这似乎产生的程序比我在较慢的笔记本电脑上使用 Microsoft Visual Express
  • 如何使用Odin解压、修改、打包和烧写`system.img.ext4`文件?

    我有一个system img ext4 lz4与我的三星 S10 5G 高通 设备兼容的文件 我已经提取了system img ext4文件来自system img ext4 lz4 using unlz4 system img ext4
  • C# 如何知道给定路径是否代表根驱动器?

    我如何知道给定目录是否是根驱动器 除了检查其路径是否等于 A B C 等 检查 DirectoryInfo Parent 是否为空 DirectoryInfo d new DirectoryInfo if d Parent null IsR
  • 根路径不适用于 php include

    在链接开头获取根文件夹在 php include 中不起作用 例如 example example php 解决办法是什么 我假设根文件夹是指您的网络文档根目录 而不是文件系统根目录 为此 您可以 将 Web 根文件夹添加到包含路径 htt
  • launchctl 无法运行二进制文件并以代码 78 退出

    我一直在构建一个 golangapp https gist github com krlc 8b9a79b33b857d1a66221ffc802d3c0d带有系统托盘 GUI 我想了launchctl每当我登录时运行我的程序 程序编译并运
  • Python使用sudo启动时找不到模块

    我有一个使用 Google Assistant 库的脚本 并且必须从那里导入一些模块 我发现这只适用于 Python 虚拟环境 这真的很奇怪 在同一个文件夹中 我有一个使用 GPIO 引脚并且必须使用 root 的脚本 它们相互交互 因此当
  • 无需root设备即可卸载系统应用程序

    有没有办法在不root设备的情况下将apk推送到系统 应用程序文件夹 我找到了几种在 root 设备上执行此操作的方法 但我正在寻找一种无需先 root 设备即可执行此操作的方法 如果有任何区别 我想在三星 S4 上执行此操作并使用 twr
  • 如何在MySQL 8.0.11中重置root密码?

    我实际上丢失了 root 密码 我需要更改它 我按照以下步骤操作 步骤 1 停止 MySQL 服务器进程 步骤 2 使用以下命令启动 MySQL mysqld 服务器 守护进程 skip grant tables 选项 这样就不会提示输入密
  • 为什么我的 Android 应用程序(具有 root 权限)无法访问 /dev/input?

    我的应用程序针对已root的Android设备 它具有root权限并且需要访问该目录 dev input 但为什么它会抛出opendir failed Permission denied even dev input已经是chmod to
  • android中无法绕过的Root检测方法

    我知道在 root 设备上运行拥有敏感信息的应用程序根本不安全 因此 开发人员通常在这种情况下进行 root 检测 如果发现设备已 root 则该应用程序将不会安装 一切都好 开发者在root检测中使用的主要技术是检查superuser a
  • 如何在 android studio 中监听 shell 命令的响应?

    在 Android 终端模拟器中 我可以输入以下命令 gt su gt echo class power supply battery charge rate 根据手机的充电方式 输出将为 无 正常 或 涡轮 我希望能够检索此输出并存储它作
  • 如何强制我的 .NET 应用程序以管理员身份运行?

    一旦我的程序安装在客户端计算机上 如何强制我的程序以管理员身份运行Windows 7的 您需要修改嵌入到程序中的清单 这适用于 Visual Studio 2008 及更高版本 项目 添加新项目 选择 应用程序清单文件 改变
  • Windows:使用 CMD(或 Java)从非特权运行特权命令

    我将有一个以管理员身份运行并侦听端口的服务 我的 GUI 程序将与管理员服务对话以获取需要管理员权限的项目 如果该服务尚未运行 我需要启动它 如何让我的 GUI 程序以管理员身份运行命令 我假设用户会被询问是否要继续 我希望我可以在 CMD

随机推荐

  • 简单通俗易懂:一个小例子完美解释Naive Bayes(朴素贝叶斯)分类器

    更多深度文章 请关注 https yq aliyun com cloud 最简单的解决方案通常是最强大的解决方案 而朴素贝叶斯就是一个很好的证明 尽管机器学习在过去几年取得了巨大的进步 但朴素贝叶斯已被证明不仅简单 而且快速 准确 可靠 它
  • 从原理到代码实践

    文章目录 1 损失函数原理 1 1 Classification Error 分类错误率 1 2 均方差损失 1 3 交叉熵损失函数 1 3 1 数学原理 1 3 2 代码实现 对于图像分类任务 模型最终是通过softmax操作输出一个概率
  • Java: String与其他数据的相互转化

    1 java lang包中的Byte Short Long Float Double类调用相应的类方法 将由 数字 字符组成的字符序列转化为相应的基本数据类型 public static byte parseByte String s th
  • 如何制作点餐小程序?

    随着移动互联网的发展 点餐小程序的出现越来越受到大家的欢迎 它方便快捷 可以随时随地点餐 特别是在疫情期间更受到了用户的喜爱 那么 如何制作一个点餐小程序呢 下面将会简单介绍一下步骤 并通过一个具体案例来解析运用了哪些技巧提升了效果 一 确
  • 容器 - unordered_map

    unordered map是C Boost库中的内容 这里的unordered指的是散列式的存储方式 unordered库提供了两个散列映射表 unordered map和unordered multimap 利用散列表代替了二叉树的实现
  • 11. Leaf-segment 分布式ID

    Spring Cloud 微服务系列文章 点击上方合集 1 开头 当应用程序只使用单个数据库时 可以使用数据库自增的方式来生成id 这种方式既简单 查询又快 然而 当应用程序需要进行分库分表时 即将数据分散到多个数据库和数据表中 使用数据库
  • catia如何将曲面加厚变为实体_CATIA如何将片体转换为实体?

    下面介绍一种在CATIA中将片体转换为实体的方法 1 首先打开CATIA软件 再打开需要曲面操作的模型零件 2 然后进入创成式外形设计模块 在软件界面的开始菜单栏中点击开始 形状 创成式外形设计 3 接下来从实体中提取面 先使用 提取 命令
  • 设计规范-导航、弹窗、视图

    常见导航样式 根据产品的特性 导航可以混合使用 体现形式多样化 不能为了追求多样化 滥用导航类型 扁平式导航 在一级页面提供导航栏 一般处于顶部 底部 适合频繁切换的模块 方便用户在不同的模块间操作 例 微信的底部导航栏 小红书的顶部 底部
  • LADRC的学习——用simulink搭建仿真模型

    作者 墨心 时间 2019 7 25 用simulink搭建仿真模型 前面两篇博客主要讲了ADRC的相关概念和知识 并且尝试着搭建模型和仿真 之后学习了PID的相关知识 了解了Kp Ki Kd三个参数的意义 接下来 主要根据高志强教授的论文
  • java会话技术--02--服务器session共享

    java会话技术 02 服务器session共享 1 原理图 2 代码实现 2 1 接口代码 package cn zhou common web session import java io Serializable import jav
  • leetcode63. 不同路径 II

    题目 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 现在考虑网格中有障碍物 那么从左上角到右下角将会有多少条不同
  • ssd_tensorflow训练自己的模型填坑记

    人工智能开发真的很难 虽然网上有相应的教程 但在关键的环节还是要自己摸索 否则搞的一头雾水 昨天开始研究SSD Tensorflow的训练 想实现训练自己的模型 但万事开头难啊 网上找资料照着做 然而可能机器配制环境什么不一样 总是会出问题
  • 测试用例使用传统excel还是思维导图(Xmind、MindManager等)?

    一 使用感言 实习时随便使用了word文档编写测试用例 也没有人带 后来第一份正式测试工作 也没有人带测试 那时跟着大众学用思维导图写测试用例 发现思维导图非常灵活 目前使用xmind 使用思维导图后 EXCEL仅作为测试数据准备和计算公式
  • servlet与jsp的使用

    文章目录 一 servlet无法使用的问题 二 右键找不到servlet的问题 三 找不到jsp的页面 四 src目录下的java文件无法直接被servlet导入 五 cataline日志乱码问题 六 如何直接对servlet进行传参 七
  • 调试osgEarth(33)分页瓦片卸载器子节点的作用-(3)渲染遍历的帧号和时间设置-TerrainCuller赋值给可渲染图层--TerrainRenderData-Layedrawable构造

    继续调试 总结下 LayerDrawable类是通过DrawTileCommand在各种Layer上绘制的drawable 有自己的渲染状态和渲染次序 可以在VisibleLayer ImageLayer PatchLayer上绘制
  • mac 上brew加速

    修改brew源即可 open e zshrc 写入 export HOMEBREW CORE GIT REMOTE https mirrors tuna tsinghua edu cn git homebrew homebrew core
  • Python+Selenium_UI自动化操作(10)——判断元素是否可见

    UI自动化 判断元素是否可见 练习 元素判断页面元素是否可见 语法 is displayed encoding utf 8 from selenium import webdriver import time unittest class
  • Unity UGUI按钮控制物体显示隐藏的小技巧

    首先我们说明一下常用的按钮控制显示隐藏的方法 Header 关闭按钮 public Button close btn Header 需要关闭的对象 public GameObject obj image void Start close b
  • Java中两种比较器的实现

    先举例说明 例一 如果要对一组数字进行排序 可以写一个排序算法实现 例如 1 4 6 5 3 8 排序后 1 3 4 5 6 8 例二 如果要对字母进行排序 则可以通过26个字母的自然顺序进行排序 例如 a f b e d c 排序后 a
  • 如何判断当前程序是否正以管理员或root权限运行

    在windows下 一般超级用户是管理员权限administrator 在linux下 一般超级用户是root windows下 使用IsUserAnAdmin 函数进行判断 linux下 使用geteuid 函数进行判断 编写一个UAC