IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    获取Root权限的钩子

    Sun发表于 2013-03-07 02:29:30
    love 0

    有时候我们维护一些服务需要用到root权限这个时候如果你是非Root该怎么办呢

    以前公司的做法是给维护人员开普通用户,个别命令会调用一个钩子拿到root权限在去执行

    代码寥寥无几

    #include 
    #include 
    #include 
    #include types.h><span>
    #include 
     
    int main(int argc, char **argv)
    {
            int i;
            int len;
            char *cmd = NULL, *prog = "";
            int ret;
     
        if (0 != setuid(0)) {
                printf("ERROR: can not setuid\n");
                exit(1);
        }
     
        len = strlen(prog);
        for (i=1; i<argc; i++) {
                len += 1 + strlen(argv[i]);
        }
     
        cmd = (char *) malloc(len+1);
        memset(cmd, 0, len+1);
        strcat(cmd, prog);
        for (i=1; i<argc; i++) {
                strcat(cmd, " ");
                strcat(cmd, argv[i]);
        }
     
        ret = system(cmd);
        return ret;
    }
    # gcc exec.c -o exec
    # chmod 4011 exec
    # ./exec whoami
    ##result is root


沪ICP备19023445号-2号
友情链接