doas.h (1467B)
1 /* $OpenBSD: doas.h,v 1.18 2021/09/07 13:46:07 jcs Exp $ */ 2 /* 3 * Copyright (c) 2015 Ted Unangst <tedu@openbsd.org> 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 18 struct rule { 19 int action; 20 int options; 21 const char *ident; 22 const char *target; 23 const char *cmd; 24 const char **cmdargs; 25 const char **envlist; 26 }; 27 28 extern struct rule **rules; 29 extern size_t nrules; 30 extern int parse_error; 31 32 extern const char *safepath; 33 34 struct passwd; 35 36 char **prepenv(const struct rule *, const struct passwd *, 37 const struct passwd *); 38 39 int openpersist(int *valid); 40 int setpersist(int fd); 41 int clearpersist(void); 42 43 #define PERMIT 1 44 #define DENY 2 45 46 #define NOPASS 0x1 47 #define KEEPENV 0x2 48 #define PERSIST 0x4 49 #define NOLOG 0x8 50 51 #define AUTH_FAILED -1 52 #define AUTH_OK 0 53 #define AUTH_RETRIES 3