Annotation of embedaddon/sudo/INSTALL, revision 1.1.1.3

1.1       misho       1: Sudo installation instructions
                      2: ==============================
                      3: 
                      4: Sudo uses a `configure' script to probe the capabilities and type
                      5: of the system in question.  In this release, `configure' takes many
                      6: more options than it did before.  Please read this document fully
                      7: before configuring and building sudo.  You may also wish to read the
                      8: file INSTALL.configure which explains more about the `configure' script.
                      9: 
                     10: Simple sudo installation
                     11: ========================
                     12: 
                     13: For most systems and configurations it is possible simply to:
                     14: 
                     15:     0) If you are upgrading from a previous version of sudo
                     16:        please read the info in the UPGRADE file before proceeding.
                     17: 
                     18:     1) Read the `OS dependent notes' section for any particular
                     19:        "gotchas" relating to your operating system.
                     20: 
                     21:     2) `cd' to the source or build directory and type `./configure'
                     22:        to generate a Makefile and config.h file suitable for
                     23:        building sudo.  Before you actually run configure you
                     24:        should read the `Available configure options' section
                     25:        to see if there are any special options you may want
                     26:        or need.
                     27: 
                     28:     3) Edit the configure-generated Makefile if you wish to
                     29:        change any of the default paths (alternatively, you could
                     30:        have changed the paths via options to `configure'.
                     31: 
                     32:     5) Type `make' to compile sudo.  If you are building sudo
                     33:        in a separate build tree (apart from the sudo source) GNU
                     34:        make will probably be required.  If `configure' did its job
                     35:        properly (and you have a supported configuration) there won't
                     36:        be any problems.  If this doesn't work, take a look at the
                     37:        TROUBLESHOOTING file for tips on what might have gone wrong.
                     38:        Please mail us if you have a fix or if you are unable to
                     39:        come up with a fix (address at EOF).
                     40: 
                     41:     6) Type `make install' (as root) to install sudo, visudo, the
                     42:        man pages, and a skeleton sudoers file.  Note that the install
                     43:        will not overwrite an existing sudoers file.  You can also
                     44:        install various pieces the package via the install-binaries,
                     45:        install-doc, and install-sudoers make targets.
                     46: 
                     47:     7) Edit the sudoers file with `visudo' as necessary for your
                     48:        site.  You will probably want to refer the sample.sudoers
                     49:        file and sudoers man page included with the sudo package.
                     50: 
                     51:     8) If you want to use syslogd(8) to do the logging, you'll need
                     52:        to update your /etc/syslog.conf file.  See the sample.syslog.conf
                     53:        file included in the distribution for an example.
                     54: 
                     55: Available configure options
                     56: ===========================
                     57: 
                     58: This section describes flags accepted by the sudo's `configure' script.
                     59: Defaults are listed in brackets after the description.
                     60: 
                     61: Configuration:
                     62:   --cache-file=FILE
                     63:        Cache test results in FILE
                     64: 
                     65:   --config-cache, -C
                     66:        Alias for `--cache-file=config.cache'
                     67: 
                     68:   --help, -h
                     69:        Print the usage/help info
                     70: 
                     71:   --no-create, -n
                     72:        Do not create output files
                     73: 
                     74:   --quiet, --silent, -q
                     75:        Do not print `checking...' messages
                     76: 
                     77: Directory and file names:
                     78:   --prefix=PREFIX
                     79:        Install architecture-independent files in PREFIX This really only
                     80:        applies to man pages.  [/usr/local]
                     81: 
                     82:   --exec-prefix=EPREFIX
                     83:        Install architecture-dependent files in EPREFIX This includes the
                     84:        sudo and visudo executables.  [same as prefix]
                     85: 
                     86:   --bindir=DIR
                     87:        Install `sudo' in DIR [EPREFIX/bin]
                     88: 
                     89:   --sbindir=DIR
                     90:        Install `visudo' in DIR [EPREFIX/sbin]
                     91: 
                     92:   --sysconfdir=DIR
                     93:        Install `sudoers' file in DIR [/etc]
                     94: 
                     95:   --mandir=DIR
                     96:        Install man pages in DIR [PREFIX/man]
                     97: 
                     98:   --srcdir=DIR
                     99:        Find the sources in DIR [configure dir or ..]
                    100: 
                    101: Special features/options:
                    102:   --with-incpath=DIR
                    103:        Adds the specified directory (or directories) to CPPFLAGS
                    104:        so configure and the compiler will look there for include
                    105:        files.  Multiple directories may be specified as long as
                    106:        they are space separated.
                    107:        Eg: --with-incpath="/usr/local/include /opt/include"
                    108: 
                    109:   --with-libpath=DIR
                    110:        Adds the specified directory (or directories) to LDFLAGS
                    111:        so configure and the compiler will look there for libraries.
                    112:        Multiple directories may be specified as with --with-incpath.
                    113: 
                    114:   --with-rpath
                    115:        Tells configure to use -Rpath in addition to -Lpath when
                    116:        passing library paths to the loader.  This option is on
                    117:        by default for Solaris and SVR4.
                    118: 
                    119:   --with-blibpath[=PATH]
                    120:        Tells configure to construct a -blibpath argument to the
                    121:        loader.  If a PATH is specified, it will be used as the
                    122:        base.  Otherwise, "/usr/lib:/lib:/usr/local/lib" will be
                    123:        used for gcc and "/usr/lib:/lib" for non-gcc.  Additional
                    124:        library paths will be appended as needed by configure.
                    125:        This option is only valid for AIX where it is on by default.
                    126: 
                    127:   --with-libraries=LIBRARY
                    128:        Adds the specified library (or libaries) to SUDO_LIBS and
                    129:        and VISUDO_LIBS so sudo will link against them.  If the
                    130:        library doesn't start with `-l' or end in `.a' or `.o' a
                    131:        `-l' will be prepended to it.  Multiple libraries may be
                    132:        specified as long as they are space separated.
                    133: 
                    134:   --with-plugindir=PATH
                    135:        Set the directory that sudo looks in to find the policy and I/O
                    136:        logging plugins.  Defaults to the libexec dir used by configure.
                    137: 
                    138:   --with-efence
                    139:        Link with the "electric fence" debugging malloc.
                    140: 
                    141:   --with-bsm-audit
                    142:        Enable support for sudo BSM audit logs on systems that support
                    143:        it.  Currently only supported under FreeBSD and Mac OS X.
                    144: 
                    145:   --with-csops
                    146:        Add CSOps standard options.  You probably aren't interested in this.
                    147: 
                    148:   --with-devel
                    149:         Configure development options.  This will enable compiler warnings
                    150:        and set the Makefile to be able to regenerate the sudoers parser
                    151:        as well as the manual pages.
                    152: 
                    153:   --with-linux-audit
                    154:        Enable audit support for Linux systems.  Audits attempts
                    155:        to run a command as well as SELinux role changes.
                    156: 
                    157:   --with-skey[=DIR]
                    158:        Enable S/Key OTP (One Time Password) support.  If specified,
                    159:        DIR should contain include and lib directories with skey.h
                    160:        and libskey.a respectively.
                    161: 
                    162:   --with-opie[=DIR]
                    163:        Enable NRL OPIE OTP (One Time Password) support.  If specified,
                    164:        DIR should contain include and lib directories with opie.h
                    165:        and libopie.a respectively.
                    166: 
                    167:   --with-SecurID[=DIR]
                    168:        Enable SecurID support.  If specified, DIR is directory containing
1.1.1.2   misho     169:        libaceclnt.a, acexport.h, and sdacmvls.h.
1.1       misho     170: 
                    171:   --with-fwtk[=DIR]
                    172:        Enable TIS Firewall Toolkit (FWTK) 'authsrv' support. If specified,
                    173:        DIR is the base directory containing the compiled FWTK package
                    174:        (or at least the library and header files).
                    175: 
                    176:   --with-kerb5[=DIR]
                    177:        Enable Kerberos V support.  If specified, DIR is the base
                    178:        directory containing the Kerberos V include and lib dirs.
                    179:        This This uses Kerberos passphrases for authentication but
                    180:        does not use the Kerberos cookie scheme.  Will not work for
                    181:        Kerberos V older than version 1.1.
                    182: 
1.1.1.2   misho     183:   --enable-kerb5-instance=string
                    184:         By default, the user name is used as the principal name
                    185:         when authenticating via Kerberos V.  If this option is
                    186:         enabled, the specified instance string will be appended to
                    187:         the user name (separated by a slash) when creating the
                    188:         principal name.
                    189: 
1.1       misho     190:   --with-ldap[=DIR]
                    191:        Enable LDAP support.  If specified, DIR is the base directory
                    192:        containing the LDAP include and lib directories.  Please see
                    193:        README.LDAP for more information.
                    194: 
                    195:   --with-ldap-conf-file=PATH
                    196:        Path to LDAP configuration file.  If specified, sudo reads
                    197:        this file instead of /etc/ldap.conf to locate the LDAP server.
                    198: 
                    199:   --with-ldap-secret-file=PATH
                    200:        Path to LDAP secret password file.  If specified, sudo uses
                    201:        this file instead of /etc/ldap.secret to read the secret password
                    202:        when rootbinddn is specified in the ldap config file.
                    203: 
1.1.1.3 ! misho     204:   --with-sssd
        !           205:         Enable support for using the System Security Services Daemon
        !           206:         (SSSD) as a sudoers data source.  For more informaton on
        !           207:         SSD, see http://fedorahosted.org/sssd/
        !           208: 
        !           209:   --with-sssd-lib=PATH
        !           210:         Specify the path to the SSSD shared library, which is loaded
        !           211:         at run-time.
        !           212: 
1.1       misho     213:   --with-nsswitch[=PATH]
                    214:        Path to nsswitch.conf or "no" to disable nsswitch support.
                    215:        If specified, sudo uses this file instead of /etc/nsswitch.conf.
                    216:        If nsswitch is disabled but LDAP is enabled, sudo will check
                    217:        LDAP first, then the sudoers file.
                    218: 
                    219:   --with-netsvc[=PATH]
                    220:         Path to netsvc.conf or "no" to disable netsvc.conf support.
                    221:         If specified, sudo uses this file instead of /etc/netsvc.conf
                    222:         on AIX systems.
                    223: 
                    224:   --with-aixauth
                    225:        Enable support for the AIX 4.x general authentication function.
                    226:        This will use the authentication scheme specified for the user
                    227:        on the machine.  It is on by default for AIX systems that
                    228:        support it.
                    229: 
                    230:   --with-pam
                    231:        Enable PAM support.  This is on by default for Darwin, FreeBSD,
                    232:        Linux, Solaris and HP-UX (version 11 and higher).
                    233: 
                    234:        NOTE: on RedHat Linux and Fedora you *must* have an /etc/pam.d/sudo
                    235:        file install.  You may either use the sample.pam file included with
                    236:        sudo or use /etc/pam.d/su as a reference.  The sample.pam file
                    237:        included with sudo may or may not work with other Linux distributions.
                    238:        On Solaris and HP-UX 11 systems you should check (and understand)
                    239:        the contents of /etc/pam.conf.  Do a "man pam.conf" for more
                    240:        information and consider using the "debug" option, if available,
                    241:        with your PAM libraries in /etc/pam.conf to obtain syslog output
                    242:        for debugging purposes.
                    243: 
                    244:   --with-pam-login
                    245:         Enable a specific PAM session when sudo is given the -i option.
                    246:        This changes the PAM service name when sudo is run with the -i
                    247:        option from "sudo" to "sudo-i", allowing for a separate pam
                    248:        configuration for sudo's initial login mode.
                    249: 
                    250:   --with-AFS
                    251:        Enable AFS support with Kerberos authentication.  Should work under
                    252:        AFS 3.3.  If your AFS doesn't have -laudit you should be able to
                    253:        link without it.
                    254: 
                    255:   --with-DCE
                    256:        Enable DCE support for systems without PAM.  Known to work on
                    257:        HP-UX 9.X, 10.X, and 11.0; other systems may require source
                    258:        code and/or `configure' changes.  On systems with PAM support
                    259:        (such as HP-UX 11.0 and higher, Solaris, FreeBSD and Linux), the
                    260:        DCE PAM module (usually libpam_dce) should be used instead.
                    261: 
                    262:   --with-logincap
                    263:        This adds support for login classes specified in /etc/login.conf.
                    264:        It is enabled by default on BSD/OS, Darwin, FreeBSD, OpenBSD and
                    265:        NetBSD (where available).  By default, a login class is not applied
                    266:        unless the 'use_loginclass' option is defined in sudoers or the user
                    267:        specifies a class on the command line.
                    268: 
                    269:   --with-bsdauth
                    270:        Enable support for BSD authentication.  This is the default
                    271:        for BSD/OS and OpenBSD systems that support it.
                    272:        It is not possible to mix BSD authentication with other
                    273:        authentication methods (and there really should be no need
                    274:        to do so).  Note that only the newer BSD authentication API
                    275:        is supported.  If you don't have /usr/include/bsd_auth.h
                    276:        then you cannot use this.
                    277: 
                    278:   --with-project
                    279:        Enable support for Solaris project resource limits.
                    280:        This option is only available on Solaris 9 and above.
                    281: 
                    282:   --with-noexec[=PATH]
                    283:        Enable support for the "noexec" functionality which prevents
                    284:        a dynamically-linked program being run by sudo from executing
                    285:        another program (think shell escapes).  Please see the
                    286:        "PREVENTING SHELL ESCAPES" section in the sudoers man page
                    287:        for details.  If specified, PATH should be a fully qualified
                    288:        path name, e.g. /usr/local/libexec/sudo_noexec.so.  If PATH
                    289:        is "no", noexec support will not be compiled in.  The default
                    290:        is to compile noexec support if libtool supports building
                    291:        shared objects on your OS.
                    292: 
                    293:   --disable-pam-session
                    294:         Disable sudo's PAM session support.  This may be needed on
                    295:         older PAM implementations or on operating systems where
                    296:         opening a PAM session changes the utmp or wtmp files.  If
                    297:         PAM session support is disabled, resource limits may not
1.1.1.2   misho     298:         be updated for the command being run.
1.1       misho     299: 
                    300:   --disable-root-mailer
                    301:        By default sudo will run the mailer as root when tattling
                    302:        on a user so as to prevent that user from killing the mailer.
                    303:        With this option, sudo will run the mailer as the invoking
                    304:        user which some people consider to be safer.
                    305: 
                    306:   --disable-setreuid
                    307:        Disable use of the setreuid() function for operating systems
                    308:        where it is broken.  Mac OS X has setreuid() but it doesn't
                    309:        really work.
                    310: 
                    311:   --disable-setresuid
                    312:        Disable use of the setresuid() function for operating systems
                    313:        where it is broken (none currently known).
                    314: 
                    315:   --disable-sia
                    316:        Disable SIA support.  This is the "Security Integration
                    317:        Architecture" on Digital UNIX. If you disable SIA sudo will
                    318:        use its own authentication routines.
                    319: 
                    320:   --disable-shadow
                    321:        Disable shadow password support.  Normally, sudo will compile
                    322:        in shadow password support and use a shadow password if it
                    323:        exists.
                    324: 
                    325:   --with-sudoers-mode=MODE
                    326:        File mode for the sudoers file (octal).  Note that if you
                    327:        wish to NFS-mount the sudoers file this must be group
                    328:        readable.  Also note that this is actually set in the
                    329:        Makefile.  The default mode is 0440.
                    330: 
                    331:   --with-sudoers-uid=UID
                    332:        User id that "owns" the sudoers file.  Note that this is
                    333:        the numeric id, *not* the symbolic name.  Also note that
                    334:        this is actually set in the Makefile.  The default is 0.
                    335: 
                    336:   --with-sudoers-gid=GID
                    337:        Group id that "owns" the sudoers file.  Note that this is
                    338:        the numeric id, *not* the symbolic name.  Also note that
                    339:        this is actually set in the Makefile.  The default is 0.
                    340: 
                    341:   --without-interfaces
                    342:        This option keeps sudo from trying to glean the ip address
                    343:        from each attached ethernet interface.  It is only useful
                    344:        on a machine where sudo's interface reading support does
                    345:        not work, which may be the case on some SysV-based OS's
                    346:        using STREAMS.
                    347: 
                    348:   --without-passwd
                    349:        This option excludes authentication via the passwd (or
                    350:        shadow) file.  It should only be used when another, alternative,
                    351:        authentication scheme is in use.
                    352: 
                    353:   --with-otp-only
                    354:        This option is now just an alias for --without-passwd.
                    355: 
                    356:   --with-selinux 
                    357:        Enable support for role based access control (RBAC) on
                    358:        systems that support SELinux.
                    359: 
1.1.1.3 ! misho     360:   --with-man
        !           361:         Use the "man" macros for manual pages.  By default, mdoc
        !           362:         versions of the manuals are installed.  This can be used
        !           363:         to override configure's test for "nroff -mdoc" support.
        !           364: 
        !           365:   --with-mdoc
        !           366:         Use the "mdoc" macros for manual pages.  By default, mdoc
        !           367:         versions of the manuals are installed.  This can be used
        !           368:         to override configure's test for "nroff -mdoc" support.
        !           369: 
1.1       misho     370: The following options are also configurable at runtime:
                    371: 
                    372:   --with-long-otp-prompt
                    373:        When validating with a One Time Password scheme (S/Key or
                    374:        OPIE), a two-line prompt is used to make it easier to cut
                    375:        and paste the challenge to a local window.  It's not as
                    376:        pretty as the default but some people find it more convenient.
                    377: 
                    378:   --with-logging=TYPE
                    379:        How you want to do your logging.  You may choose "syslog",
                    380:        "file", or "both".  Setting this to "syslog" is nice because
                    381:        you can keep all of your sudo logs in one place (see the
                    382:        sample.syslog.conf file).  The default is "syslog".
                    383: 
                    384:   --with-logfac=FACILITY
                    385:        Determines which syslog facility to log to.  This requires
                    386:        a 4.3BSD or later version of syslog.  You can still set
                    387:        this for ancient syslogs but it will have no effect.  The
                    388:        following facilities are supported: authpriv (if your OS
                    389:        supports it), auth, daemon, user, local0, local1, local2,
                    390:        local3, local4, local5, local6, and local7.
                    391: 
                    392:   --with-goodpri=PRIORITY
                    393:        Determines which syslog priority to log successfully
                    394:        authenticated commands.  The following priorities are
                    395:        supported: alert, crit, debug, emerg, err, info, notice,
                    396:        and warning.
                    397: 
                    398:   --with-badpri=PRIORITY
                    399:        Determines which syslog priority to log unauthenticated
                    400:        commands and errors.  The following priorities are supported:
                    401:        alert, crit, debug, emerg, err, info, notice, and warning.
                    402: 
                    403:   --with-logpath=PATH
                    404:        Override the default location of the sudo log file and use
                    405:        "path" instead.  By default will use /var/log/sudo.log if
                    406:        there is a /var/log dir, falling back to /var/adm/sudo.log
                    407:        or /usr/adm/sudo.log if not.
                    408: 
                    409:   --with-loglen=NUMBER
                    410:        Number of characters per line for the file log.  This is only used if
                    411:        you are to "file" or "both".  This value is used to decide when to wrap
                    412:        lines for nicer log files.  The default is 80.  Setting this to 0
                    413:        will disable the wrapping.
                    414: 
                    415:   --with-ignore-dot
                    416:        If set, sudo will ignore '.' or '' (current dir) in $PATH.
                    417:        The $PATH itself is not modified.
                    418: 
                    419:   --with-mailto=USER|MAIL_ALIAS
                    420:        User (or mail alias) that mail from sudo is sent to.
                    421:        This should go to a sysadmin at your site.  The default is "root".
                    422: 
                    423:   --with-mailsubject="SUBJECT OF MAIL"
                    424:        Subject of the mail sent to the "mailto" user. The token "%h"
                    425:        will expand to the hostname of the machine.
                    426:        Default is "*** SECURITY information for %h ***".
                    427: 
                    428:   --without-mail-if-no-user
                    429:        Normally, sudo will mail to the "alertmail" user if the user invoking
                    430:        sudo is not in the sudoers file.  This option disables that behavior.
                    431: 
                    432:   --with-mail-if-no-host
                    433:        Send mail to the "alermail" user if the user exists in the sudoers
                    434:        file, but is not allowed to run commands on the current host.
                    435: 
                    436:   --with-mail-if-noperms
                    437:        Send mail to the "alermail" user if the user is allowed to use sudo but
                    438:        the command they are trying is not listed in their sudoers file entry.
                    439: 
                    440:   --with-passprompt="PASSWORD PROMPT"
                    441:        Default prompt to use when asking for a password; can be overridden
                    442:        via the -p option and the SUDO_PROMPT environment variable. Supports
                    443:        the "%H", "%h", "%U" and "%u" escapes as documented in the sudo
                    444:        manual page.  The default value is "Password:".
                    445: 
                    446:   --with-badpass-message="BAD PASSWORD MESSAGE"
                    447:        Message that is displayed if a user enters an incorrect password.
                    448:        The default is "Sorry, try again." unless insults are turned on.
                    449: 
                    450:   --with-fqdn
                    451:        Define this if you want to put fully qualified hostnames in the sudoers
                    452:        file.  Ie: instead of myhost you would use myhost.mydomain.edu.  You may
                    453:        still use the short form if you wish (and even mix the two).  Beware
                    454:        that turning FQDN on requires sudo to make DNS lookups which may make
                    455:        sudo unusable if your DNS is totally hosed.  Also note that you must
                    456:        use the host's official name as DNS knows it.  That is, you may not use
                    457:        a host alias (CNAME entry) due to performance issues and the fact that
                    458:        there is no way to get all aliases from DNS.
                    459: 
                    460:   --with-timedir=PATH
                    461:        Override the default location of the sudo timestamp directory and
                    462:        use "path" instead.
                    463: 
                    464:   --with-sendmail=PATH
                    465:        Override configure's guess as to the location of sendmail.
                    466: 
                    467:   --without-sendmail
                    468:        Do not use sendmail to mail messages to the "mailto" user.
                    469:        Use only if don't run sendmail or the equivalent.
                    470: 
                    471:   --with-umask=MASK
                    472:        Umask to use when running the root command.  The default is 0022.
                    473: 
                    474:   --without-umask
                    475:        Preserves the umask of the user invoking sudo.
                    476: 
                    477:   --with-umask-override
                    478:         Use the umask specified in sudoers even if it is less restrictive
                    479:        than the user's.  The default is to use the intersection of the
                    480:        user's umask and the umask specified in sudoers.
                    481: 
                    482:   --with-runas-default=USER
                    483:        The default user to run commands as if the -u flag is not specified
                    484:        on the command line.  This defaults to "root".
                    485: 
                    486:   --with-exempt=GROUP
                    487:        Users in the specified group don't need to enter a password when
                    488:        running sudo.  This may be useful for sites that don't want their
                    489:        "core" sysadmins to have to enter a password but where Jr. sysadmins
                    490:        need to.  You should probably use NOPASSWD in sudoers instead.
                    491: 
                    492:   --with-passwd-tries=NUMBER
                    493:        Number of tries a user gets to enter his/her password before sudo logs
                    494:        the failure and exits.  The default is 3.
                    495: 
                    496:   --with-timeout=NUMBER
                    497:        Number of minutes that can elapse before sudo will ask for a passwd
                    498:        again.  The default is 5, set this to 0 to always prompt for a password.
                    499: 
                    500:   --with-password-timeout=NUMBER
                    501:        Number of minutes before the sudo password prompt times out.
                    502:        The default is 5, set this to 0 for no password timeout.
                    503: 
                    504:   --without-tty-tickets
                    505:        By default, sudo uses a different ticket file for each user/tty combo.
                    506:        With this option disabled, a single ticket will be used for all
                    507:        of a user's login sessions.
                    508: 
                    509:   --with-insults
                    510:        Define this if you want to be insulted for typing an incorrect password
                    511:        just like the original sudo(8).  This is off by default.
                    512: 
                    513:   --with-insults=disabled
                    514:         Include support for insults but disable them unless explicitly
                    515:         enabled in sudoers.
                    516: 
                    517:   --with-all-insults
                    518:        Include all the insult sets listed below.  You must either specify
                    519:        --with-insults or enable insults in the sudoers file for this to
                    520:        have any effect.
                    521: 
                    522:   --with-classic-insults
                    523:        Uses insults from sudo "classic."  If you just specify --with-insults
                    524:        you will get the classic and CSOps insults.  This is on by default if
                    525:        --with-insults is given.
                    526: 
                    527:   --with-csops-insults
                    528:        Insults the user with an extra set of insults (some quotes, some
                    529:        original) from a sysadmin group at CU (CSOps).  You must specify
                    530:        --with-insults as well for this to have any effect.  This is on by
                    531:        default if --with-insults is given.
                    532: 
                    533:   --with-hal-insults
                    534:        Uses 2001-like insults when an incorrect password is entered.
                    535:        You must either specify --with-insults or enable insults in the
                    536:        sudoers file for this to have any effect.
                    537: 
                    538:   --with-goons-insults
                    539:        Insults the user with lines from the "Goon Show" when an incorrect
                    540:        password is entered.  You must either specify --with-insults or
                    541:        enable insults in the sudoers file for this to have any effect.
                    542: 
                    543:   --with-pc-insults
                    544:        Replace politically incorrect insults with less objectionable ones.
                    545: 
                    546:   --with-secure-path[=PATH]
                    547:        Path used for every command run from sudo(8).  If you don't trust the
                    548:        people running sudo to have a sane PATH environment variable you may
                    549:        want to use this.  Another use is if you want to have the "root path"
                    550:        be separate from the "user path."  You will need to customize the path
                    551:        for your site.  NOTE: this is not applied to users in the group
                    552:        specified by --with-exemptgroup.  If you do not specify a path,
                    553:        "/bin:/usr/ucb:/usr/bin:/usr/sbin:/sbin:/usr/etc:/etc" is used.
                    554: 
                    555:   --without-lecture
                    556:        Don't print the lecture the first time a user runs sudo.
                    557: 
                    558:   --with-editor=PATH
                    559:        Specify the default editor path for use by visudo.  This may be a
                    560:        single path name or a colon-separated list of editors.  In the latter
                    561:        case, visudo will choose the editor that matches the user's VISUAL
                    562:        or EDITOR environment variables or the first editor in the list that
                    563:        exists.  The default is the path to vi on your system.
                    564: 
                    565:   --with-env-editor
                    566:        Makes visudo consult the VISUAL and EDITOR environment variables before
                    567:        falling back on the default editor list (as specified by --with-editor).
                    568:        Note that this may create a security hole as it allows the user to
                    569:        run any arbitrary command as root without logging.  A safer alternative
                    570:        is to use a colon-separated list of editors with the --with-editor
                    571:        option.  visudo will then only use the VISUAL or EDITOR variables
                    572:        if they match a value specified via --with-editor.
                    573: 
                    574:   --with-askpass=PATH
                    575:         Set PATH as the "askpass" program to use when no tty is
                    576:         available.  Typically, this is a graphical password prompter,
                    577:         similar to the one used by ssh.  The program must take a
                    578:         prompt as an argument and print the received password to
                    579:         the standard output.
                    580: 
                    581:   --with-iologdir[=DIR]
                    582:         By default, sudo stores I/O log files in either /var/log/sudo-io,
                    583:         /var/adm/sudo-io, or /usr/log/sudo-io.  If this option is
                    584:         specified, I/O logs will be stored in the indicated directory
                    585:         instead.
                    586: 
                    587:   --disable-authentication
                    588:        By default, sudo requires the user to authenticate via a
                    589:        password or similar means.  This options causes sudo to
                    590:        *not* require authentication.  It is possible to turn
                    591:        authentication back on in sudoers via the PASSWD attribute.
                    592: 
                    593:   --disable-root-sudo
                    594:        Don't let root run sudo.  This can be used to prevent people from
                    595:        "chaining" sudo commands to get a root shell by doing something
                    596:        like "sudo sudo /bin/sh".
                    597: 
                    598:   --enable-gss-krb5-ccache-name
                    599:         Use the gss_krb5_ccache_name() function to set the Kerberos
                    600:         V credential cache file name.  By default, sudo will use
                    601:         the KRB5CCNAME environment variable to set this.  While
                    602:         gss_krb5_ccache_name() provides a better API to do this it
                    603:         is not supported by all Kerberos V and SASL combinations.
                    604: 
                    605:   --enable-log-host
                    606:        Log the hostname in the log file.
                    607: 
                    608:   --enable-noargs-shell
                    609:        If sudo is invoked with no arguments it acts as if the "-s" flag had
                    610:        been given.  That is, it runs a shell as root (the shell is determined
                    611:        by the SHELL environment variable, falling back on the shell listed
                    612:        in the invoking user's /etc/passwd entry).
                    613: 
                    614:   --enable-shell-sets-home
                    615:        If sudo is invoked with the "-s" flag the HOME environment variable
                    616:        will be set to the home directory of the target user (which is root
                    617:        unless the "-u" option is used).  This option effectively makes the
                    618:        "-s" flag imply "-H".
                    619: 
                    620:   --disable-path-info
                    621:        Normally, sudo will tell the user when a command could not be found
                    622:        in their $PATH.  Some sites may wish to disable this as it could
                    623:        be used to gather information on the location of executables that
                    624:        the normal user does not have access to.  The disadvantage is that
                    625:        if the executable is simply not in the user's path, sudo will tell
                    626:        the user that they are not allowed to run it, which can be confusing.
                    627: 
                    628:   --enable-zlib[=location]
                    629:        Enable the use of the zlib compress library when storing
                    630:        I/O log files.  If specified, location is the base directory
                    631:        containing the zlib include and lib directories.  The special
                    632:        values "system" and "builtin" can be used to indicate that
                    633:        the system version of zlib should be used or that the version
                    634:        of zlib shipped with sudo should be used instead.
                    635:        If this option is not specified, configure will use the
                    636:        system zlib if it is present.
                    637: 
                    638:   --disable-zlib
                    639:         Disable the use of the zlib compress library when storing
                    640:         I/O log files.
                    641: 
                    642:   --enable-warnings
                    643:        Enable compiler warnings when building sudo with gcc.
                    644: 
                    645:   --enable-werror
                    646:        Enable the -Werror compiler option when building sudo with gcc.
                    647: 
1.1.1.3 ! misho     648:   --disable-hardening
        !           649:        Disable the use of compiler/linker exploit mitigation options
        !           650:        which are enabled by default.  This includes compiling with
        !           651:        _FORTIFY_SOURCE defined to 2, building with -fstack-protector
        !           652:        and linking with -zrelro, where supported.
        !           653: 
        !           654:   --disable-pie
        !           655:        Disable the creation of position independent executables (PIE)
        !           656:         even when the compiler and linker support them.
        !           657:        By default, sudo will be built as a PIE where possible.
        !           658: 
1.1       misho     659:   --enable-admin-flag
                    660:        Enable the creation of an Ubuntu-style admin flag file
                    661:        the first time sudo is run.
                    662: 
                    663:   --disable-env-reset
                    664:         Disable environment resetting.  This sets the default value
                    665:         of the "env_reset" Defaults option in sudoers to false.
                    666: 
                    667:   --enable-nls[=location]
                    668:         Enable natural language support using the gettext() family
                    669:         of functions.  If specified, location is the base directory
                    670:         containing the libintl include and lib directories.  If
                    671:         this option is not specified, configure will look for the
                    672:         gettext() family of functions in the standard C library
                    673:         first, then check for a standalone libintl (linking with
                    674:         libiconv as needed).
                    675: 
                    676:   --disable-nls
                    677:         Disable natural language support.  By default, sudo will
                    678:         use the gettext() family of functions, if available, to
                    679:         implement messages in the invoking user's native language.
                    680:        Note that translations do not exist for all languages.
                    681: 
                    682: Shadow password and C2 support
                    683: ==============================
                    684: 
                    685: Shadow passwords (also included with most C2 security packages) are
                    686: supported on most major platforms for which they exist.  The
                    687: `configure' script will attempt to determine if your system can use
                    688: shadow passwords and include support for them if so.  Shadow password
                    689: support is now compiled in by default (it doesn't hurt anything if you
                    690: don't have them configured).  To disable the shadow password support,
                    691: use the --disable-shadow option to configure.
                    692: 
                    693: Shadow passwords are known to work on the following platforms:
                    694: 
                    695:     SunOS 4.x
                    696:     Solaris 2.x
                    697:     HP-UX >= 9.x
                    698:     Ultrix 4.x
                    699:     Digital UNIX
                    700:     IRIX >= 5.x
                    701:     AIX >= 3.2.x
                    702:     Linux
                    703:     SCO >= 3.2.2
                    704:     Pyramid DC/OSx
                    705:     UnixWare
                    706:     SVR4 (and variants using standard SVR4 shadow passwords)
                    707:     4.4BSD based systems (including OpenBSD, NetBSD, FreeBSD, and Mac OS X)
                    708:     Systems using SecureWare's C2 security.
                    709: 
                    710: OS dependent notes
                    711: ==================
                    712: 
                    713: Linux:
                    714:     PAM and LDAP headers are not installed by default on most Linux
                    715:     systems.  You will need to install the "pam-dev" package if
                    716:     /usr/include/security/pam_appl.h is not present on your system.
                    717:     If you wish to build with LDAP support you will also need the
                    718:     openldap-devel package.
                    719: 
                    720:     Versions of glibc 2.x previous to 2.0.7 have a broken lsearch().
                    721:     You will need to either upgrade to glibc-2.0.7 or use sudo's
                    722:     version of lsearch().  To use sudo's lsearch(), comment out
                    723:     the "#define HAVE_LSEARCH 1" line in config.h and add lsearch.o
                    724:     to the LIBOBJS line in the Makefile.
                    725: 
                    726:     If you are using a Linux kernel older than 2.4 it is not possible
                    727:     to access the sudoers file via NFS.  This is due to a bug in
                    728:     the Linux client-side NFS implementation that has since been
                    729:     fixed.  There is a workaround on the sudo ftp site, linux_nfs.patch,
                    730:     if you need to NFS-mount sudoers on older Linux kernels.
                    731: 
                    732: Solaris 2.x:
                    733:     You need to have a C compiler in order to build sudo.  Since
                    734:     Solaris 2.x does not come with one by default this means that
                    735:     you either need to install the Sun Studio compiler suite,
                    736:     available for free from www.sun.com, or have a copy of the GNU
                    737:     C compiler (gcc) which is distributed on the Solaris Companion
                    738:     CD.  You can also get them from various places on the net,
                    739:     including http://www.sunfreeware.com/
                    740:     NOTE: sudo will *not* build with the sun C compiler in BSD
                    741:           compatibility mode (/usr/ucb/cc).  Sudo is designed to
                    742:           compile with the standard C compiler (or gcc) and will
                    743:           not build correctly with /usr/ucb/cc.  You can set the
                    744:           CC environment variable to the non-ucb compiler when
                    745:           running `configure' if it is not the first cc in your
                    746:           path.  Some sites link /usr/ucb/cc to gcc; configure will
                    747:           not notice this and still refuse to use /usr/ucb/cc, so
                    748:           make sure gcc is also in your path if your site is setup
                    749:           this way.
                    750:     Also: Older versions of Solaris come with a broken syslogd.
                    751:          If you have having problems with sudo logging you should
                    752:          make sure you have the latest syslogd patch installed.
                    753:          This is a problem for Solaris 2.4 and 2.5 at least.
                    754: 
                    755: Mac OS X:
                    756:     The pseudo-tty support in the Mac OS X kernel has bugs related
                    757:     to its handling of the SIGTSTP, SIGTTIN and SIGTTOU signals.
                    758:     It does not restart reads and writes when those signals are
                    759:     delivered.  This may cause problems for some commands when I/O
                    760:     logging is enabled.  The issue has been reported to Apple and
                    761:     is bug id #7952709.
                    762: 
                    763: HP-UX:
                    764:     The default C compiler shipped with HP-UX is not an ANSI compiler.
                    765:     You must use either the HP ANSI C compiler or gcc to build sudo.
                    766:     Binary packages of gcc are available from http://hpux.connect.org.uk/.
                    767: 
                    768:     To prevent PAM from overriding the value of umask on HP-UX 11,
                    769:     you will need to add a line like the following to /etc/pam.conf:
                    770: 
                    771:     sudo       session required        libpam_hpsec.so.1 bypass_umask
                    772: 
1.1.1.2   misho     773:     If every command run via sudo displays information about the last
                    774:     successful login and the last authentication failure you should
                    775:     make use an /etc/pam.conf line like:
                    776: 
                    777:     sudo       session required        libpam_hpsec.so.1 bypass_umask bypass_last_login
                    778: 
1.1       misho     779: Digital UNIX:
                    780:     By default, sudo will use SIA (Security Integration Architecture)
                    781:     to validate a user.  If you want to use an alternative authentication
                    782:     method that does not go through SIA, you need to use the
                    783:     --disable-sia option to configure.  If you use gcc to compile
                    784:     you will get warnings when building interfaces.c.  These are
                    785:     harmless but if they really bug you, you can edit
                    786:     /usr/include/net/if.h around line 123, right after the comment:
                    787:        /* forward decls for C++ */
                    788:     change the line:
                    789:        #ifdef __cplusplus
                    790:     to:
                    791:        #if defined(__cplusplus) || defined(__GNUC__)
                    792:     If you don't like the idea of editing the system header file
                    793:     you can just make a copy in gcc's private include tree and
                    794:     edit that.
                    795: 
                    796: AIX 3.2.x:
                    797:     I've had various problems with the AIX C compiler producing
                    798:     incorrect code when the -O flag was used.  When optimization
                    799:     is not used, the problems go away.  Gcc does not appear
                    800:     to have this problem.
                    801: 
                    802: SCO ODT:
                    803:     You'll probably need libcrypt_i.a available via anonymous ftp
                    804:     from sosco.sco.com.  The necessary files are /SLS/lng225b.Z
                    805:     and /SLS/lng225b.ltr.Z.
                    806: 
                    807: SunOS 4.x:
                    808:     SunOS does not ship with an ANSI C compiler.  You will need to
                    809:     install an ANSI compiler such as gcc to build sudo.
                    810: 
                    811:     The /bin/sh shipped with SunOS blows up while running configure.
                    812:     You can work around this by installing bash or zsh.  If you
                    813:     have bash or zsh in your path, configure will use it instead
                    814:     automatically.
                    815: 
                    816: ULTRIX 4.x:
                    817:     ULTRIX does not ship with an ANSI C compiler.  You will need to
                    818:     install an ANSI compiler such as gcc to build sudo.
                    819: 
                    820:     The /bin/sh shipped with ULTRIX blows up while running configure.
                    821:     You can work around this by installing bash or zsh.  If you
                    822:     have bash or zsh in your path, configure will use it instead
                    823:     automatically.
                    824: 
                    825:     ULTRIX ships with the 4.2BSD syslog(3) which does not
                    826:     allow things like logging different facilities to different
                    827:     files, redirecting logs to a single loghost and other niceties.
                    828:     You may want to just grab and install:
                    829:        ftp://www.sudo.ws/pub/sudo/misc/jtkohl-syslog-complete.tar.gz
                    830:     (available via anonymous ftp) which is a port if the 4.3BSD
                    831:     syslog/syslogd that is backwards compatible with the Ultrix version.
                    832:     I recommend it highly.  If you do not do this you probably want
                    833:     to run configure with --with-logging=file

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>