有时候,我们需要知道当前程序是否以管理员身份运行,以便执行一些需要特殊权限的操作。
在github上找到了一个解决方案:
windows 下的判断很好理解,用户属于 administrator 角色。但是 linux 下的geteuid() == 0
是什么意思?排列和组合的区别
linux 系统中每个进程都有2个 id,分别为用户 id(uid)和有效用户 id(euid)。
root的用户 id确实是0。
那为什么要搞2个id呢?
因为linux系统有一个功能:如果一个程序被设置了 tuid
位,那么它无论被哪个诚信考试作文用户执行,都会具备 tuid 对应用户的权限,进程的 euid 也会变成对应用户的 uid。
我们来试验一下,默认情况下demo1用户无法操作1.txt,因为文件是由root用户创建的,如下图:
这时我们再次运行程序,发现1.txt操作成功,而且e脚痛风怎么办uid也变成0(root用户)了。
结论:好听又沙雕的名字
综上,github 上给的解决方案非常完美,如果你要判断当前用户是否root,则需要使用getuid() == 0
。
到此这篇关于如何判断 .net core 应用程序是以管理员身份运行的的文章就介绍到这了,更多相关判断 .net core 应用程序是以管理员身份运行内容请搜索www.887551.com以前的文章或继续浏览下面现代爱国诗的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-06 00:49:39,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/aab53ee53d9222c1158c30171d8f4f4b.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:如何判断 .NET Core 应用程序以管理员身份运行的.doc
本文 PDF 下载地址:如何判断 .NET Core 应用程序以管理员身份运行的.pdf
留言与评论(共有 0 条评论) |