C 确定运行当前进程的用户
我只是想知道,我们如何确定当前进程是否以root用户身份运行。在google上搜索之后,我发现Linux有一个名为“current”的字段,我可以用它来确定谁在运行一个特定的进程。我试着用C 确定运行当前进程的用户,c,linux,root,C,Linux,Root,我只是想知道,我们如何确定当前进程是否以root用户身份运行。在google上搜索之后,我发现Linux有一个名为“current”的字段,我可以用它来确定谁在运行一个特定的进程。我试着用 current->uid == 0 然而,当我试图编译我的代码时,我得到了这个错误 struct task_structâ has no member named âuidâ 我做错什么了吗?此外,如果进程以root用户身份运行,uid是否始终等于零?感谢您提供了一个流程,它有3种用户ID: 1.实
current->uid == 0
然而,当我试图编译我的代码时,我得到了这个错误
struct task_structâ has no member named âuidâ
我做错什么了吗?此外,如果进程以root用户身份运行,uid是否始终等于零?感谢您提供了一个流程,它有3种用户ID: 1.实际用户ID -->大部分时间是我们是谁,是谁登录的人,而根进程有办法改变它 使用
getuid()
获取此用户ID
2.有效用户ID
-->此ID决定访问限制EXE
函数可以设置此ID,如果未设置,则此用户ID与实际用户ID相同
使用geteuid()
获取此ID
3.保存的设置用户ID
-->它通过exec
函数从有效用户ID复制。没有函数来获取这个ID的当前值。至少,我不知道
所以
如果您的意思是以root用户身份运行,那么使用
geteuid()==0
更好,这正是我的观点。当前->***变量只能从内核空间中看到。在用户空间中,您应该使用getuid()
只要使用getuid()==0
或geteuid()==0
@wildplasser我明白了。ThxBTW:getuid()和geteuid()函数实际上是系统调用,用于检查当前->[e]uid字段(对于当前进程),并将其报告回用户进程。
how can we determine if the current process is running as root or not