亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wrapper.c

?? linux下的撥號程序rp-pppoe.3.7
?? C
字號:
/* -*-Mode: C;-*- *//************************************************************************* wrapper.c** C wrapper designed to run SUID root for controlling PPPoE connections.** Copyright (C) 2005 by Roaring Penguin Software Inc.** LIC: GPL** This program may be distributed under the terms of the GNU General* Public License, Version 2, or (at your option) any later version.***********************************************************************/static char const RCSID[] ="$Id: wrapper.c,v 1.10 2005/08/09 02:49:15 dfs Exp $";#define _SVID_SOURCE 1 /* For putenv */#define _POSIX_SOURCE 1 /* For fileno */#define _BSD_SOURCE 1 /* For setreuid */#include <stdlib.h>#include <string.h>#include <stdio.h>#include <errno.h>#include <sys/stat.h>#include <unistd.h>#define CONN_NAME_LEN 64#define LINELEN 512static char const *pppoe_start = PPPOE_START_PATH;static char const *pppoe_stop = PPPOE_STOP_PATH;static char const *pppoe_status = PPPOE_STATUS_PATH;/********************************************************************** *%FUNCTION: PathOK *%ARGUMENTS: * fname -- a file name. *%RETURNS: * 1 if path to fname is secure; 0 otherwise. *%DESCRIPTION: * Makes sure ownership/permissions of file and parent directories * are safe. **********************************************************************/static intPathOK(char const *fname){    char path[LINELEN];    struct stat buf;    char const *slash;    if (strlen(fname) > LINELEN) {	fprintf(stderr, "Pathname '%s' too long\n", fname);	return 0;    }    /* Must be absolute path */    if (*fname != '/') {	fprintf(stderr, "Unsafe path '%s' not absolute\n", fname);	return 0;    }    /* Check root directory */    if (stat("/", &buf) < 0) {	perror("stat");	return 0;    }    if (buf.st_uid) {	fprintf(stderr, "SECURITY ALERT: Root directory (/) not owned by root\n");	return 0;    }    if (buf.st_mode & (S_IWGRP | S_IWOTH)) {	fprintf(stderr, "SECURITY ALERT: Root directory (/) writable by group or other\n");	return 0;    }    /* Check each component */    slash = fname;    while(*slash) {	slash = strchr(slash+1, '/');	if (!slash) {	    slash = fname + strlen(fname);	}	memcpy(path, fname, slash-fname);	path[slash-fname] = 0;	if (stat(path, &buf) < 0) {	    perror("stat");	    return 0;	}	if (buf.st_uid) {	    fprintf(stderr, "SECURITY ALERT: '%s' not owned by root\n", path);	    return 0;	}	if (buf.st_mode & (S_IWGRP | S_IWOTH)) {	    fprintf(stderr, "SECURITY ALERT: '%s' writable by group or other\n",		    path);	    return 0;	}    }    return 1;}/********************************************************************** *%FUNCTION: CleanEnvironment *%ARGUMENTS: * envp -- environment passed to main *%RETURNS: * Nothing *%DESCRIPTION: * Deletes all environment variables; makes safe environment **********************************************************************/static voidCleanEnvironment(char *envp[]){    envp[0] = NULL;    putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin");}/********************************************************************** *%FUNCTION: main *%ARGUMENTS: * argc, argv -- usual suspects * Usage: pppoe-wrapper {start|stop|status} {connection_name} *%RETURNS: * Whatever pppoe-start, pppoe-stop or pppoe-status returns. *%DESCRIPTION: * Runs pppoe-start, pppoe-stop or pppoe-status on given connection if * non-root users are allowed to do it. **********************************************************************/intmain(int argc, char *argv[]){    int amRoot;    char *cp;    char fname[64+CONN_NAME_LEN];    char line[LINELEN+1];    int allowed = 0;    FILE *fp;    extern char **environ;    /* Clean out environment */    CleanEnvironment(environ);        /* Are we root? */    amRoot = (getuid() == 0);    /* Validate arguments */    if (argc != 3) {	fprintf(stderr, "Usage: %s {start|stop|status} connection_name\n",		argv[0]);	exit(1);    }    if (strcmp(argv[1], "start") &&	strcmp(argv[1], "stop") &&	strcmp(argv[1], "status")) {	fprintf(stderr, "Usage: %s {start|stop|status} connection_name\n",		argv[0]);	exit(1);    }    /* Connection name can be at most CONN_NAME_LEN chars; alpha, num, underscore */    if (strlen(argv[2]) > CONN_NAME_LEN) {	fprintf(stderr, "%s: Connection name '%s' too long.\n",		argv[0], argv[2]);	exit(1);    }    for (cp = argv[2]; *cp; cp++) {	if (!strchr("abcdefghijklmnopqrstuvwxyz"		    "ABCDEFGHIJKLMNOPQRSTUVWXYZ"		    "0123456789_-", *cp)) {	    fprintf(stderr, "%s: Connection name '%s' contains illegal character '%c'\n", argv[0], argv[2], *cp);	    exit(1);	}    }    /* Open the connection file */    sprintf(fname, "/etc/ppp/rp-pppoe-gui/conf.%s", argv[2]);    /* Check path sanity */    if (!PathOK(fname)) {	exit(1);    }    fp = fopen(fname, "r");    if (!fp) {	fprintf(stderr, "%s: Could not open '%s': %s\n",		argv[0], fname, strerror(errno));	exit(1);    }    /* Check if non-root users can control it */    if (amRoot) {	allowed = 1;    } else {	while (!feof(fp)) {	    if (!fgets(line, LINELEN, fp)) {		break;	    }	    if (!strcmp(line, "NONROOT=OK\n")) {		allowed = 1;		break;	    }	}    }    fclose(fp);    if (!allowed) {	fprintf(stderr, "%s: Non-root users are not permitted to control connection '%s'\n", argv[0], argv[2]);	exit(1);    }    /* Become root with setuid() to defeat is-root checks in shell scripts */    if (setreuid(0, 0) < 0) {	perror("setreuid");	exit(1);    }           /* It's OK -- do it.  */    if (!strcmp(argv[1], "start")) {	if (!PathOK(pppoe_start)) exit(1);	execl(pppoe_start, "pppoe-start", fname, NULL);    } else if (!strcmp(argv[1], "stop")) {	if (!PathOK(pppoe_stop)) exit(1);	execl(pppoe_stop, "pppoe-stop", fname, NULL);    } else {	if (!PathOK(pppoe_status)) exit(1);	execl(pppoe_status, "pppoe-status", fname, NULL);    }    fprintf(stderr, "%s: execl: %s\n", argv[0], strerror(errno));    exit(1);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色图片你懂的| 韩国av一区二区三区在线观看| 欧美tickling网站挠脚心| 色婷婷综合久色| 91久久一区二区| 在线观看一区不卡| 色婷婷国产精品| 欧美性猛交xxxxxxxx| 欧美日韩高清在线播放| 欧美久久久久免费| 日韩无一区二区| 久久午夜老司机| 国产欧美日本一区视频| 国产精品午夜在线观看| 中文字幕在线观看不卡| 一区二区三区视频在线看| 亚洲一区二区三区美女| 日韩中文字幕一区二区三区| 老汉av免费一区二区三区| 国产综合久久久久久久久久久久| 国产a视频精品免费观看| 成人激情午夜影院| 欧美亚日韩国产aⅴ精品中极品| 欧美色倩网站大全免费| 欧美精品久久久久久久多人混战| 精品国产一区二区三区四区四| 国产亚洲综合在线| 亚洲欧美日韩在线| 日韩制服丝袜av| 高清成人免费视频| 91精品福利视频| 精品国产免费久久 | 99国产精品久久久久久久久久久| 91丝袜高跟美女视频| 3atv在线一区二区三区| 国产欧美精品一区| 午夜精品一区二区三区三上悠亚| 国产专区欧美精品| 欧美三级韩国三级日本三斤| 久久这里只精品最新地址| 亚洲精品国产成人久久av盗摄 | 久久综合久久鬼色中文字| 亚洲国产精品成人综合| 性做久久久久久| 成人一级片网址| 欧美一区二区三区在线观看视频| 欧美国产1区2区| 久久国产精品区| 色婷婷av久久久久久久| 久久久精品人体av艺术| 亚洲444eee在线观看| 粉嫩一区二区三区在线看| 欧美日韩一区精品| 国产精品久久99| 国产在线国偷精品免费看| 欧美中文字幕一区二区三区 | 日本一区二区三区视频视频| 亚州成人在线电影| 91网站黄www| 国产精品免费观看视频| 麻豆精品一二三| 欧美日韩一二三区| 一区二区三区在线观看国产| 成人h动漫精品| 中文字幕av一区二区三区免费看| 免费视频一区二区| 欧美日韩激情一区| 亚洲一区视频在线| 色哟哟亚洲精品| 亚洲天堂网中文字| av在线一区二区三区| 中文天堂在线一区| 国产美女精品一区二区三区| 精品女同一区二区| 免费高清视频精品| 欧美一区二区成人6969| 视频一区二区三区中文字幕| 欧美日韩国产另类一区| 一区二区日韩av| 欧美日韩久久久久久| 亚洲图片自拍偷拍| 欧美日韩一区二区三区免费看| 一区二区三区四区在线免费观看| 99久久99久久综合| 最近中文字幕一区二区三区| 91香蕉视频污| 天堂久久久久va久久久久| 91美女在线看| 亚洲欧美一区二区三区国产精品| 91福利资源站| 视频在线在亚洲| www成人在线观看| 国产成人综合在线播放| 中文字幕在线不卡国产视频| 91同城在线观看| 首页国产丝袜综合| 欧美成人女星排名| 国产成人精品www牛牛影视| 国产精品萝li| 88在线观看91蜜桃国自产| 麻豆一区二区99久久久久| 久久亚洲欧美国产精品乐播 | 亚洲一区二区三区三| 欧美一区二区私人影院日本| 国产91露脸合集magnet| 亚洲男人都懂的| 欧美一级视频精品观看| 国产69精品久久久久毛片| 亚洲狼人国产精品| 日韩欧美精品在线| av激情成人网| 免费在线观看日韩欧美| 国产精品网友自拍| 欧美另类z0zxhd电影| 成人午夜伦理影院| 日本美女一区二区| 日韩毛片高清在线播放| 日韩视频永久免费| 一本色道亚洲精品aⅴ| 老司机午夜精品99久久| 亚洲视频小说图片| 日韩欧美在线123| 色国产综合视频| 国产精品一级片| 亚洲国产精品久久艾草纯爱 | 国产精品嫩草久久久久| 欧美精品三级日韩久久| av亚洲精华国产精华精华| 美洲天堂一区二卡三卡四卡视频| 自拍偷在线精品自拍偷无码专区| 日韩一区二区免费高清| 91福利在线播放| av午夜一区麻豆| 国产乱码一区二区三区| 午夜精品视频一区| 亚洲色图另类专区| 国产农村妇女毛片精品久久麻豆| 日韩一级欧美一级| 欧美日本在线看| 在线亚洲免费视频| 91一区二区在线| youjizz国产精品| 高清beeg欧美| 国产东北露脸精品视频| 精品一区二区三区在线播放| 日日夜夜一区二区| 日韩在线卡一卡二| 丝袜美腿亚洲综合| 婷婷久久综合九色国产成人| 亚洲成人综合在线| 亚洲综合小说图片| 一区二区三区在线影院| 亚洲精品亚洲人成人网| 亚洲制服丝袜一区| 中文字幕亚洲精品在线观看| 国产精品女人毛片| 国产精品久久久久久一区二区三区 | 26uuu亚洲婷婷狠狠天堂| 欧美一区二区在线视频| 欧美一区2区视频在线观看| 91精品在线观看入口| 91精品综合久久久久久| 这里只有精品电影| 日韩欧美黄色影院| 久久综合色一综合色88| 欧美国产一区二区在线观看 | 国产精品免费人成网站| 欧美国产丝袜视频| 亚洲天堂av一区| 亚洲sss视频在线视频| 视频一区在线视频| 韩国av一区二区三区四区| 成人激情免费视频| 在线观看一区不卡| 日韩三级视频在线看| 国产亚洲精品资源在线26u| 国产免费观看久久| 亚洲影院免费观看| 久久99精品久久久| 成人av免费在线观看| 欧洲视频一区二区| 欧美v日韩v国产v| 中文字幕av一区 二区| 亚洲黄色片在线观看| 麻豆一区二区99久久久久| 成人不卡免费av| 欧美电影一区二区三区| 久久蜜桃av一区二区天堂| 亚洲欧美韩国综合色| 美女视频黄免费的久久| 91在线视频观看| 欧美tickling网站挠脚心| 成人免费在线视频观看| 日韩精品91亚洲二区在线观看| 国产成人免费av在线| 欧美视频精品在线观看| 久久女同精品一区二区| 一区二区高清在线| 国产精品一区二区不卡| 欧美美女激情18p|