/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. */ #ifndef _PROF_ATTR_H #define _PROF_ATTR_H #ifdef __cplusplus extern "C" { #endif #include #include #define PROFATTR_FILENAME "/etc/security/prof_attr" #define PROFATTR_DB_NAME "prof_attr.org_dir" #define PROFATTR_DB_NCOL 5 /* total columns */ #define PROFATTR_DB_NKEYCOL 1 /* total searchable columns */ #define PROFATTR_DB_TBLT "prof_attr_tbl" #define PROFATTR_NAME_DEFAULT_KW "nobody" #define PROFATTR_COL0_KW "name" #define PROFATTR_COL1_KW "res1" #define PROFATTR_COL2_KW "res2" #define PROFATTR_COL3_KW "desc" #define PROFATTR_COL4_KW "attr" #define PROFILE_STOP "Stop" #define DEF_PROF "PROFS_GRANTED=" #define DEF_CONSUSER "CONSOLE_USER=" #define MAXPROFS 4096 /* * indices of searchable columns */ #define PROFATTR_KEYCOL0 0 /* name */ /* * Key words used in the prof_attr database */ #define PROFATTR_AUTHS_KW "auths" #define PROFATTR_PROFS_KW "profiles" #define PROFATTR_PRIVS_KW "privs" /* * Nsswitch representation of profile attributes. */ typedef struct profstr_s { char *name; /* proforization name */ char *res1; /* RESERVED */ char *res2; /* RESERVED */ char *desc; /* description */ char *attr; /* string of key-value pair attributes */ } profstr_t; typedef struct profattr_s { char *name; /* proforization name */ char *res1; /* RESERVED */ char *res2; /* RESERVED */ char *desc; /* description */ kva_t *attr; /* array of key-value pair attributes */ } profattr_t; #ifdef __STDC__ extern profattr_t *getprofnam(const char *); extern profattr_t *getprofattr(void); extern void getproflist(const char *, char **, int *); extern void setprofattr(void); extern void endprofattr(void); extern void free_profattr(profattr_t *); extern void free_proflist(char **, int); #else /* not __STDC__ */ extern profattr_t *getprofnam(); extern profattr_t *getprofattr(); extern void getproflist(); extern int setprofattr(); extern int endprofattr(); extern void free_profattr(); extern void free_proflist(); #endif #ifdef __cplusplus } #endif #endif /* _PROF_ATTR_H */