1 /* $OpenBSD: doas.h,v 1.17 2021/01/27 17:02:50 millert 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_errors; 31 32 extern const char *formerpath; 33 34 struct passwd; 35 36 char **prepenv(const struct rule *, const struct passwd *, 37 const struct passwd *); 38 39 #define PERMIT 1 40 #define DENY 2 41 42 #define NOPASS 0x1 43 #define KEEPENV 0x2 44 #define PERSIST 0x4 45 #define NOLOG 0x8 46