From 56954cf32f25f0c592d52cf36b99e70fdb2761c8 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Sat, 17 Oct 1998 20:39:25 +0000 Subject: [PATCH] change option formatter and flesh out someentries --- INSTALL | 619 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 323 insertions(+), 296 deletions(-) diff --git a/INSTALL b/INSTALL index 6344e3eb4..bcc93cb28 100644 --- a/INSTALL +++ b/INSTALL @@ -2,9 +2,10 @@ Installation instructions for CU sudo 1.5.7 =========================================== Sudo uses a `configure' script to probe the capabilities and type -of the system in question. Please read this document fully before -configuring and building sudo. You may also wish to read the file -INSTALL.configure which explains more about the `configure' script. +of the system in question. In this release, `configure' takes many +more options than it did before. Please read this document fully +before configuring and building sudo. You may also wish to read the +file INSTALL.configure which explains more about the `configure' script. Simple sudo installation ======================== @@ -56,6 +57,7 @@ For most systems and configurations it is possible simply to: Notes on upgrading from an older release ======================================== + By default, sudo 1.5.7 expects the sudoers file to be mode 0440 and to be owned by user and group 0. This differs from version 1.4 and below which expected the sudoers file to be mode 0400 and to be @@ -76,311 +78,336 @@ This section describes flags accepted by the sudo's `configure' script. Defaults are listed in brackets after the description. Configuration: - --cache-file=FILE Cache test results in FILE + --cache-file=FILE + Cache test results in FILE - --help Print the usage/help info + --help + Print the usage/help info - --no-create Do not create output files + --no-create + Do not create output files - --quiet, --silent Do not print `checking...' messages + --quiet, --silent + Do not print `checking...' messages Directory and file names: - --prefix=PREFIX Install architecture-independent files in PREFIX - This really only applies to man pages. - [/usr/local] + --prefix=PREFIX + Install architecture-independent files in PREFIX This really only + applies to man pages. [/usr/local] - --exec-prefix=EPREFIX Install architecture-dependent files in EPREFIX - This includes the sudo and visudo executables. - [same as prefix] + --exec-prefix=EPREFIX + Install architecture-dependent files in EPREFIX This includes the + sudo and visudo executables. [same as prefix] - --bindir=DIR Install `sudo' in DIR [EPREFIX/bin] + --bindir=DIR + Install `sudo' in DIR [EPREFIX/bin] - --sbindir=DIR Install `visudo' in DIR - [EPREFIX/etc for historical reasons] + --sbindir=DIR + Install `visudo' in DIR [EPREFIX/sbin] - --sysconfdir=DIR Install `sudoers' file in DIR [/etc] + --sysconfdir=DIR + Install `sudoers' file in DIR [/etc] - --mandir=DIR Install man pages in DIR [PREFIX/man] + --mandir=DIR + Install man pages in DIR [PREFIX/man] - --srcdir=DIR Find the sources in DIR [configure dir or ..] + --srcdir=DIR + Find the sources in DIR [configure dir or ..] Special features/options: - --with-CC Specifies path to C compiler you wish to use. - - --with-skey Enable S/Key OTP support. - - --with-opie Enable NRL OPIE OTP support. - - --with-otp-only When validating the user, only allow a One Time - Password (OTP) passkey via S/Key or OPIE. Do not - compare against the passwd file or use any other - authentication scheme. - - --with-long-otp-prompt When validating with a One Time Password scheme - (S/Key or OPIE), a two-line prompt is used to make - it easier to cut and paste the challenge to a local - window. It's not as pretty as the default but some - people find it more convenient. - - --with-SecurID Enable SecurID support. - - --with-kerb4 Enable kerberos v4 support - Tested only with the Cygnus Network Security - package (CNS). - - --with-kerb5 Enable kerberos v5 support. - This enables with kerberos v4 support and - links with the standard kerberos v5 libraries - as well as the v4 compatibility libraries. - - --with-pam Enable PAM support. Tested on Redhat Linux 5.x - but should work on earlier versions too. Not tested - on Solaris 2.X but it is expected to work. - - --with-AFS Enable AFS support with kerberos authentication. - Should work under AFS 3.3. If your AFS - doesn't have -laudit you should be able to - link without it. - - --with-authenticate Enable support for the AIX 4.x general authentication - function. This will use the authentication - scheme specified for the user on the machine. - - --with-DCE Enable DCE support. - Known to work on HP-UX 9.X and 10.0. - Other platforms may require source code - and/or `configure' changes. - - --with-message=TYPE Set message for first time sudo to be "short", - "full", or "none". Default is "short. - - --with-logging=TYPE How you want to do your logging. You may choose - "syslog", "file", or "both". Setting this to - "syslog" is nice because you can keep all of your - sudo logs in one place. If you don't have syslog - or if your syslog is of an ancient vintage (4.2BSD, - SunOS 3.x and all versions of Ultrix) you should - probably use "file" logging. The default is "syslog". - - --with-logfac=FACILITY Determines which syslog facility to log to. This - This requires a 4.3BSD or later version of syslog. - You can still set this for ancient syslogs but it - will have no effect. A list of possible values may - be found in /usr/include/syslog.h. The default is to - use LOG_LOCAL2 but you may want to use LOG_AUTH. - - --with-logpath=path Override the default location of the sudo - log file and use "path" instead. - - --with-loglen Number of characters per line for the file log. - This is only used if you are to "file" or "both". - This value is used to decide when to wrap lines - for nicer log files. The default is 80. - - --without-root-sudo Don't let root run sudo. This can be used to prevent - people from "chaining" sudo commands to get a root - shell by doing something like "sudo sudo /bin/sh". - - --with-ignore-dot If set, sudo will ignore '.' or '' (current dir) in - $PATH. The $PATH itself is not modified. - - --with-alertmail User that mail from sudo is sent to. This should go - to a sysadmin at your site. The default is "root". - - --with-mailsubject Subject of the mail sent to the "alertmail" user. The - token "%h" will expand to the hostname of the machine. - Default is "*** SECURITY information for %h ***". - - --without-mail-if-no-user Normally, sudo will mail to the "alermail" user if - the user invoking sudo is not in the sudoers file. - This option disables that behavior. - - --with-mail-if-noperms Send mail to the "alermail" user if the user is - allowed to use sudo but the command they are trying - is not listed in their sudoers file entry. - - --with-passprompt Default prompt to use when asking for a password; can - be overridden via the -p option. Supports two escapes: - "%u" expands to the user's login name and "%h" expands - to the local hostname. Default is "Password:". - - --with-badpass-message Message that is displayed if a user enters an - incorrect password. The default is - "Sorry, try again." unless insults are turned on. - - --with-fqdn Define this if you want to put fully qualified - hostnames in the sudoers file. Ie: instead of myhost - you would use myhost.mydomain.edu. You may still use - the short form if you wish (and even mix the two). - Beware that turning FQDN on requires sudo to make DNS - lookups which may make sudo unusable if your DNS is - totally hosed. Also note that you must use the host's - official name as DNS knows it. That is, you may not - use a host alias (CNAME entry) due to performance - issues and the fact that there is no way to get all - aliases from DNS. - - --with-timedir=path Override the default location of the sudo - timestamp directory and use "path" instead. - - --with-sendmail=path Override configure's guess as to the location - of sendmail. - - --without-sendmail Do not use sendmail to mail messages to the - "alertmail" user. Use only if you have no mailers. - - --with-sudoers-mode=mode File mode for the sudoers file (octal). Note that - if you wish to NFS-mount the sudoers file this must - be group readable. Also note that this is actually - set in the Makefile. The default mode is 0440. - - --with-sudoers-uid User id that "owns" the sudoers file. Note that this - is the numeric id, *not* the symbolic name. Also - note that this is actually set in the Makefile. - The default is 0. - - --with-sudoers-gid Group id that "owns" the sudoers file. Note that this - is the numeric id, *not* the symbolic name. Also - note that this is actually set in the Makefile. - The default is 0. - - --with-sudo-umask Umask to use when running the root command. - The default is 0022. - - --without-sudo-umask Preserves the umask of the user invoking sudo. - - --with-runas-default The default user to run commands as if the -u - flag is not specified on the command line. - This defaults to "root". - - --with-exempt=group Users in the specified group don't need to enter a - password when running sudo. This may be useful for - sites that don't want their "core" sysadmins to have - to enter a password but where Jr. sysadmins need to. - You should probably use NOPASSWD in sudoers instead. - - --with-editor Specify the default editor used by visudo (and the - only editor used unless --with-env-editor is - specified). The default is vi. - - --with-env-editor Makes visudo consult the EDITOR and VISUAL environment - variables before falling back on the default editor. - Note that this may create a security hole as most - editors allow a user to get a shell (which would be a - root shell and hence, no logging). - - --with-passwd-tries Number of tries a user gets to enter his/her password - before sudo logs the failure and exits. - The default is 3. - - --with-timeout Number of minutes that can elapse before sudo will - ask for a passwd again. The default is 5, set this - to 0 to always prompt for a password. - - --with-password-timeout Number of minutes before the sudo password prompt - times out. The default is 5, set this to 0 for no - password timeout. - - --with-execv Use execv() to exec the command instead of execvp(). - I can't think of a reason to actually do this since - execvp() is passed a fully qualified pathname but - someone might thoroughly distrust execvp(). Note that - if you define this you lose the ability to exec - scripts that are missing the '#!/bin/sh' cookie - (like /bin/kill on SunOS and /etc/fastboot on 4.3BSD). - This is off by default. - - --with-tty-tickets This makes sudo use a different ticket file for each - tty (per user). Ie: instead of the ticket file being - "username" it is "username.tty". This offers - increased security in an open lab or with "shared" - accounts like "operator." Note that this means that - there will be more files in the timestamp dir. This - is not a problem if your system has a cron job to - remove of files from /tmp (or wherever you specified - the timestamp dir to be). - - --with-insults Define this if you want to be insulted for typing an - incorrect password just like the original sudo(8). - This is off by default. - - --with-classic-insults Uses insults from sudo "classic." If you just - specify --with-insults you will get the classic and - CSOps insults. This is on by default if - --with-insults is given. - - --with-csops-insults Insults the user with an extra set of insults (some - quotes, some original) from a sysadmin group at CU - (CSOps). You must specify --with-insults as well for - this to have any effect. This is on by default if - --with-insults is given. - - --with-hal-insults Uses 2001-like insults when an incorrect password is - entered. You must specify --with-insults as well for - this to have any effect. - - --with-goons-insults Insults the user with lines from the "Goon Show" when - an incorrect password is entered. You must specify - --with-insults as well for this to have any effect. - - --with-secure-path[=path] Path used for every command run from sudo(8). If - you don't trust the people running sudo to have a - sane PATH environmental variable you may want to use - this. Another use is if you want to have the - "root path" be separate from the "user path." You - will need to customize the path for your site. - NOTE: this is not applied to users in the group - specified by --with-exemptgroup. If you do not - specify a path, "/bin:/usr/ucb:/usr/bin:/usr/sbin:/sbin:/usr/etc:/etc" is used. - - --with-incpath Adds the specified directories to CPPFLAGS - so configure and the compiler will look there - for include files. Multiple directories may - be specified as long as they are space separated. - Eg: --with-incpath="/usr/local/include /opt/include" - - --with-libpath Adds the specified directories to SUDO_LDFLAGS - and VISUDO_LDFLAGS so configure and the compiler - will look there for libraries. Multiple directories - may be specified as with --with-incpath. - - --with-libraries Adds the specified libaries to SUDO_LIBS and - and VISUDO_LIBS so sudo will link against them. - If the library doesn't start with `-l' or end - in `.a' or `.o' a `-l' will be prepended to it. - Multiple libraries may be specified as long - as they are space separated. - - --with-csops Add CSOps standard options. - - --without-interfaces This option keeps sudo from trying to glean the ip - address from each attached ethernet interface. It is - only useful on a machine where sudo's interface - reading support does not work, which may be the case - on some SysV-based OS's using STREAMS. - - --disable-shadow Disable shadow password support. Normally, sudo - will compile in shadow password support and use - a shadow password if it exists. - - --disable-tgetpass Use system getpass(3) instead of sudo-supplied - tgetpass(). For systems where tgetpass() is broken. - - --enable-log-host Log the hostname in the log file. - - --disable-log-wrap Do not wrap long lines in the log file. - - --enable-noargs-shell If sudo is invoked with no arguments it acts as if - the "-s" flag had been given. Namely, it runs a shell - as root (the shell is determined by the SHELL - envariable, falling back on the shell listed in the - invoking user's /etc/passwd entry). - - --enable-shell-sets-home If sudo is invoked with the "-s" flag the HOME - environmental variable will be set to the home - directory of the target user (which is root unless - the "-u" option is used). This option effectively - makes the "-s" flag imply "-H". + --with-CC=path + Specifies path to C compiler you wish to use. + + --with-skey + Enable S/Key OTP (One Time Password) support. + + --with-opie + Enable NRL OPIE OTP (One Time Password) support. + + --with-otp-only + When validating the user, only allow a One Time Password (OTP) + passkey via S/Key or OPIE. Do not compare against the passwd + file or use any other authentication scheme. + + --with-long-otp-prompt + When validating with a One Time Password scheme (S/Key or OPIE), a + two-line prompt is used to make it easier to cut and paste the + challenge to a local window. It's not as pretty as the default but + some people find it more convenient. + + --with-SecurID + Enable SecurID support. + + --with-kerb4 + Enable kerberos v4 support Tested only with the Cygnus Network + Security package (CNS). This uses kerberos passphrases for + authentication but does not use the kerberos cookie scheme. + + --with-kerb5 + Enable kerberos v5 support. This enables with kerberos v4 support + and links with the standard kerberos v5 libraries as well as the v4 + compatibility libraries. This uses kerberos passphrases for + authentication but does not use the kerberos cookie scheme. + + --with-pam + Enable PAM support. Tested on Redhat Linux 5.x but should work on + earlier versions too. Not tested on Solaris 2.X but it is expected + to work. + + --with-AFS + Enable AFS support with kerberos authentication. Should work under + AFS 3.3. If your AFS doesn't have -laudit you should be able to + link without it. + + --with-authenticate + Enable support for the AIX 4.x general authentication function. + This will use the authentication scheme specified for the user + on the machine. + + --with-DCE + Enable DCE support. Known to work on HP-UX 9.X and 10.0. Other + platforms may require source code and/or `configure' changes. + + --with-message=TYPE + Set message for first time sudo to be "short", "full", or "none". + Default is "short. + + --with-logging=TYPE + How you want to do your logging. You may choose "syslog", "file", + or "both". Setting this to "syslog" is nice because you can keep all + of your sudo logs in one place. If you don't have syslog or if your + syslog is of an ancient vintage (4.2BSD, SunOS 3.x and all versions + of Ultrix) you should probably use "file" logging. + The default is "syslog". + + --with-logfac=FACILITY + Determines which syslog facility to log to. This This requires a + 4.3BSD or later version of syslog. You can still set this for ancient + syslogs but it will have no effect. A list of possible values may be + found in /usr/include/syslog.h. The default is to use LOG_LOCAL2 but + some sites may wish to use LOG_AUTH instead. + + --with-logpath=path + Override the default location of the sudo log file and use "path" + instead. By default will use /var/log/sudo.log if there is a /var/log + dir, falling back to /var/adm/sudo.log or /usr/adm/sudo.log if not. + + --with-loglen + Number of characters per line for the file log. This is only used if + you are to "file" or "both". This value is used to decide when to wrap + lines for nicer log files. The default is 80. + + --without-root-sudo + Don't let root run sudo. This can be used to prevent people from + "chaining" sudo commands to get a root shell by doing something + like "sudo sudo /bin/sh". + + --with-ignore-dot + If set, sudo will ignore '.' or '' (current dir) in $PATH. + The $PATH itself is not modified. + + --with-alertmail + User that mail from sudo is sent to. This should go to a sysadmin at + your site. The default is "root". + + --with-mailsubject + Subject of the mail sent to the "alertmail" user. The token "%h" + will expand to the hostname of the machine. + Default is "*** SECURITY information for %h ***". + + --without-mail-if-no-user + Normally, sudo will mail to the "alermail" user if the user invoking + sudo is not in the sudoers file. This option disables that behavior. + + --with-mail-if-noperms + Send mail to the "alermail" user if the user is allowed to use sudo but + the command they are trying is not listed in their sudoers file entry. + + --with-passprompt + Default prompt to use when asking for a password; can be overridden + via the -p option and the SUDO_PROMPT environment variable. Supports + two escapes: "%u" expands to the user's login name and "%h" expands + to the local hostname. Default is "Password:". + + --with-badpass-message + Message that is displayed if a user enters an incorrect password. + The default is "Sorry, try again." unless insults are turned on. + + --with-fqdn + Define this if you want to put fully qualified hostnames in the sudoers + file. Ie: instead of myhost you would use myhost.mydomain.edu. You may + still use the short form if you wish (and even mix the two). Beware + that turning FQDN on requires sudo to make DNS lookups which may make + sudo unusable if your DNS is totally hosed. Also note that you must + use the host's official name as DNS knows it. That is, you may not use + a host alias (CNAME entry) due to performance issues and the fact that + there is no way to get all aliases from DNS. + + --with-timedir=path + Override the default location of the sudo timestamp directory and + use "path" instead. + + --with-sendmail=path + Override configure's guess as to the location of sendmail. + + --without-sendmail + Do not use sendmail to mail messages to the "alertmail" user. + Use only if don't run sendmail or the equivalent. + + --with-sudoers-mode=mode + File mode for the sudoers file (octal). Note that if you wish to + NFS-mount the sudoers file this must be group readable. Also note + that this is actually set in the Makefile. The default mode is 0440. + + --with-sudoers-uid + User id that "owns" the sudoers file. Note that this is the numeric + id, *not* the symbolic name. Also note that this is actually set in + the Makefile. The default is 0. + + --with-sudoers-gid + Group id that "owns" the sudoers file. Note that this is the numeric + id, *not* the symbolic name. Also note that this is actually set in + the Makefile. The default is 0. + + --with-sudo-umask + Umask to use when running the root command. The default is 0022. + + --without-sudo-umask + Preserves the umask of the user invoking sudo. + + --with-runas-default=user + The default user to run commands as if the -u flag is not specified + on the command line. This defaults to "root". + + --with-exempt=group + Users in the specified group don't need to enter a password when + running sudo. This may be useful for sites that don't want their + "core" sysadmins to have to enter a password but where Jr. sysadmins + need to. You should probably use NOPASSWD in sudoers instead. + + --with-editor + Specify the default editor used by visudo (and the only editor used + unless --with-env-editor is specified). The default is vi. + + --with-env-editor + Makes visudo consult the EDITOR and VISUAL environment variables before + falling back on the default editor. Note that this may create a + security hole as most editors allow a user to get a shell (which would + be a root shell and hence, no logging). + + --with-passwd-tries=tries + Number of tries a user gets to enter his/her password before sudo logs + the failure and exits. The default is 3. + + --with-timeout=minutes + Number of minutes that can elapse before sudo will ask for a passwd + again. The default is 5, set this to 0 to always prompt for a password. + + --with-password-timeout=minutes + Number of minutes before the sudo password prompt times out. + The default is 5, set this to 0 for no password timeout. + + --with-execv + Use execv() to exec the command instead of execvp(). I can't think of + a reason to actually do this since execvp() is passed a fully qualified + pathname but someone might thoroughly distrust execvp(). Note that if + you define this you lose the ability to exec scripts that are missing + the '#!/bin/sh' cookie (like /bin/kill on SunOS and /etc/fastboot on + 4.3BSD). This is off by default. + + --with-tty-tickets + This makes sudo use a different ticket file for each tty (per user). + Ie: instead of the ticket file being "username" it is "username.tty". + This offers increased security in an open lab or with "shared" accounts + like "operator." Note that this means that there will be more files in + the timestamp dir. This is not a problem if your system has a cron job + to remove of files from /tmp (or wherever you specified the timestamp + dir to be). + + --with-insults + Define this if you want to be insulted for typing an incorrect password + just like the original sudo(8). This is off by default. + + --with-classic-insults + Uses insults from sudo "classic." If you just specify --with-insults + you will get the classic and CSOps insults. This is on by default if + --with-insults is given. + + --with-csops-insults + Insults the user with an extra set of insults (some quotes, some + original) from a sysadmin group at CU (CSOps). You must specify + --with-insults as well for this to have any effect. This is on by + default if --with-insults is given. + + --with-hal-insults + Uses 2001-like insults when an incorrect password is entered. + You must specify --with-insults as well for this to have any effect. + + --with-goons-insults + Insults the user with lines from the "Goon Show" when an incorrect + password is entered. You must specify --with-insults as well for + this to have any effect. + + --with-secure-path[=path] + Path used for every command run from sudo(8). If you don't trust the + people running sudo to have a sane PATH environment variable you may + want to use this. Another use is if you want to have the "root path" + be separate from the "user path." You will need to customize the path + for your site. NOTE: this is not applied to users in the group + specified by --with-exemptgroup. If you do not specify a path, + "/bin:/usr/ucb:/usr/bin:/usr/sbin:/sbin:/usr/etc:/etc" is used. + + --with-incpath + Adds the specified directories to CPPFLAGS so configure and the + compiler will look there for include files. Multiple directories + may be specified as long as they are space separated. + Eg: --with-incpath="/usr/local/include /opt/include" + + --with-libpath + Adds the specified directories to SUDO_LDFLAGS and VISUDO_LDFLAGS so + configure and the compiler will look there for libraries. Multiple + directories may be specified as with --with-incpath. + + --with-libraries + Adds the specified libaries to SUDO_LIBS and and VISUDO_LIBS so sudo + will link against them. If the library doesn't start with `-l' or end + in `.a' or `.o' a `-l' will be prepended to it. Multiple libraries may + be specified as long as they are space separated. + + --with-csops + Add CSOps standard options. You probably aren't interested in this. + + --without-interfaces + This option keeps sudo from trying to glean the ip address from each + attached ethernet interface. It is only useful on a machine where + sudo's interface reading support does not work, which may be the case + on some SysV-based OS's using STREAMS. + + --disable-shadow + Disable shadow password support. Normally, sudo will compile in shadow + password support and use a shadow password if it exists. + + --disable-tgetpass + Use system getpass(3) instead of sudo-supplied tgetpass(). For systems + where tgetpass() is broken. + + --enable-log-host + Log the hostname in the log file. + + --disable-log-wrap + Do not wrap long lines in the log file. + + --enable-noargs-shell + If sudo is invoked with no arguments it acts as if the "-s" flag had + been given. That is, it runs a shell as root (the shell is determined + by the SHELL environment variable, falling back on the shell listed + in the invoking user's /etc/passwd entry). + + --enable-shell-sets-home + If sudo is invoked with the "-s" flag the HOME environment variable + will be set to the home directory of the target user (which is root + unless the "-u" option is used). This option effectively makes the + "-s" flag imply "-H". Shadow password and C2 support ============================== @@ -400,7 +427,7 @@ Shadow passwords are supported on the following platforms: HP-UX >= 9.x Ultrix 4.x Digital UNIX 3.x and 4.x - Irix 5.x and 6.x + IRIX 5.x and 6.x AIX 3.2.x ad 4.x ConvexOS with C2 security (not tested recently) Linux -- 2.50.1