百摩网
当前位置: 首页 生活百科

netcore支持窗体吗(如何判断.NETCore)

时间:2023-06-07 作者: 小编 阅读量: 9 栏目名: 生活百科

有时候,我们需要知道当前程序是否以管理员身份运行,以便执行一些需要特殊权限的操作。Windows下的判断很好理解,用户属于Administrator角色。但是linux下的geteuid()==0是什么意思?setuid因为linux系统有一个功能:如果一个程序被设置了setuid位,那么它无论被哪个用户执行,都会具备setuid对应用户的权限,进程的EUID也会变成对应用户的UID。结论综上,github上给的解决方案非常完美,如果你要判断当前用户是否root,则需要使用getuid()==0。

有时候,我们需要知道当前程序是否以管理员身份运行,以便执行一些需要特殊权限的操作。

在github(https://github.com/dotnet/runtime/issues/25118#issuecomment-367407469)上找到了一个解决方案:

//需要引用nuget包Mono.Posix.NETStandardpublicstaticboolIsAdministrator=>RuntimeInformation.IsOSPlatform(OSPlatform.Windows)?newWindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator):Mono.Unix.Native.Syscall.geteuid()==0;

好了,问题解决,文章写完了。

等等!Windows 下的判断很好理解,用户属于 Administrator 角色。但是 linux 下的geteuid() == 0是什么意思?

euid

linux 系统中每个进程都有2个 ID,分别为用户 ID(uid)和有效用户 ID(euid)。

root的用户 ID确实是0。

Console.WriteLine($"UID:{Mono.Unix.Native.Syscall.getuid()}");Console.WriteLine($"EUID:{Mono.Unix.Native.Syscall.geteuid()}");

我又换成demo1用户试了一下,这2个Id也是一样的。

那为什么要搞2个Id呢?

setuid

因为linux系统有一个功能:如果一个程序被设置了 setuid 位,那么它无论被哪个用户执行,都会具备 setuid 对应用户的权限,进程的 EUID 也会变成对应用户的 UID。

Demo

我们来试验一下,默认情况下demo1用户无法操作1.txt,因为文件是由root用户创建的,如下图:

当我们使用root用户设置了 setuid 位后,可以发现程序的权限起了变化:

这时我们再次运行程序,发现1.txt操作成功,而且euid也变成0(root用户)了。

结论

综上,github 上给的解决方案非常完美,如果你要判断当前用户是否root,则需要使用getuid() == 0。

    推荐阅读
  • 染色翡翠对人体有害吗(染色翡翠手镯对人体有害吗)

    跟着小编一起来看一看吧!经过染色处理,甚至是注胶的翡翠,虽然看上去漂亮,但是内部结构已经完全受到了破坏,不属于天然翡翠的范畴,也没有什么收藏价值了。如果好看买来戴戴也无妨,但是如今造假这么“不择手段”,染料中的化学物质对人体绝对是有害无益的。如果购买的是B货翡翠手镯,那么其对人体的危害还不算大,可以戴一下。但是,如果是B+C货或者C货翡翠手镯的话,那么其对人体危害会很大,也不适合佩戴。

  • 搞笑一句话早安问候语(早安的幽默句子)

    搞笑一句话早安问候语你若成功了,吃青菜那叫养生。减肥这种事从来不会船到桥头自然直。你这体重,没到桥头船就沉了。生活不止眼前的苟且,还有前任的喜帖。时间是把杀猪刀,这话只适用于长得好看的人。它拿丑的人一点办法都没有。故事里公主都是被王子吻醒的,可现实更多的是被尿憋醒。为什么我没有一个可爱到爆炸的同桌,而我的同桌却有?没钱的时候,在家里吃野菜;有钱的时候,在酒店吃野菜。

  • 吉利汽车越滨suv图片 吉利越野车suv

    9月3日,售价11.88万元的吉利岳斌白顶开了一次。不出所料,自博瑞以来,吉利不断推出爆款车型,如博越、帝豪gl、帝豪gs等。在这种市场差异下,包括帝豪gl和朗逸、思域、速腾等合资车型在内的宾锐变得更具竞争力。或者滨瑞上市时是否会进行,目前还没有定论。动力方面,新车将搭载吉利与沃尔沃联合研发的1.5td发动机,最大功率130kW,峰值扭矩255Nm。

  • 为什么钓鱼禁用红虫(钓鱼为啥不能用红虫)

    为什么钓鱼禁用红虫?以下内容希望对你有帮助!为什么钓鱼禁用红虫通常禁止钓鱼使用红虫的是一些商业鱼塘,因为这里钓鱼通常是按时间收费,用红虫会钓的多,出鱼快,而且还会让鱼儿偏口,影响它们吃别的饲料,而且用多了还会坏水,甚至导致鱼儿生病,所以会禁止红虫活饵。其实不用活饵,也可以选择其它的饵料,只要用得好一样可以钓到鱼。

  • 张无忌版殷素素是谁(九版殷素素颜值对比)

    但殷素素没有赵敏幸运,赵敏的父兄对她宠爱有加,她自信自爱。之后由于工作中出现重大失误而被解雇,随后她转投TVB。1976年TVB第一次将《倚天屠龙记》搬上荧幕,27岁的黄淑仪在剧中扮演殷素素。歌仔戏对于小生的外貌要求很高,要求丰神俊朗有韵味。这是首次有影视剧尝试婆婆和媳妇由同一个人出演。虽然这版演员年龄整体偏大,但不妨碍它成

  • dnf疲劳药怎么获取途径(dnf疲劳药获取途径)

    另外,每天活动角色累计在线1小时,还可以获得1个50点的抗疲劳秘药。因为刷完会给疲劳药奖励,四舍五入疲劳值还会多出不少。第一次可以获得1个156点的抗疲劳秘药,后面13次每次则可以获得1个30点的疲劳药。

  • 薰衣草电视剧剧情(薰衣草电视剧剧情简介)

    薰衣草电视剧剧情梁以薰患有遗传性心脏病,青梅竹马的季晴川从小便对她照顾有加。十多年后,晴川登出“寻找薰衣草恋人”演唱会海报,并找到了以薰,几经波折,真爱战胜了病魔,奇迹降临在这对一直等待真爱的恋人身上,他们携手踏上了红毯。善良而执着的以薰不顾病情决意要迎接新生命的降临,她认为这是他们真爱的象征。正当晴川在电台贯注所有的感情献上此曲的时候,以薰拥着薰衣草的芳香飞向天国。

  • 铁尖锹头能不能带上火车(不能带上火车)

    接下来我们就一起去研究一下吧!铁尖锹头能不能带上火车铁尖锹头属于器具不允许带上火车。还有匕首、三棱刀,包括机械加工用的三棱刮刀,带有自锁装置的弹簧刀以及其他类似的单刃、双刃刀等管制刀具。管制刀具以外的,可能危及旅客人身安全的菜刀,餐刀,屠宰刀,斧子等利器,钝器。

  • 梦幻西游人物传说(揭开NPC背后隐藏身份)

    如果要讨论梦幻最富有的NPC,这个问题的答案似乎存在争议,但超级巫医绝对是冠军的有力争夺者。李善人早年航海经商,结果船被海浪打翻自己虽活下来,兄弟却惨死浪涛之中。从此以后,李善人就落下了心里阴影,夜夜不能寐。李善人一生好善乐施,收养的两个儿子却成了白眼狼,当了强盗不说还想谋夺家产。

  • 赵丽颖是毕业于哪所学校的呢(当红明星毕业院校盘点)

    我们一起去了解并探讨一下这个问题吧!谁给母校蒙羞了?