Annotation of embedaddon/sudo/doc/sudo.conf.cat, revision 1.1.1.3
1.1 misho 1: SUDO(4) Programmer's Manual SUDO(4)
2:
3: NNAAMMEE
4: ssuuddoo..ccoonnff - configuration for sudo front end
5:
6: DDEESSCCRRIIPPTTIIOONN
7: The ssuuddoo..ccoonnff file is used to configure the ssuuddoo front end. It specifies
8: the security policy and I/O logging plugins, debug flags as well as
9: plugin-agnostic path names and settings.
10:
11: The ssuuddoo..ccoonnff file supports the following directives, described in detail
12: below.
13:
14: Plugin a security policy or I/O logging plugin
15:
16: Path a plugin-agnostic path
17:
18: Set a front end setting, such as _d_i_s_a_b_l_e___c_o_r_e_d_u_m_p or _g_r_o_u_p___s_o_u_r_c_e
19:
20: Debug debug flags to aid in debugging ssuuddoo, ssuuddoorreeppllaayy, vviissuuddoo, and
21: the ssuuddooeerrss plugin.
22:
23: The pound sign (`#') is used to indicate a comment. Both the comment
24: character and any text after it, up to the end of the line, are ignored.
25:
26: Long lines can be continued with a backslash (`\') as the last character
27: on the line. Note that leading white space is removed from the beginning
28: of lines even when the continuation character is used.
29:
30: Non-comment lines that don't begin with Plugin, Path, Debug, or Set are
31: silently ignored.
32:
33: The ssuuddoo..ccoonnff file is always parsed in the ``C'' locale.
34:
35: PPlluuggiinn ccoonnffiigguurraattiioonn
36: ssuuddoo supports a plugin architecture for security policies and
37: input/output logging. Third parties can develop and distribute their own
38: policy and I/O logging plugins to work seamlessly with the ssuuddoo front
39: end. Plugins are dynamically loaded based on the contents of ssuuddoo..ccoonnff.
40:
41: A Plugin line consists of the Plugin keyword, followed by the _s_y_m_b_o_l___n_a_m_e
1.1.1.3 ! misho 42: and the _p_a_t_h to the dynamic shared object that contains the plugin. The
! 43: _s_y_m_b_o_l___n_a_m_e is the name of the struct policy_plugin or struct io_plugin
! 44: symbol contained in the plugin. The _p_a_t_h may be fully qualified or
! 45: relative. If not fully qualified, it is relative to the directory
! 46: specified by the _p_l_u_g_i_n___d_i_r Path setting, which defaults to
! 47: _/_u_s_r_/_l_o_c_a_l_/_l_i_b_e_x_e_c_/_s_u_d_o. In other words:
1.1 misho 48:
49: Plugin sudoers_policy sudoers.so
50:
51: is equivalent to:
52:
53: Plugin sudoers_policy /usr/local/libexec/sudo/sudoers.so
54:
1.1.1.3 ! misho 55: If the plugin was compiled statically into the ssuuddoo binary instead of
! 56: being installed as a dynamic shared object, the _p_a_t_h should be specified
! 57: without a leading directory, as it does not actually exist in the file
! 58: system. For example:
! 59:
! 60: Plugin sudoers_policy sudoers.so
! 61:
1.1 misho 62: Starting with ssuuddoo 1.8.5, any additional parameters after the _p_a_t_h are
63: passed as arguments to the plugin's _o_p_e_n function. For example, to
64: override the compile-time default sudoers file mode:
65:
66: Plugin sudoers_policy sudoers.so sudoers_mode=0440
67:
1.1.1.3 ! misho 68: The same dynamic shared object may contain multiple plugins, each with a
! 69: different symbol name. The file must be owned by uid 0 and only writable
! 70: by its owner. Because of ambiguities that arise from composite policies,
! 71: only a single policy plugin may be specified. This limitation does not
! 72: apply to I/O plugins.
1.1 misho 73:
74: If no ssuuddoo..ccoonnff file is present, or if it contains no Plugin lines, the
75: ssuuddooeerrss plugin will be used as the default security policy and for I/O
76: logging (if enabled by the policy). This is equivalent to the following:
77:
78: Plugin sudoers_policy sudoers.so
79: Plugin sudoers_io sudoers.so
80:
81: For more information on the ssuuddoo plugin architecture, see the
82: sudo_plugin(1m) manual.
83:
84: PPaatthh sseettttiinnggss
85: A Path line consists of the Path keyword, followed by the name of the
86: path to set and its value. For example:
87:
88: Path noexec /usr/local/libexec/sudo/sudo_noexec.so
89: Path askpass /usr/X11R6/bin/ssh-askpass
90:
91: The following plugin-agnostic paths may be set in the _/_e_t_c_/_s_u_d_o_._c_o_n_f
92: file:
93:
94: askpass The fully qualified path to a helper program used to read the
95: user's password when no terminal is available. This may be the
96: case when ssuuddoo is executed from a graphical (as opposed to
97: text-based) application. The program specified by _a_s_k_p_a_s_s
98: should display the argument passed to it as the prompt and
99: write the user's password to the standard output. The value of
100: _a_s_k_p_a_s_s may be overridden by the SUDO_ASKPASS environment
101: variable.
102:
103: noexec The fully-qualified path to a shared library containing dummy
104: versions of the eexxeeccvv(), eexxeeccvvee() and ffeexxeeccvvee() library
105: functions that just return an error. This is used to implement
106: the _n_o_e_x_e_c functionality on systems that support LD_PRELOAD or
107: its equivalent. The default value is:
108: _/_u_s_r_/_l_o_c_a_l_/_l_i_b_e_x_e_c_/_s_u_d_o_/_s_u_d_o___n_o_e_x_e_c_._s_o.
109:
1.1.1.2 misho 110: plugin_dir
111: The default directory to use when searching for plugins that
112: are specified without a fully qualified path name. The default
113: value is _/_u_s_r_/_l_o_c_a_l_/_l_i_b_e_x_e_c_/_s_u_d_o.
114:
1.1 misho 115: sesh The fully-qualified path to the sseesshh binary. This setting is
116: only used when ssuuddoo is built with SELinux support. The default
117: value is _/_u_s_r_/_l_o_c_a_l_/_l_i_b_e_x_e_c_/_s_u_d_o_/_s_e_s_h.
118:
119: OOtthheerr sseettttiinnggss
120: The ssuuddoo..ccoonnff file also supports the following front end settings:
121:
122: disable_coredump
123: Core dumps of ssuuddoo itself are disabled by default. To aid in
124: debugging ssuuddoo crashes, you may wish to re-enable core dumps by
125: setting ``disable_coredump'' to false in ssuuddoo..ccoonnff as follows:
126:
127: Set disable_coredump false
128:
129: Note that most operating systems disable core dumps from setuid
130: programs, including ssuuddoo. To actually get a ssuuddoo core file you
131: will likely need to enable core dumps for setuid processes. On
132: BSD and Linux systems this is accomplished in the sysctl
133: command. On Solaris, the coreadm command is used to configure
134: core dump behavior.
135:
136: This setting is only available in ssuuddoo version 1.8.4 and
137: higher.
138:
139: group_source
140: ssuuddoo passes the invoking user's group list to the policy and
141: I/O plugins. On most systems, there is an upper limit to the
142: number of groups that a user may belong to simultaneously
143: (typically 16 for compatibility with NFS). On systems with the
144: getconf(1) utility, running:
145: getconf NGROUPS_MAX
146: will return the maximum number of groups.
147:
148: However, it is still possible to be a member of a larger number
149: of groups--they simply won't be included in the group list
150: returned by the kernel for the user. Starting with ssuuddoo
151: version 1.8.7, if the user's kernel group list has the maximum
152: number of entries, ssuuddoo will consult the group database
153: directly to determine the group list. This makes it possible
154: for the security policy to perform matching by group name even
155: when the user is a member of more than the maximum number of
156: groups.
157:
158: The _g_r_o_u_p___s_o_u_r_c_e setting allows the administrator to change
159: this default behavior. Supported values for _g_r_o_u_p___s_o_u_r_c_e are:
160:
161: static Use the static group list that the kernel returns.
162: Retrieving the group list this way is very fast but
163: it is subject to an upper limit as described above.
164: It is ``static'' in that it does not reflect changes
165: to the group database made after the user logs in.
166: This was the default behavior prior to ssuuddoo 1.8.7.
167:
168: dynamic Always query the group database directly. It is
169: ``dynamic'' in that changes made to the group
170: database after the user logs in will be reflected in
171: the group list. On some systems, querying the group
172: database for all of a user's groups can be time
173: consuming when querying a network-based group
174: database. Most operating systems provide an
175: efficient method of performing such queries.
176: Currently, ssuuddoo supports efficient group queries on
177: AIX, BSD, HP-UX, Linux and Solaris.
178:
179: adaptive Only query the group database if the static group
180: list returned by the kernel has the maximum number of
181: entries. This is the default behavior in ssuuddoo 1.8.7
182: and higher.
183:
184: For example, to cause ssuuddoo to only use the kernel's static list
185: of groups for the user:
186:
187: Set group_source static
188:
189: This setting is only available in ssuuddoo version 1.8.7 and
190: higher.
191:
192: max_groups
193: The maximum number of user groups to retrieve from the group
1.1.1.2 misho 194: database. Values less than one will be ignored. This setting
195: is only used when querying the group database directly. It is
196: intended to be used on systems where it is not possible to
197: detect when the array to be populated with group entries is not
198: sufficiently large. By default, ssuuddoo will allocate four times
199: the system's maximum number of groups (see above) and retry
200: with double that number if the group database query fails.
201: However, some systems just return as many entries as will fit
202: and do not indicate an error when there is a lack of space.
1.1 misho 203:
204: This setting is only available in ssuuddoo version 1.8.7 and
205: higher.
206:
1.1.1.3 ! misho 207: probe_interfaces
! 208: By default, ssuuddoo will probe the system's network interfaces and
! 209: pass the IP address of each enabled interface to the policy
! 210: plugin. This makes it possible for the plugin to match rules
! 211: based on the IP address without having to query DNS. On Linux
! 212: systems with a large number of virtual interfaces, this may
! 213: take a non-negligible amount of time. If IP-based matching is
! 214: not required, network interface probing can be disabled as
! 215: follows:
! 216:
! 217: Set probe_interfaces false
! 218:
! 219: This setting is only available in ssuuddoo version 1.8.10 and
! 220: higher.
! 221:
1.1 misho 222: DDeebbuugg ffllaaggss
223: ssuuddoo versions 1.8.4 and higher support a flexible debugging framework
224: that can help track down what ssuuddoo is doing internally if there is a
225: problem.
226:
227: A Debug line consists of the Debug keyword, followed by the name of the
228: program (or plugin) to debug (ssuuddoo, vviissuuddoo, ssuuddoorreeppllaayy, ssuuddooeerrss), the
229: debug file name and a comma-separated list of debug flags. The debug
230: flag syntax used by ssuuddoo and the ssuuddooeerrss plugin is _s_u_b_s_y_s_t_e_m@_p_r_i_o_r_i_t_y but
231: a plugin is free to use a different format so long as it does not include
232: a comma (`,').
233:
234: For example:
235:
236: Debug sudo /var/log/sudo_debug all@warn,plugin@info
237:
238: would log all debugging statements at the _w_a_r_n level and higher in
239: addition to those at the _i_n_f_o level for the plugin subsystem.
240:
241: Currently, only one Debug entry per program is supported. The ssuuddoo Debug
242: entry is shared by the ssuuddoo front end, ssuuddooeeddiitt and the plugins. A
243: future release may add support for per-plugin Debug lines and/or support
244: for multiple debugging files for a single program.
245:
246: The priorities used by the ssuuddoo front end, in order of decreasing
247: severity, are: _c_r_i_t, _e_r_r, _w_a_r_n, _n_o_t_i_c_e, _d_i_a_g, _i_n_f_o, _t_r_a_c_e and _d_e_b_u_g.
248: Each priority, when specified, also includes all priorities higher than
249: it. For example, a priority of _n_o_t_i_c_e would include debug messages
250: logged at _n_o_t_i_c_e and higher.
251:
252: The following subsystems are used by the ssuuddoo front-end:
253:
254: _a_l_l matches every subsystem
255:
256: _a_r_g_s command line argument processing
257:
258: _c_o_n_v user conversation
259:
260: _e_d_i_t sudoedit
261:
1.1.1.3 ! misho 262: _e_v_e_n_t event subsystem
! 263:
1.1 misho 264: _e_x_e_c command execution
265:
266: _m_a_i_n ssuuddoo main function
267:
268: _n_e_t_i_f network interface handling
269:
270: _p_c_o_m_m communication with the plugin
271:
272: _p_l_u_g_i_n plugin configuration
273:
274: _p_t_y pseudo-tty related code
275:
276: _s_e_l_i_n_u_x SELinux-specific handling
277:
278: _u_t_i_l utility functions
279:
280: _u_t_m_p utmp handling
281:
282: The sudoers(4) plugin includes support for additional subsystems.
283:
284: FFIILLEESS
285: _/_e_t_c_/_s_u_d_o_._c_o_n_f ssuuddoo front end configuration
286:
287: EEXXAAMMPPLLEESS
288: #
289: # Default /etc/sudo.conf file
290: #
291: # Format:
292: # Plugin plugin_name plugin_path plugin_options ...
293: # Path askpass /path/to/askpass
294: # Path noexec /path/to/sudo_noexec.so
295: # Debug sudo /var/log/sudo_debug all@warn
296: # Set disable_coredump true
297: #
298: # The plugin_path is relative to /usr/local/libexec/sudo unless
299: # fully qualified.
300: # The plugin_name corresponds to a global symbol in the plugin
301: # that contains the plugin interface structure.
302: # The plugin_options are optional.
303: #
304: # The sudoers plugin is used by default if no Plugin lines are
305: # present.
306: Plugin sudoers_policy sudoers.so
307: Plugin sudoers_io sudoers.so
308:
309: #
310: # Sudo askpass:
311: #
312: # An askpass helper program may be specified to provide a graphical
313: # password prompt for "sudo -A" support. Sudo does not ship with
314: # its own askpass program but can use the OpenSSH askpass.
315: #
316: # Use the OpenSSH askpass
317: #Path askpass /usr/X11R6/bin/ssh-askpass
318: #
319: # Use the Gnome OpenSSH askpass
320: #Path askpass /usr/libexec/openssh/gnome-ssh-askpass
321:
322: #
323: # Sudo noexec:
324: #
325: # Path to a shared library containing dummy versions of the execv(),
326: # execve() and fexecve() library functions that just return an error.
327: # This is used to implement the "noexec" functionality on systems that
328: # support C<LD_PRELOAD> or its equivalent.
329: # The compiled-in value is usually sufficient and should only be
330: # changed if you rename or move the sudo_noexec.so file.
331: #
332: #Path noexec /usr/local/libexec/sudo/sudo_noexec.so
333:
334: #
335: # Core dumps:
336: #
337: # By default, sudo disables core dumps while it is executing
338: # (they are re-enabled for the command that is run).
339: # To aid in debugging sudo problems, you may wish to enable core
340: # dumps by setting "disable_coredump" to false.
341: #
342: #Set disable_coredump false
343:
344: #
345: # User groups:
346: #
347: # Sudo passes the user's group list to the policy plugin.
348: # If the user is a member of the maximum number of groups (usually 16),
349: # sudo will query the group database directly to be sure to include
350: # the full list of groups.
351: #
352: # On some systems, this can be expensive so the behavior is configurable.
353: # The "group_source" setting has three possible values:
354: # static - use the user's list of groups returned by the kernel.
355: # dynamic - query the group database to find the list of groups.
356: # adaptive - if user is in less than the maximum number of groups.
357: # use the kernel list, else query the group database.
358: #
359: #Set group_source static
360:
361: SSEEEE AALLSSOO
362: sudoers(4), sudo(1m), sudo_plugin(1m)
363:
364: HHIISSTTOORRYY
365: See the HISTORY file in the ssuuddoo distribution
366: (http://www.sudo.ws/sudo/history.html) for a brief history of sudo.
367:
368: AAUUTTHHOORRSS
369: Many people have worked on ssuuddoo over the years; this version consists of
370: code written primarily by:
371:
372: Todd C. Miller
373:
374: See the CONTRIBUTORS file in the ssuuddoo distribution
375: (http://www.sudo.ws/sudo/contributors.html) for an exhaustive list of
376: people who have contributed to ssuuddoo.
377:
378: BBUUGGSS
379: If you feel you have found a bug in ssuuddoo, please submit a bug report at
380: http://www.sudo.ws/sudo/bugs/
381:
382: SSUUPPPPOORRTT
383: Limited free support is available via the sudo-users mailing list, see
384: http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or search the
385: archives.
386:
387: DDIISSCCLLAAIIMMEERR
388: ssuuddoo is provided ``AS IS'' and any express or implied warranties,
389: including, but not limited to, the implied warranties of merchantability
390: and fitness for a particular purpose are disclaimed. See the LICENSE
391: file distributed with ssuuddoo or http://www.sudo.ws/sudo/license.html for
392: complete details.
393:
1.1.1.3 ! misho 394: Sudo 1.8.10 January 22, 2014 Sudo 1.8.10
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>