程序获取linux的root权限

文件读写操作需要进入不同的目录,如果不是root权限下很多目录是不被允许操作的。

例子一、获取root权限

#include <stdio.h>  

#include <stdlib.h>  
#include <unistd.h>  
#define BUFFSIZE 1024  
  
/* 
 * usually euid is the uid who run the program 
 * but when stick is setted to the program 
 * euid is the uid or the program's owner 
 */  
int main(int argc, char *argv[]) {  
    char *cmd = malloc(BUFFSIZE);  
    // set uid and gid to euid and egid  
    setuid(geteuid());  
    setgid(getegid());  
    cmd = argv[1];  
    int i = 0;  
    for(i = 0;i < argc - 1;i++) {  
        argv[i] = argv[i+1];  
    }  
    argv[argc-1] = NULL;  
    // search $PATH find this cmd and run it with pars:argv  
    if (execvp(cmd, argv)) {  
        printf("error");  
        free(cmd);  
        exit(1);  
    }  
    free(cmd);  
    return 0;

}

操作:

编译好了执行:./test ls /home

展示home目录里的信息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值