Annotation of embedaddon/sudo/doc/sudo.conf.mdoc.in, revision 1.1

1.1     ! misho       1: .\"
        !             2: .\" Copyright (c) 2010-2013 Todd C. Miller <Todd.Miller@courtesan.com>
        !             3: .\"
        !             4: .\" Permission to use, copy, modify, and distribute this software for any
        !             5: .\" purpose with or without fee is hereby granted, provided that the above
        !             6: .\" copyright notice and this permission notice appear in all copies.
        !             7: .\"
        !             8: .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !             9: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            10: .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            11: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            12: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            13: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            14: .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            15: .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            16: .\"
        !            17: .Dd March 14, 2013
        !            18: .Dt SUDO @mansectform@
        !            19: .Os Sudo @PACKAGE_VERSION@
        !            20: .Sh NAME
        !            21: .Nm sudo.conf
        !            22: .Nd configuration for sudo front end
        !            23: .Sh DESCRIPTION
        !            24: The
        !            25: .Nm sudo.conf
        !            26: file is used to configure the
        !            27: .Nm sudo
        !            28: front end.
        !            29: It specifies the security policy and I/O logging plugins, debug flags
        !            30: as well as plugin-agnostic path names and settings.
        !            31: .Pp
        !            32: The
        !            33: .Nm sudo.conf
        !            34: file supports the following directives, described in detail below.
        !            35: .Bl -tag -width 8n
        !            36: .It Plugin
        !            37: a security policy or I/O logging plugin
        !            38: .It Path
        !            39: a plugin-agnostic path
        !            40: .It Set
        !            41: a front end setting, such as
        !            42: .Em disable_coredump
        !            43: or
        !            44: .Em group_source
        !            45: .It Debug
        !            46: debug flags to aid in debugging
        !            47: .Nm sudo ,
        !            48: .Nm sudoreplay ,
        !            49: .Nm visudo ,
        !            50: and the
        !            51: .Nm sudoers
        !            52: plugin.
        !            53: .El
        !            54: .Pp
        !            55: The pound sign
        !            56: .Pq Ql #
        !            57: is used to indicate a comment.
        !            58: Both the comment character and any text after it, up to the end of
        !            59: the line, are ignored.
        !            60: .Pp
        !            61: Long lines can be continued with a backslash
        !            62: .Pq Ql \e
        !            63: as the last character on the line.
        !            64: Note that leading white space is removed from the beginning of lines
        !            65: even when the continuation character is used.
        !            66: .Pp
        !            67: Non-comment lines that don't begin with
        !            68: .Li Plugin ,
        !            69: .Li Path ,
        !            70: .Li Debug ,
        !            71: or
        !            72: .Li Set
        !            73: are silently ignored.
        !            74: .Pp
        !            75: The
        !            76: .Nm sudo.conf
        !            77: file is always parsed in the
        !            78: .Dq Li C
        !            79: locale.
        !            80: .Ss Plugin configuration
        !            81: .Nm sudo
        !            82: supports a plugin architecture for security policies and input/output
        !            83: logging.
        !            84: Third parties can develop and distribute their own policy and I/O
        !            85: logging plugins to work seamlessly with the
        !            86: .Nm sudo
        !            87: front end.
        !            88: Plugins are dynamically loaded based on the contents of
        !            89: .Nm sudo.conf .
        !            90: .Pp
        !            91: A
        !            92: .Li Plugin
        !            93: line consists of the
        !            94: .Li Plugin
        !            95: keyword, followed by the
        !            96: .Em symbol_name
        !            97: and the
        !            98: .Em path
        !            99: to the shared object containing the plugin.
        !           100: The
        !           101: .Em symbol_name
        !           102: is the name of the
        !           103: .Li struct policy_plugin
        !           104: or
        !           105: .Li struct io_plugin
        !           106: in the plugin shared object.
        !           107: The
        !           108: .Em path
        !           109: may be fully qualified or relative.
        !           110: If not fully qualified, it is relative to the
        !           111: .Pa @PLUGINDIR@
        !           112: directory.
        !           113: In other words:
        !           114: .Bd -literal -offset indent
        !           115: Plugin sudoers_policy sudoers.so
        !           116: .Ed
        !           117: .Pp
        !           118: is equivalent to:
        !           119: .Bd -literal -offset indent
        !           120: Plugin sudoers_policy @PLUGINDIR@/sudoers.so
        !           121: .Ed
        !           122: .Pp
        !           123: Starting with
        !           124: .Nm sudo
        !           125: 1.8.5, any additional parameters after the
        !           126: .Em path
        !           127: are passed as arguments to the plugin's
        !           128: .Em open
        !           129: function.
        !           130: For example, to override the compile-time default sudoers file mode:
        !           131: .Bd -literal -offset indent
        !           132: Plugin sudoers_policy sudoers.so sudoers_mode=0440
        !           133: .Ed
        !           134: .Pp
        !           135: The same shared object may contain multiple plugins, each with a
        !           136: different symbol name.
        !           137: The shared object file must be owned by uid 0 and only writable by its owner.
        !           138: Because of ambiguities that arise from composite policies, only a single
        !           139: policy plugin may be specified.
        !           140: This limitation does not apply to I/O plugins.
        !           141: .Pp
        !           142: If no
        !           143: .Nm sudo.conf
        !           144: file is present, or if it contains no
        !           145: .Li Plugin
        !           146: lines, the
        !           147: .Nm sudoers
        !           148: plugin will be used as the default security policy and for I/O logging
        !           149: (if enabled by the policy).
        !           150: This is equivalent to the following:
        !           151: .Bd -literal -offset indent
        !           152: Plugin sudoers_policy sudoers.so
        !           153: Plugin sudoers_io sudoers.so
        !           154: .Ed
        !           155: .Pp
        !           156: For more information on the
        !           157: .Nm sudo
        !           158: plugin architecture, see the
        !           159: .Xr sudo_plugin @mansectsu@
        !           160: manual.
        !           161: .Ss Path settings
        !           162: A
        !           163: .Li Path
        !           164: line consists of the
        !           165: .Li Path
        !           166: keyword, followed by the name of the path to set and its value.
        !           167: For example:
        !           168: .Bd -literal -offset indent
        !           169: Path noexec @noexec_file@
        !           170: Path askpass /usr/X11R6/bin/ssh-askpass
        !           171: .Ed
        !           172: .Pp
        !           173: The following plugin-agnostic paths may be set in the
        !           174: .Pa @sysconfdir@/sudo.conf
        !           175: file:
        !           176: .Bl -tag -width 8n
        !           177: .It askpass
        !           178: The fully qualified path to a helper program used to read the user's
        !           179: password when no terminal is available.
        !           180: This may be the case when
        !           181: .Nm sudo
        !           182: is executed from a graphical (as opposed to text-based) application.
        !           183: The program specified by
        !           184: .Em askpass
        !           185: should display the argument passed to it as the prompt and write
        !           186: the user's password to the standard output.
        !           187: The value of
        !           188: .Em askpass
        !           189: may be overridden by the
        !           190: .Ev SUDO_ASKPASS
        !           191: environment variable.
        !           192: .It noexec
        !           193: The fully-qualified path to a shared library containing dummy
        !           194: versions of the
        !           195: .Fn execv ,
        !           196: .Fn execve
        !           197: and
        !           198: .Fn fexecve
        !           199: library functions that just return an error.
        !           200: This is used to implement the
        !           201: .Em noexec
        !           202: functionality on systems that support
        !           203: .Ev LD_PRELOAD
        !           204: or its equivalent.
        !           205: The default value is:
        !           206: .Pa @noexec_file@ .
        !           207: .It sesh
        !           208: The fully-qualified path to the
        !           209: .Nm sesh
        !           210: binary.
        !           211: This setting is only used when
        !           212: .Nm sudo
        !           213: is built with SELinux support.
        !           214: The default value is
        !           215: .Pa @sesh_file@ .
        !           216: .El
        !           217: .Ss Other settings
        !           218: The
        !           219: .Nm sudo.conf
        !           220: file also supports the following front end settings:
        !           221: .Bl -tag -width 8n
        !           222: .It disable_coredump
        !           223: Core dumps of
        !           224: .Nm sudo
        !           225: itself are disabled by default.
        !           226: To aid in debugging
        !           227: .Nm sudo
        !           228: crashes, you may wish to re-enable core dumps by setting
        !           229: .Dq disable_coredump
        !           230: to false in
        !           231: .Nm sudo.conf
        !           232: as follows:
        !           233: .Bd -literal -offset indent
        !           234: Set disable_coredump false
        !           235: .Ed
        !           236: .Pp
        !           237: Note that most operating systems disable core dumps from setuid programs,
        !           238: including
        !           239: .Nm sudo .
        !           240: To actually get a
        !           241: .Nm sudo
        !           242: core file you will likely need to enable core dumps for setuid processes.
        !           243: On BSD and Linux systems this is accomplished in the
        !           244: .Xr sysctl
        !           245: command.
        !           246: On Solaris, the
        !           247: .Xr coreadm
        !           248: command is used to configure core dump behavior.
        !           249: .Pp
        !           250: This setting is only available in
        !           251: .Nm sudo
        !           252: version 1.8.4 and higher.
        !           253: .It group_source
        !           254: .Nm sudo
        !           255: passes the invoking user's group list to the policy and I/O plugins.
        !           256: On most systems, there is an upper limit to the number of groups that
        !           257: a user may belong to simultaneously (typically 16 for compatibility
        !           258: with NFS).
        !           259: On systems with the
        !           260: .Xr getconf 1
        !           261: utility, running:
        !           262: .Dl getconf NGROUPS_MAX
        !           263: will return the maximum number of groups.
        !           264: .Pp
        !           265: However, it is still possible to be a member of a larger number of
        !           266: groups--they simply won't be included in the group list returned
        !           267: by the kernel for the user.
        !           268: Starting with
        !           269: .Nm sudo
        !           270: version 1.8.7, if the user's kernel group list has the maximum number
        !           271: of entries,
        !           272: .Nm sudo
        !           273: will consult the group database directly to determine the group list.
        !           274: This makes it possible for the security policy to perform matching by group
        !           275: name even when the user is a member of more than the maximum number of groups.
        !           276: .Pp
        !           277: The
        !           278: .Em group_source
        !           279: setting allows the administrator to change this default behavior.
        !           280: Supported values for
        !           281: .Em group_source
        !           282: are:
        !           283: .Bl -tag -width 8n
        !           284: .It static
        !           285: Use the static group list that the kernel returns.
        !           286: Retrieving the group list this way is very fast but it is subject
        !           287: to an upper limit as described above.
        !           288: It is
        !           289: .Dq static
        !           290: in that it does not reflect changes to the group database made
        !           291: after the user logs in.
        !           292: This was the default behavior prior to
        !           293: .Nm sudo
        !           294: 1.8.7.
        !           295: .It dynamic
        !           296: Always query the group database directly.
        !           297: It is
        !           298: .Dq dynamic
        !           299: in that changes made to the group database after the user logs in
        !           300: will be reflected in the group list.
        !           301: On some systems, querying the group database for all of a user's
        !           302: groups can be time consuming when querying a network-based group
        !           303: database.
        !           304: Most operating systems provide an efficient method of performing
        !           305: such queries.
        !           306: Currently,
        !           307: .Nm sudo
        !           308: supports efficient group queries on AIX, BSD, HP-UX, Linux and
        !           309: Solaris.
        !           310: .It adaptive
        !           311: Only query the group database if the static group list returned
        !           312: by the kernel has the maximum number of entries.
        !           313: This is the default behavior in
        !           314: .Nm sudo
        !           315: 1.8.7 and higher.
        !           316: .El
        !           317: .Pp
        !           318: For example, to cause
        !           319: .Nm sudo
        !           320: to only use the kernel's static list of groups for the user:
        !           321: .Bd -literal -offset indent
        !           322: Set group_source static
        !           323: .Ed
        !           324: .Pp
        !           325: This setting is only available in
        !           326: .Nm sudo
        !           327: version 1.8.7 and higher.
        !           328: .It max_groups
        !           329: The maximum number of user groups to retrieve from the group database.
        !           330: This setting is only used when querying the group database directly.
        !           331: It is intended to be used on systems where it is not possible to detect
        !           332: when the array to be populated with group entries is not sufficiently large.
        !           333: By default,
        !           334: .Nm sudo
        !           335: will allocate four times the system's maximum number of groups (see above)
        !           336: and retry with double that number if the group database query fails.
        !           337: However, some systems just return as many entries as will fit and
        !           338: do not indicate an error when there is a lack of space.
        !           339: .Pp
        !           340: This setting is only available in
        !           341: .Nm sudo
        !           342: version 1.8.7 and higher.
        !           343: .El
        !           344: .Ss Debug flags
        !           345: .Nm sudo
        !           346: versions 1.8.4 and higher support a flexible debugging framework
        !           347: that can help track down what
        !           348: .Nm sudo
        !           349: is doing internally if there is a problem.
        !           350: .Pp
        !           351: A
        !           352: .Li Debug
        !           353: line consists of the
        !           354: .Li Debug
        !           355: keyword, followed by the name of the program (or plugin) to debug
        !           356: .Pq Nm sudo , Nm visudo , Nm sudoreplay , Nm sudoers ,
        !           357: the debug file name and a comma-separated list of debug flags.  The
        !           358: debug flag syntax used by
        !           359: .Nm sudo
        !           360: and the
        !           361: .Nm sudoers
        !           362: plugin is
        !           363: .Em subsystem Ns No @ Ns Em priority
        !           364: but a plugin is free to use a different format so long as it does
        !           365: not include a comma
        !           366: .Pq Ql \&, .
        !           367: .Pp
        !           368: For example:
        !           369: .Bd -literal -offset indent
        !           370: Debug sudo /var/log/sudo_debug all@warn,plugin@info
        !           371: .Ed
        !           372: .Pp
        !           373: would log all debugging statements at the
        !           374: .Em warn
        !           375: level and higher in addition to those at the
        !           376: .Em info
        !           377: level for the plugin subsystem.
        !           378: .Pp
        !           379: Currently, only one
        !           380: .Li Debug
        !           381: entry per program is supported.  The
        !           382: .Nm sudo
        !           383: .Li Debug
        !           384: entry is shared by the
        !           385: .Nm sudo
        !           386: front end,
        !           387: .Nm sudoedit
        !           388: and the plugins.  A future release may add support for per-plugin
        !           389: .Li Debug
        !           390: lines and/or support for multiple debugging files for a single
        !           391: program.
        !           392: .Pp
        !           393: The priorities used by the
        !           394: .Nm sudo
        !           395: front end, in order of decreasing severity, are:
        !           396: .Em crit , err , warn , notice , diag , info , trace
        !           397: and
        !           398: .Em debug .
        !           399: Each priority, when specified, also includes all priorities higher
        !           400: than it.  For example, a priority of
        !           401: .Em notice
        !           402: would include debug messages logged at
        !           403: .Em notice
        !           404: and higher.
        !           405: .Pp
        !           406: The following subsystems are used by the
        !           407: .Nm sudo
        !           408: front-end:
        !           409: .Bl -tag -width Fl
        !           410: .It Em all
        !           411: matches every subsystem
        !           412: .It Em args
        !           413: command line argument processing
        !           414: .It Em conv
        !           415: user conversation
        !           416: .It Em edit
        !           417: sudoedit
        !           418: .It Em exec
        !           419: command execution
        !           420: .It Em main
        !           421: .Nm sudo
        !           422: main function
        !           423: .It Em netif
        !           424: network interface handling
        !           425: .It Em pcomm
        !           426: communication with the plugin
        !           427: .It Em plugin
        !           428: plugin configuration
        !           429: .It Em pty
        !           430: pseudo-tty related code
        !           431: .It Em selinux
        !           432: SELinux-specific handling
        !           433: .It Em util
        !           434: utility functions
        !           435: .It Em utmp
        !           436: utmp handling
        !           437: .El
        !           438: .Pp
        !           439: The
        !           440: .Xr sudoers @mansectform@
        !           441: plugin includes support for additional subsystems.
        !           442: .Sh FILES
        !           443: .Bl -tag -width 24n
        !           444: .It Pa @sysconfdir@/sudo.conf
        !           445: .Nm sudo
        !           446: front end configuration
        !           447: .El
        !           448: .Sh EXAMPLES
        !           449: .Bd -literal
        !           450: #
        !           451: # Default @sysconfdir@/sudo.conf file
        !           452: #
        !           453: # Format:
        !           454: #   Plugin plugin_name plugin_path plugin_options ...
        !           455: #   Path askpass /path/to/askpass
        !           456: #   Path noexec /path/to/sudo_noexec.so
        !           457: #   Debug sudo /var/log/sudo_debug all@warn
        !           458: #   Set disable_coredump true
        !           459: #
        !           460: # The plugin_path is relative to @PLUGINDIR@ unless
        !           461: #   fully qualified.
        !           462: # The plugin_name corresponds to a global symbol in the plugin
        !           463: #   that contains the plugin interface structure.
        !           464: # The plugin_options are optional.
        !           465: #
        !           466: # The sudoers plugin is used by default if no Plugin lines are
        !           467: # present.
        !           468: Plugin sudoers_policy sudoers.so
        !           469: Plugin sudoers_io sudoers.so
        !           470: 
        !           471: #
        !           472: # Sudo askpass:
        !           473: #
        !           474: # An askpass helper program may be specified to provide a graphical
        !           475: # password prompt for "sudo -A" support.  Sudo does not ship with
        !           476: # its own askpass program but can use the OpenSSH askpass.
        !           477: #
        !           478: # Use the OpenSSH askpass
        !           479: #Path askpass /usr/X11R6/bin/ssh-askpass
        !           480: #
        !           481: # Use the Gnome OpenSSH askpass
        !           482: #Path askpass /usr/libexec/openssh/gnome-ssh-askpass
        !           483: 
        !           484: #
        !           485: # Sudo noexec:
        !           486: #
        !           487: # Path to a shared library containing dummy versions of the execv(),
        !           488: # execve() and fexecve() library functions that just return an error.
        !           489: # This is used to implement the "noexec" functionality on systems that
        !           490: # support C<LD_PRELOAD> or its equivalent.
        !           491: # The compiled-in value is usually sufficient and should only be
        !           492: # changed if you rename or move the sudo_noexec.so file.
        !           493: #
        !           494: #Path noexec @noexec_file@
        !           495: 
        !           496: #
        !           497: # Core dumps:
        !           498: #
        !           499: # By default, sudo disables core dumps while it is executing
        !           500: # (they are re-enabled for the command that is run).
        !           501: # To aid in debugging sudo problems, you may wish to enable core
        !           502: # dumps by setting "disable_coredump" to false.
        !           503: #
        !           504: #Set disable_coredump false
        !           505: 
        !           506: #
        !           507: # User groups:
        !           508: #
        !           509: # Sudo passes the user's group list to the policy plugin.
        !           510: # If the user is a member of the maximum number of groups (usually 16),
        !           511: # sudo will query the group database directly to be sure to include
        !           512: # the full list of groups.
        !           513: #
        !           514: # On some systems, this can be expensive so the behavior is configurable.
        !           515: # The "group_source" setting has three possible values:
        !           516: #   static   - use the user's list of groups returned by the kernel.
        !           517: #   dynamic  - query the group database to find the list of groups.
        !           518: #   adaptive - if user is in less than the maximum number of groups.
        !           519: #              use the kernel list, else query the group database.
        !           520: #
        !           521: #Set group_source static
        !           522: .Ed
        !           523: .Sh SEE ALSO
        !           524: .Xr sudoers @mansectform@ ,
        !           525: .Xr sudo @mansectsu@ ,
        !           526: .Xr sudo_plugin @mansectsu@
        !           527: .Sh HISTORY
        !           528: See the HISTORY file in the
        !           529: .Nm sudo
        !           530: distribution (http://www.sudo.ws/sudo/history.html) for a brief
        !           531: history of sudo.
        !           532: .Sh AUTHORS
        !           533: Many people have worked on
        !           534: .Nm sudo
        !           535: over the years; this version consists of code written primarily by:
        !           536: .Bd -ragged -offset indent
        !           537: Todd C. Miller
        !           538: .Ed
        !           539: .Pp
        !           540: See the CONTRIBUTORS file in the
        !           541: .Nm sudo
        !           542: distribution (http://www.sudo.ws/sudo/contributors.html) for an
        !           543: exhaustive list of people who have contributed to
        !           544: .Nm sudo .
        !           545: .Sh BUGS
        !           546: If you feel you have found a bug in
        !           547: .Nm sudo ,
        !           548: please submit a bug report at http://www.sudo.ws/sudo/bugs/
        !           549: .Sh SUPPORT
        !           550: Limited free support is available via the sudo-users mailing list,
        !           551: see http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or
        !           552: search the archives.
        !           553: .Sh DISCLAIMER
        !           554: .Nm sudo
        !           555: is provided
        !           556: .Dq AS IS
        !           557: and any express or implied warranties, including, but not limited
        !           558: to, the implied warranties of merchantability and fitness for a
        !           559: particular purpose are disclaimed.
        !           560: See the LICENSE file distributed with
        !           561: .Nm sudo
        !           562: or http://www.sudo.ws/sudo/license.html for complete details.

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