一、代码
#include<stdio.h>
#include<stdlib.h>
#include<proc/readproc.h>
int main()
{
struct PROCTAB *pt;
struct proc_t *p;
char *cmd;
pt=malloc(sizeof(struct PROCTAB));
p=malloc(sizeof(struct proc_t));
pt=openproc(0x0028);
while(readproc(pt,p)!=NULL){
if(p->state=='R'){
cmd=p->cmd;
if(cmd[0]=='w' && cmd[1]=='h' && cmd[2]=='o' && cmd[3]=='a' && cmd[4]=='m' && cmd[5]=='i' && cmd[6]=='\0'){
printf("%s\n",p->ruser);
return 0;
}
}
}
return 0;
}
二、在用户1中验证程序
在用户1中编译代码,并运行,与系统自带的whoami进行比较
三、在root用户中验证程序
在root用户中运行程序,与系统自带的whoami进行比较
四 、在用户2中验证程序
将程序拷贝到用户2中
在用户2中运行程序,与系统自带的whoami进行比较