pid ppid uid euid gid egid

pid --- 进程号

ppid --- 父进程号

uid --- 用户id, 也就是该进程的所有者id
euid --- 有效用户id,

uid为文件的执行者,而euid为文件的所有者,ps命令中看到的用户为文件的所有者。

1. 用户空间获取pid, uid, euid,gid方法:

示例代码如下:

#include <stdio.h>
#include <unistd.h>

int main (int argc, char **argv)
{
        pid_t pid;
        pid = getpid();

        pid_t ppid;
        ppid = getppid();

        fprintf(stdout, "pid = %d, ppid = %d\n", pid, ppid);

        uid_t uid, euid;
        gid_t gid, egid;

        current->pid;


        uid = getuid(); 
        euid = geteuid(); 
        gid = getgid(); 
        egid = getegid(); 

        fprintf(stdout, "uid = %d, euid = %d\n", uid, euid); 
        fprintf(stdout, "gid = %d, egid = %d\n", gid, egid); 
        sleep(500); 
        return 0;
}

2. 内核空间驱动程序中, 可以使用如下函数获得uid, euid, gid, egid, pid, ppid.

获得当前进程的uid:

current_uid()
获得当前进程的euid:
current_euid()

获取当前进程的父进程pid:

current->pid;
获得当前进程的命令名:
current->comm;
都包含在头文件linux/sched.h 中。

以前老的版本中,task_struct 结构体终究包含uid, 和 euid, 新版本中,已经移除了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值