xref: /illumos-gate/usr/src/head/auth_attr.h (revision ba3594ba)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
57c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
67c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
77c478bd9Sstevel@tonic-gate  * with the License.
87c478bd9Sstevel@tonic-gate  *
97c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
117c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
127c478bd9Sstevel@tonic-gate  * and limitations under the License.
137c478bd9Sstevel@tonic-gate  *
147c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
157c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
177c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
187c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bd9Sstevel@tonic-gate  *
207c478bd9Sstevel@tonic-gate  * CDDL HEADER END
217c478bd9Sstevel@tonic-gate  */
227c478bd9Sstevel@tonic-gate /*
23*ba3594baSGarrett D'Amore  * Copyright 2014 Garrett D'Amore <garrett@damore.org>
247c478bd9Sstevel@tonic-gate  * Copyright (c) 1999 by Sun Microsystems, Inc. All rights reserved.
257c478bd9Sstevel@tonic-gate  */
267c478bd9Sstevel@tonic-gate 
277c478bd9Sstevel@tonic-gate #ifndef	_AUTH_ATTR_H
287c478bd9Sstevel@tonic-gate #define	_AUTH_ATTR_H
297c478bd9Sstevel@tonic-gate 
307c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
317c478bd9Sstevel@tonic-gate extern "C" {
327c478bd9Sstevel@tonic-gate #endif
337c478bd9Sstevel@tonic-gate 
347c478bd9Sstevel@tonic-gate #include <sys/types.h>
357c478bd9Sstevel@tonic-gate #include <secdb.h>
367c478bd9Sstevel@tonic-gate 
377c478bd9Sstevel@tonic-gate /*
387c478bd9Sstevel@tonic-gate  * Some macros used internally by the nsswitch code
397c478bd9Sstevel@tonic-gate  */
407c478bd9Sstevel@tonic-gate #define	AUTH_MMAPLEN			1024
417c478bd9Sstevel@tonic-gate #define	AUTH_POLICY			"/etc/security/policy.conf"
427c478bd9Sstevel@tonic-gate #define	DEF_AUTH			"AUTHS_GRANTED="
437c478bd9Sstevel@tonic-gate #define	AUTHATTR_FILENAME		"/etc/security/auth_attr"
447c478bd9Sstevel@tonic-gate #define	AUTHATTR_DB_NAME		"auth_attr.org_dir"
457c478bd9Sstevel@tonic-gate #define	AUTHATTR_DB_NCOL		6	/* total columns */
467c478bd9Sstevel@tonic-gate #define	AUTHATTR_DB_NKEYCOL		1	/* total searchable columns */
477c478bd9Sstevel@tonic-gate #define	AUTHATTR_DB_TBLT		"auth_attr_tbl"
487c478bd9Sstevel@tonic-gate #define	AUTHATTR_NAME_DEFAULT_KW	"nobody"
497c478bd9Sstevel@tonic-gate 
507c478bd9Sstevel@tonic-gate #define	AUTHATTR_COL0_KW		"name"
517c478bd9Sstevel@tonic-gate #define	AUTHATTR_COL1_KW		"res1"
527c478bd9Sstevel@tonic-gate #define	AUTHATTR_COL2_KW		"res2"
537c478bd9Sstevel@tonic-gate #define	AUTHATTR_COL3_KW		"short_desc"
547c478bd9Sstevel@tonic-gate #define	AUTHATTR_COL4_KW		"long_desc"
557c478bd9Sstevel@tonic-gate #define	AUTHATTR_COL5_KW		"attr"
567c478bd9Sstevel@tonic-gate 
577c478bd9Sstevel@tonic-gate /*
587c478bd9Sstevel@tonic-gate  * indices of searchable columns
597c478bd9Sstevel@tonic-gate  */
607c478bd9Sstevel@tonic-gate #define	AUTHATTR_KEYCOL0		0	/* name */
617c478bd9Sstevel@tonic-gate 
627c478bd9Sstevel@tonic-gate 
637c478bd9Sstevel@tonic-gate /*
647c478bd9Sstevel@tonic-gate  * Key words used in the auth_attr database
657c478bd9Sstevel@tonic-gate  */
667c478bd9Sstevel@tonic-gate #define	AUTHATTR_HELP_KW		"help"
677c478bd9Sstevel@tonic-gate 
687c478bd9Sstevel@tonic-gate /*
697c478bd9Sstevel@tonic-gate  * Nsswitch internal representation of authorization attributes.
707c478bd9Sstevel@tonic-gate  */
717c478bd9Sstevel@tonic-gate typedef struct authstr_s {
727c478bd9Sstevel@tonic-gate 	char   *name;		/* authorization name */
737c478bd9Sstevel@tonic-gate 	char   *res1;		/* reserved for future use */
747c478bd9Sstevel@tonic-gate 	char   *res2;		/* reserved for future use */
757c478bd9Sstevel@tonic-gate 	char   *short_desc;	/* short description */
767c478bd9Sstevel@tonic-gate 	char   *long_desc;	/* long description */
777c478bd9Sstevel@tonic-gate 	char   *attr;		/* string of key-value pair attributes */
787c478bd9Sstevel@tonic-gate } authstr_t;
797c478bd9Sstevel@tonic-gate 
807c478bd9Sstevel@tonic-gate /*
817c478bd9Sstevel@tonic-gate  * API representation of authorization attributes.
827c478bd9Sstevel@tonic-gate  */
837c478bd9Sstevel@tonic-gate typedef struct authattr_s {
847c478bd9Sstevel@tonic-gate 	char   *name;		/* authorization name */
857c478bd9Sstevel@tonic-gate 	char   *res1;		/* reserved for future use */
867c478bd9Sstevel@tonic-gate 	char   *res2;		/* reserved for future use */
877c478bd9Sstevel@tonic-gate 	char   *short_desc;	/* short description */
887c478bd9Sstevel@tonic-gate 	char   *long_desc;	/* long description */
897c478bd9Sstevel@tonic-gate 	kva_t  *attr;		/* array of key-value pair attributes */
907c478bd9Sstevel@tonic-gate } authattr_t;
917c478bd9Sstevel@tonic-gate 
927c478bd9Sstevel@tonic-gate extern authattr_t *getauthnam(const char *);
937c478bd9Sstevel@tonic-gate extern authattr_t *getauthattr(void);
947c478bd9Sstevel@tonic-gate extern void setauthattr(void);
957c478bd9Sstevel@tonic-gate extern void endauthattr(void);
967c478bd9Sstevel@tonic-gate extern void free_authattr(authattr_t *);
977c478bd9Sstevel@tonic-gate extern int chkauthattr(const char *, const char *);
987c478bd9Sstevel@tonic-gate 
997c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
1007c478bd9Sstevel@tonic-gate }
1017c478bd9Sstevel@tonic-gate #endif
1027c478bd9Sstevel@tonic-gate 
1037c478bd9Sstevel@tonic-gate #endif	/* _AUTH_ATTR_H */
104