File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sudo / plugins / sudoers / defaults.h
Revision 1.1.1.5 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 16:12:54 2014 UTC (10 years, 1 month ago) by misho
Branches: sudo, MAIN
CVS tags: v1_8_10p3_0, v1_8_10p3, HEAD
sudo v 1.8.10p3

    1: /*
    2:  * Copyright (c) 1999-2005, 2008-2013
    3:  *	Todd C. Miller <Todd.Miller@courtesan.com>
    4:  *
    5:  * Permission to use, copy, modify, and distribute this software for any
    6:  * purpose with or without fee is hereby granted, provided that the above
    7:  * copyright notice and this permission notice appear in all copies.
    8:  *
    9:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
   10:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
   11:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
   12:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
   13:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
   14:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
   15:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
   16:  *
   17:  * Sponsored in part by the Defense Advanced Research Projects
   18:  * Agency (DARPA) and Air Force Research Laboratory, Air Force
   19:  * Materiel Command, USAF, under agreement number F39502-99-1-0512.
   20:  */
   21: 
   22: #ifndef _SUDOERS_DEFAULTS_H
   23: #define _SUDOERS_DEFAULTS_H
   24: 
   25: #include <def_data.h>
   26: 
   27: struct list_member {
   28:     SLIST_ENTRY(list_member) entries;
   29:     char *value;
   30: };
   31: 
   32: SLIST_HEAD(list_members, list_member);
   33: 
   34: enum list_ops {
   35:     add,
   36:     delete,
   37:     freeall
   38: };
   39: 
   40: /* Mapping of tuple string value to enum def_tuple. */
   41: struct def_values {
   42:     char *sval;		/* string value */
   43:     enum def_tuple nval;/* numeric value */
   44: };
   45: 
   46: /*
   47:  * Structure describing compile-time and run-time options.
   48:  */
   49: struct sudo_defs_types {
   50:     char *name;
   51:     int type;
   52:     char *desc;
   53:     struct def_values *values;
   54:     int (*callback)(const char *);
   55:     union {
   56: 	int flag;
   57: 	int ival;
   58: 	unsigned int uival;
   59: 	double fval;
   60: 	enum def_tuple tuple;
   61: 	char *str;
   62: 	mode_t mode;
   63: 	struct list_members list;
   64:     } sd_un;
   65: };
   66: 
   67: /*
   68:  * Four types of defaults: strings, integers, and flags.
   69:  * Also, T_INT, T_FLOAT or T_STR may be ANDed with T_BOOL to indicate that
   70:  * a value is not required.  Flags are boolean by nature...
   71:  */
   72: #undef T_INT
   73: #define T_INT		0x001
   74: #undef T_UINT
   75: #define T_UINT		0x002
   76: #undef T_STR
   77: #define T_STR		0x003
   78: #undef T_FLAG
   79: #define T_FLAG		0x004
   80: #undef T_MODE
   81: #define T_MODE		0x005
   82: #undef T_LIST
   83: #define T_LIST		0x006
   84: #undef T_LOGFAC
   85: #define T_LOGFAC	0x007
   86: #undef T_LOGPRI
   87: #define T_LOGPRI	0x008
   88: #undef T_TUPLE
   89: #define T_TUPLE		0x009
   90: #undef T_FLOAT
   91: #define T_FLOAT		0x010
   92: #undef T_MASK
   93: #define T_MASK		0x0FF
   94: #undef T_BOOL
   95: #define T_BOOL		0x100
   96: #undef T_PATH
   97: #define T_PATH		0x200
   98: 
   99: /*
  100:  * Argument to update_defaults() and check_defaults()
  101:  */
  102: #define SETDEF_GENERIC	0x01
  103: #define	SETDEF_HOST	0x02
  104: #define	SETDEF_USER	0x04
  105: #define	SETDEF_RUNAS	0x08
  106: #define	SETDEF_CMND	0x10
  107: #define SETDEF_ALL	(SETDEF_GENERIC|SETDEF_HOST|SETDEF_USER|SETDEF_RUNAS|SETDEF_CMND)
  108: 
  109: /*
  110:  * Prototypes
  111:  */
  112: void dump_default(void);
  113: void init_defaults(void);
  114: bool set_default(char *var, char *val, int op);
  115: bool update_defaults(int what);
  116: bool check_defaults(int what, bool quiet);
  117: 
  118: extern struct sudo_defs_types sudo_defs_table[];
  119: 
  120: #endif /* _SUDOERS_DEFAULTS_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>