/*
 * SPDX-License-Identifier: ISC
 *
 * Copyright (c) 1996, 1998, 1999, 2001, 2004, 2005, 2007-2021
 *	Todd C. Miller <Todd.Miller@sudo.ws>.
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * Sponsored in part by the Defense Advanced Research Projects
 * Agency (DARPA) and Air Force Research Laboratory, Air Force
 * Materiel Command, USAF, under agreement number F39502-99-1-0512.
 */

/*
 *  Pathnames to programs and files used by sudo.
 */

#ifdef HAVE_PATHS_H
# include <paths.h>
#endif /* HAVE_PATHS_H */

#ifdef HAVE_MAILLOCK_H
# include <maillock.h>
#endif /* HAVE_MAILLOCK_H */

#ifndef _PATH_DEV
# define _PATH_DEV		"/dev/"
#endif /* _PATH_DEV */

#ifndef _PATH_TTY
# define _PATH_TTY		_PATH_DEV "tty"
#endif /* _PATH_TTY */

#ifndef _PATH_DEVNULL
# define _PATH_DEVNULL		_PATH_DEV "null"
#endif /* _PATH_DEVNULL */

#ifndef _PATH_DEFPATH
# define _PATH_DEFPATH		"/usr/bin:/bin"
#endif /* _PATH_DEFPATH */

#ifndef _PATH_STDPATH
# define _PATH_STDPATH		"/usr/bin:/bin:/usr/sbin:/sbin"
#endif /* _PATH_STDPATH */

/* Use /etc/environment on AIX or Linux w/o PAM (where pam_env handles it). */
#if defined(_AIX) || (defined(__linux__) && !defined(HAVE_PAM))
# define _PATH_ENVIRONMENT	"/etc/environment"
#endif /* _PATH_ENVIRONMENT */

/*
 * The following paths are controlled via the configure script.
 */

/*
 * NOTE: _PATH_SUDO_CONF is usually overridden by the Makefile.
 */
#ifndef _PATH_SUDO_CONF
# undef _PATH_SUDO_CONF
#endif /* _PATH_SUDO_CONF */

/*
 * NOTE: _PATH_SUDOERS is usually overridden by the Makefile.
 */
#ifndef _PATH_SUDOERS
# undef _PATH_SUDOERS
#endif /* _PATH_SUDOERS */

/*
 * NOTE: _PATH_CVTSUDOERS_CONF is usually overridden by the Makefile.
 */
#ifndef _PATH_CVTSUDOERS_CONF
# undef _PATH_CVTSUDOERS_CONF
#endif /* _PATH_CVTSUDOERS_CONF */

/*
 * NOTE: _PATH_SUDO_LOGSRVD_CONF is usually overridden by the Makefile.
 */
#ifndef _PATH_SUDO_LOGSRVD_CONF
# undef _PATH_SUDO_LOGSRVD_CONF
#endif /* _PATH_SUDO_LOGSRVD_CONF */

/*
 * Where sudo_logsrvd stores its pid file files.  Defaults to
 * /var/run/sudo/sudo_logsrvd.pid, /var/db/sudo/sudo_logsrvd.pid,
 * /var/lib/sudo/sudo_logsrvd.pid, /var/adm/sudo/sudo_logsrvd.pid or
 * /usr/adm/sudo/sudo_logsrvd.pid depending on what exists on the system.
 */
#ifndef _PATH_SUDO_LOGSRVD_PID
# undef _PATH_SUDO_LOGSRVD_PID
#endif /* _PATH_SUDO_LOGSRVD_PID */

/*
 * Where to store the time stamp files.  Defaults to /var/run/sudo/ts,
 * /var/db/sudo/ts, /var/lib/sudo/ts, /var/adm/sudo/ts or /usr/adm/sudo/ts
 * depending on what exists on the system.
 */
#ifndef _PATH_SUDO_TIMEDIR
# undef _PATH_SUDO_TIMEDIR
#endif /* _PATH_SUDO_TIMEDIR */

/*
 * Where to store the lecture status files.  Defaults to /var/db/sudo/lectured,
 * /var/lib/sudo/lectured, /var/adm/sudo/lectured or /usr/adm/sudo/lectured
 * depending on what exists on the system.
 */
#ifndef _PATH_SUDO_LECTURE_DIR
# undef _PATH_SUDO_LECTURE_DIR
#endif /* _PATH_SUDO_LECTURE_DIR */

/*
 * Where to put the I/O log files.  Defaults to /var/log/sudo-io,
 * /var/adm/sudo-io or /usr/adm/sudo-io depending on what exists.
 */
#ifndef _PATH_SUDO_IO_LOGDIR
# undef _PATH_SUDO_IO_LOGDIR
#endif /* _PATH_SUDO_IO_LOGDIR */

/*
 * Where to put the audit and other log files.  Defaults to /var/log,
 * /var/adm or /usr/adm depending on what exists.
 */
#ifndef _PATH_SUDO_LOGDIR
# undef _PATH_SUDO_LOGDIR
#endif /* _PATH_SUDO_LOGDIR */

/*
 * Where to store sudo_logsrvd relay temporary files. Defaults to
 * /var/log/sudo_logsrvd, /var/adm/sudo_logsrvd or /usr/adm/sudo_logsrvd
 * depending on what exists.
 */
#ifndef _PATH_SUDO_RELAY_DIR
# undef _PATH_SUDO_RELAY_DIR
#endif /* _PATH_SUDO_RELAY_DIR */

/*
 * Where to put the sudo log file when logging to a file.  Defaults to
 * /var/log/sudo.log if /var/log exists, else /var/adm/sudo.log.
 */
#ifndef _PATH_SUDO_LOGFILE
# undef _PATH_SUDO_LOGFILE
#endif /* _PATH_SUDO_LOGFILE */

/*
 * The path to an Ubuntu-style admin flag file that is created the
 * first time a user runs sudo.
 */
#ifndef _PATH_SUDO_ADMIN_FLAG
# undef _PATH_SUDO_ADMIN_FLAG
#endif /* _PATH_SUDO_ADMIN_FLAG */

#ifndef _PATH_SUDO_SENDMAIL
# undef _PATH_SUDO_SENDMAIL
#endif /* _PATH_SUDO_SENDMAIL */

#ifndef _PATH_SUDO_INTERCEPT
# undef _PATH_SUDO_INTERCEPT
#endif /* _PATH_SUDO_INTERCEPT */

#ifndef _PATH_SUDO_NOEXEC
# undef _PATH_SUDO_NOEXEC
#endif /* _PATH_SUDO_NOEXEC */

#ifndef _PATH_SUDO_ASKPASS
# undef _PATH_SUDO_ASKPASS
#endif /* _PATH_SUDO_ASKPASS */

#ifndef _PATH_SUDO_PLUGIN_DIR
# undef _PATH_SUDO_PLUGIN_DIR
#endif /* _PATH_SUDO_PLUGIN_DIR */

#ifndef _PATH_SUDO_DEVSEARCH
# undef _PATH_SUDO_DEVSEARCH
#endif /* _PATH_SUDO_DEVSEARCH */

#ifndef _PATH_SUDOERS_PLUGIN
# undef _PATH_SUDOERS_PLUGIN
#endif /* _PATH_SUDOERS_PLUGIN */

#ifndef _PATH_ASAN_LIB
# undef	_PATH_ASAN_LIB
#endif /* _PATH_ASAN_LIB */

#ifndef _PATH_VI
# undef _PATH_VI
#endif /* _PATH_VI */

#ifndef _PATH_MV
# undef _PATH_MV
#endif /* _PATH_MV */

#ifndef _PATH_BSHELL
# undef _PATH_BSHELL
#endif /* _PATH_BSHELL */

#ifndef _PATH_TMP
# define _PATH_TMP	"/tmp/"
#endif /* _PATH_TMP */

#ifndef _PATH_VARTMP
# define _PATH_VARTMP	"/var/tmp/"
#endif /* _PATH_VARTMP */

#ifndef _PATH_USRTMP
# define _PATH_USRTMP	"/usr/tmp/"
#endif /* _PATH_USRTMP */

#ifndef _PATH_MAILDIR
# undef _PATH_MAILDIR
#endif /* _PATH_MAILDIR */

#ifndef _PATH_UTMP
# undef _PATH_UTMP
#endif /* _PATH_UTMP */

#ifndef _PATH_SUDO_SESH
# undef _PATH_SUDO_SESH
#endif /* _PATH_SUDO_SESH */

#ifndef _PATH_LDAP_CONF
# undef	_PATH_LDAP_CONF
#endif /* _PATH_LDAP_CONF */

#ifndef _PATH_LDAP_SECRET
# undef	_PATH_LDAP_SECRET
#endif /* _PATH_LDAP_SECRET */

#ifndef _PATH_SSSD_CONF
# undef  _PATH_SSSD_CONF
#endif /* _PATH_SSSD_CONF */

#ifndef _PATH_SSSD_LIB
# undef  _PATH_SSSD_LIB
#endif /* _PATH_SSSD_LIB */

#ifndef _PATH_NSSWITCH_CONF
# undef	_PATH_NSSWITCH_CONF
#endif /* _PATH_NSSWITCH_CONF */

#ifndef _PATH_NETSVC_CONF
# undef	_PATH_NETSVC_CONF
#endif /* _PATH_NETSVC_CONF */

#ifndef _PATH_ZONEINFO
# undef	_PATH_ZONEINFO
#endif /* _PATH_ZONEINFO */

/* On AIX, _PATH_BSHELL in paths.h is /usr/bin/bsh but we want /usr/bin/sh */
#ifndef _PATH_SUDO_BSHELL
# if defined(_AIX) && defined(HAVE_PATHS_H)
#  define _PATH_SUDO_BSHELL "/usr/bin/sh"
# else
#  define _PATH_SUDO_BSHELL _PATH_BSHELL
# endif
#endif /* _PATH_SUDO_BSHELL */
