int wd_chk_setuid(void) { char path[128]; char cmd[128]; /* check setuid bit of ifup command */ wd_get_cmd(cmd, pool_config->if_up_cmd); snprintf(path, sizeof(path), "%s/%s", pool_config->ifconfig_path, cmd); if (! has_setuid_bit(path)) { ereport(NOTICE, (errmsg("checking setuid bit of ifup command"), errdetail("ifup[%s] doesn't have setuid bit", path))); return 0; } /* check setuid bit of ifdown command */ wd_get_cmd(cmd, pool_config->if_down_cmd); snprintf(path, sizeof(path), "%s/%s", pool_config->ifconfig_path, cmd); if (! has_setuid_bit(path)) { ereport(NOTICE, (errmsg("checking setuid bit of ifdown command"), errdetail("ifdown[%s] doesn't have setuid bit", path))); return 0; } /* check setuid bit of arping command */ wd_get_cmd(cmd, pool_config->arping_cmd); snprintf(path, sizeof(path), "%s/%s", pool_config->arping_path, cmd); if (! has_setuid_bit(path)) { ereport(NOTICE, (errmsg("checking setuid bit of arping command"), errdetail("arping[%s] doesn't have setuid bit", path))); return 0; } ereport(NOTICE, (errmsg("checking setuid bit of required commands"), errdetail("all commands have proper setuid bit"))); return 1; }
int wd_chk_setuid(void) { char path[128]; char cmd[128]; /* check setuid bit of ifup command */ wd_get_cmd(cmd, pool_config->if_up_cmd); snprintf(path, sizeof(path), "%s/%s", pool_config->ifconfig_path, cmd); if (! has_setuid_bit(path)) { pool_log("wd_chk_setuid: ifup[%s] doesn't have setuid bit", path); return 0; } /* check setuid bit of ifdown command */ wd_get_cmd(cmd, pool_config->if_down_cmd); snprintf(path, sizeof(path), "%s/%s", pool_config->ifconfig_path, cmd); if (! has_setuid_bit(path)) { pool_log("wd_chk_setuid: ifdown[%s] doesn't have setuid bit", path); return 0; } /* check setuid bit of arping command */ wd_get_cmd(cmd, pool_config->arping_cmd); snprintf(path, sizeof(path), "%s/%s", pool_config->arping_path, cmd); if (! has_setuid_bit(path)) { pool_log("wd_chk_setuid: arping[%s] doesn't have setuid bit", path); return 0; } pool_log("wd_chk_setuid all commands have setuid bit"); return 1; }