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

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。

    推荐阅读
  • pcl周决赛smg4am(PEL职业联赛S3SMG止步总决赛)

    近日,和平精英PEL职业联赛S3赛季的比赛正如火如荼的进行着,相信很多小伙伴们也是在为自己喜欢的战队呐喊助威。在第五场的海岛地图比赛中,4AM战队和SMG战队碰面,Suk在看到队伍有着占点优势下,直接指挥队友进行包抄。Suk在烟雾中,直接改用第一人称进行莽人,使用投掷物放倒两人,在绕后时遇到了正在换子弹的Monet,直接半梭子子弹将其带走,在33svan的配合下,顺利将SMG全员淘汰。

  • 短暂的休整踏上新的征程(重新起航的太平轮)

    事实上,重新剪辑的《太平轮·彼岸》结构完整而独立,也比上部收获了更多的好评。抛开上部让观众失望的元素不谈,《太平轮:彼岸》并没有出现很大硬伤,相反,不少看过电影的观众都表示惊喜。据“百度票房吧”统计,截至8月6日,上映一周的《太平轮:彼岸》内地票房累计约为4410万。由于《破风》《新步步惊心》等新片涌入市场,《捉妖记》余威尚在,《太平轮:彼岸》逐渐淡出观众视线。

  • win7怎么激活系统(win7激活系统方法)

    目前,Windows7系统仍然受到很多人的喜爱,并且大多数用户是工作组。良好的用户体验通常会赢得人们的青睐。但是在使用过程中,由于系统未激活,我们经常会感到苦恼,因此,系统总裁官网小编将教您如何激活win7系统。2)程序运行后进入界面我们直接点击“开始体验正版”3)显示激活成功后我们重启电脑4)此时右键桌面计算机点击属性即可看到当前系统已经激活了以上是怎么激活win7系统的介绍,是不是很简单,更多系统激活教程尽在系统总裁。

  • 不办离职扣工资(公司扣发工资合法吗)

    劳动者和用人单位建立了劳动关系,无论劳动者有没有办理好离职手续,用人单位都应当正常发放劳动者的工资。正常的离职手续办理流程1、首先,口头与直属上司沟通离职事项,并于沟通结束后正式递交离职申请。根据法律规定,劳动者应提前三十日以书面形式通知用人单位,在试用期内应提前三日通知用人单位。

  • 如何做草鸡炖土豆(怎么做鸡炖土豆)

    如何做草鸡炖土豆?接下来我们就一起去研究一下吧!如何做草鸡炖土豆主料:鸡肉300克、土豆350克。将土豆去皮,洗净,切成块;鸡肉洗净,也切成方块。锅中热油爆香葱段和姜片,再放入鸡块炒至呈白色时,加入酱油和少量水,用小火炖至鸡肉八成熟,加入土豆块继续炖煮。至土豆熟烂时,加盐调味即可。

  • 汽车年检真的取消了吗(有可能取消吗)

    没有取消年检,新车6年内免上线检车,且每次换标有效期为两年年检作为机动车辆的“防火墙”,是为了防止车辆出现安全隐患才存在的,因此短时间内不可能取消,接下来我们就来聊聊关于汽车年检真的取消了吗?年检作为机动车辆的“防火墙”,是为了防止车辆出现安全隐患才存在的,因此短时间内不可能取消。要是没有了年检,这些车就会更加猖狂了。通过这些可以判断出,年检是不会被取消的,要是有更好的方法才会有可能取消。

  • 三星s8可以降价吗(最便宜的三星S8来了)

    前期参与预购的韩国、美国、加拿大用户已经开始陆续收到三星S8手机,不过对于唯一采纳骁龙835的美版来说,目前还都是运营商有锁机。不过,B&H已经开始了无锁版S8/S8的预售工作,该产品支持包括CDMA在内的全网通。价格方面,其中64GB卖829.99美元,S8卖929.99美元,5月初开始发售。不过,另外一家百思买的线下渠道就要便宜不少,只是要到5月9日开始预购,其中64GBS8和S8分别卖724.99美元和824.99美元。至少,目前来看,百思买渠道的无锁美版是全球最便宜的了。

  • 写生活中幸福的句子(表达生活活幸福的经典句子推荐)

    写生活中幸福的句子时常想,自己前世肯定是一株顶着太阳幸福生活的向日葵,每天在太阳下幸福的生长,看着头顶上的小鸟唱着愉快的歌自由的飞过。渴望向日葵般的生活,就那样在阳光下简简单单的成长,只要有阳光就可以昂着头对天空很幸福的微笑。或与那些老人聊一些琐碎的生活,陪她们绣花,纳鞋,吃她们做的好吃的,听她们模糊的呓语。付诸是一种幸福,是一种源于灵魂深处的喜悦。它们的生命因此更有光彩,更显得瑰丽。

  • 保险资管行业概况(招商信诺跻身资管市场)

    公开资料显示,招商信诺人寿成立于2003年8月4日,注册资本金为28亿元,由中资股东招商银行股份有限公司及外资股东信诺北美人寿保险公司各出资50%共同发起。截至2019年3季度末,招商信诺人寿总资产已超过500亿元。纵观历年经营状况,招商信诺人寿自2016年起所实现净利润便进入持续增长态势。年报显示,招商信诺人寿2016年至2018年净利润依次实现2.21亿元、6.667亿元、10.44亿元,业绩向好。

  • 如何线下教育机构转型线上?(有什么方法)

    一对一辅导能够增强师生双方的及时互动,有助于老师双方及时发现问题,解决问题,师生双方可以随时通过互联网建立在线课程进行学习,有助于老师兼顾所有学生,实现因材施教,可以深度挖掘学生短板科目的问题,进行针对性培养。