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

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

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

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

    推荐阅读
  • 被征地农民养老保险主要措施(被征地农民养老保险是什么)

    目标是为因依法征地而失去土地的农民年老此后,提供长期可靠的基本生活保障。一个结算年度内,起付标准以上,住院医疗费用8万元以内,由基本医疗保险统筹基金与个人共同负担。三)、去世后,其家属在30日内携带其死亡证明、火化证明、亲属关系证明,申领其丧葬费,标准为4个月上年度全省在岗职工月平均报酬。

  • 粤a车牌竞拍历史(3月粤A车牌竞拍指南来了)

    在竞价举行当日,登陆竞价官网进行报价。单位和个人在同一时间分别竞价。逾期不提出复核申请的,视为无异议。

  • 增值税专用发票部分红冲流程(增值税专用发票红冲怎么操作)

    增值税专用发票部分红冲流程纸质专票红冲。最近很多企业咨询增值税专用,首先我们要先开红字信息表,找到发票管理,红字信息表,点开纸质专票红冲。之后相应的红字发票信息就会出现,点击打印即可然后打印到发票上就可以了。

  • 江苏泰州靖江市第一中学(微靖江谢谢你靖江一中)

    3月,学校迁回原址办学,校名为靖江县立初级中学。12月,季市分部独立办学,更名为私立靖江县季市初级中学。1952年8月,学校更名为靖江县初级中学。8月,靖江市东郊中学创办。一中高中部整合靖江市第二中学高中部,搬迁至城北园区,定名为靖江市第一高级中学。2011年8月,靖江市季市中学停招高中班,整体并入靖江市第一高级中学。至此,原靖江市一中、原靖江市二中、原靖江市季市中学全部撤销拆除,靖江市第一高级中学正式成立。

  • 骨灰盒可以带上飞机吗(有什么规定的)

    以下内容希望对你有帮助!但死者家应带上相关死亡证明书,在机场安检时出示,后将骨灰盒通过X光检查。在X光检查时没发现异物的情况下,安检人员不会开盒检查。后可将骨灰盒直接带上飞机。骨灰作为非托运行李带上客舱的前提条件是不引起其他旅客不快,所以通常航空公司会规定应作为托运行李运输。

  • 如何正确使用粉底乳 如何正确使用粉底乳步骤

    额头上的粉底液要从中间往两侧轻抹,眼周轻点,下巴、人中、鼻子要从下往上涂。

  • 排骨焖饭的各种做法(排骨焖饭最好吃的做法)

    欢迎在下方留言分享您对这道美食的建议。

  • 捞拌什锦做法图解(这样做很好吃)

    以下内容大家不妨参考一二希望能帮到您!捞拌什锦做法图解准备材料:黄瓜一根、豆腐皮半张、鸡蛋一个、食用油、盐、生抽、酱油、花椒油、麻辣油。锅里烧开水,把切好的豆腐丝放进去煮30炒左右,烫去豆腥味,然后捞出过凉沥水备用。把黄瓜切成细丝。平底锅上火烧热,放少许食用油,把鸡蛋打散,倒进锅里,摊成一个鸡蛋皮。

  • 十大养不死的热带鱼(轻松养活的热带鱼)

    实际饲养可适当调整。四带无须魮身上有四条明显的黑线,生性活泼好动。从弱酸~弱碱的水都可以生存,很好饲养,寿命约3~5年。要注意的是,避免与具有长鳍的鱼混养,不然很可能会咬掉其他鱼的鱼鳍。唐鱼(红尾鱼)因为红色的尾巴才又被称作「红尾鱼」。孔雀鱼孔雀鱼可以说是热带鱼中名气最大的了。跟月光鱼一样,孔雀鱼也是胎生。繁殖能力非常强。我养了3条孔雀鱼,短短一年的时间便增加到了50多条。

  • 桂花移栽最佳方法(桂花的移栽方法和注意事项)

    不过,桂花具体的移栽的时间,还是要根据养殖者自己的安排来进行了,只要是可以达到移栽的目的即可。如果桂花的树苗,高度在1米以上,可以挖坎进行栽植,大小可以根据株型来决定,最好是可以挖一个排灌沟。其次就是移栽苗的选座位,需要选择生长良好的、健壮的无病虫害的树苗。