source: postlfs/security/sudo.xml@ 7f99ddf

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 7f99ddf was 7f99ddf, checked in by Pierre Labastie <pieere@…>, 4 years ago

Expand the explanation of --with-passprompt for sudo. Thanks to K. Buckley
for the patch

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@23041 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 11.9 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY sudo-download-http "http://www.sudo.ws/dist/sudo-&sudo-version;.tar.gz">
8 <!ENTITY sudo-download-ftp "ftp://ftp.sudo.ws/pub/sudo/sudo-&sudo-version;.tar.gz">
9 <!ENTITY sudo-md5sum "ffb34c62c511fd3f9862d7f48eb8d655">
10 <!ENTITY sudo-size "3.2 MB">
11 <!ENTITY sudo-buildsize "39 MB (with tests)">
12 <!ENTITY sudo-time "0.4 SBU (with tests)">
13]>
14
15<sect1 id="sudo" xreflabel="Sudo-&sudo-version;">
16 <?dbhtml filename="sudo.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>Sudo-&sudo-version;</title>
24
25 <indexterm zone="sudo">
26 <primary sortas="a-Sudo">Sudo</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to Sudo</title>
31
32 <para>
33 The <application>Sudo</application> package allows a system administrator
34 to give certain users (or groups of users) the ability to run
35 some (or all) commands as
36 <systemitem class="username">root</systemitem> or another user while
37 logging the commands and arguments.
38 </para>
39
40 &lfs91_checked;
41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&sudo-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&sudo-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &sudo-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &sudo-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &sudo-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &sudo-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76 <bridgehead renderas="sect3">Sudo Dependencies</bridgehead>
77
78 <bridgehead renderas="sect4">Optional</bridgehead>
79 <para role="optional">
80 <xref linkend="linux-pam"/>,
81 <xref linkend="mitkrb"/>,
82 <xref linkend="openldap"/>,
83 <xref linkend="server-mail"/> (that provides a
84 <command>sendmail</command> command),
85 <ulink url="http://www.openafs.org/">AFS</ulink>,
86 <ulink url="http://www.fwtk.org/">FWTK</ulink>, and
87 <ulink url="&sourceforge-dl;/opie/">Opie</ulink>
88<!-- <ulink url="http://www.rsa.com/node.aspx?id=1156">SecurID</ulink>-->
89 </para>
90
91 <para condition="html" role="usernotes">User Notes:
92 <ulink url="&blfs-wiki;/sudo"/>
93 </para>
94 </sect2>
95
96 <sect2 role="installation">
97 <title>Installation of Sudo</title>
98
99 <para>
100 First, fix a problem that prevents installation from completion:
101 </para>
102
103<screen><userinput>sed -e '/^pre-install:/{N;s@;@ -a -r $(sudoersdir)/sudoers;@}' \
104 -i plugins/sudoers/Makefile.in</userinput></screen>
105
106 <para>
107 Install <application>Sudo</application> by running the following commands:
108 </para>
109
110<!-- Developer: apparently it is disabled by default, although in configure it
111is written otherwise -disable-static \-->
112<screen><userinput>./configure --prefix=/usr \
113 --libexecdir=/usr/lib \
114 --with-secure-path \
115 --with-all-insults \
116 --with-env-editor \
117 --docdir=/usr/share/doc/sudo-&sudo-version; \
118 --with-passprompt="[sudo] password for %p: " &amp;&amp;
119make</userinput></screen>
120
121 <para>
122 To test the results, issue: <command>env LC_ALL=C make check 2&gt;&amp;1
123 | tee ../make-check.log</command>. Check the results with <command>grep
124 failed ../make-check.log</command>. One test, test3, is known to fail
125 if the tests are run as the root user.
126 </para>
127
128 <para>
129 Now, as the <systemitem class="username">root</systemitem> user:
130 </para>
131
132<screen role="root"><userinput>make install &amp;&amp;
133ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0</userinput></screen>
134
135 </sect2>
136
137 <sect2 role="commands">
138 <title>Command Explanations</title>
139
140 <para>
141 <parameter>--libexecdir=/usr/lib</parameter>: This switch controls where
142 private programs are installed. Everything in that directory is a library, so
143 they belong under <filename class="directory">/usr/lib</filename> instead of
144 <filename class="directory">/usr/libexec</filename>.
145 </para>
146
147 <para>
148 <parameter>--with-secure-path</parameter>: This switch transparently adds
149 <filename class="directory">/sbin</filename> and <filename
150 class="directory">/usr/sbin</filename> directories to the
151 <envar>PATH</envar> environment variable.
152 </para>
153
154 <para>
155 <parameter>--with-all-insults</parameter>: This switch includes all the
156 <application>sudo</application> insult sets.
157 </para>
158
159 <para>
160 <parameter>--with-env-editor</parameter>: This switch enables use of the
161 environment variable EDITOR for <command>visudo</command>.
162 </para>
163
164 <para>
165 <parameter>--with-passprompt</parameter>: This switch sets the password prompt.
166 The <parameter>%p</parameter> will be expanded to the name of the user whose password is being requested.
167 </para>
168
169 <para>
170 <option>--without-pam</option>: This switch avoids building
171 <application>Linux-PAM</application> support when
172 <application>Linux-PAM</application> is installed on the system.
173 </para>
174<!-- See the developer note above before the configure command
175 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
176 href="../../xincludes/static-libraries.xml"/>-->
177
178 <note>
179 <para>
180 There are many options to <application>sudo</application>'s
181 <command>configure</command> command. Check the
182 <command>configure --help</command> output for a complete list.
183 </para>
184 </note>
185
186 <para>
187 <command>ln -sfv libsudo_util...</command>: Works around a bug in the
188 installation process, which links to the previously installed
189 version (if there is one) instead of the new one.
190 </para>
191
192 </sect2>
193
194 <sect2 role="configuration">
195 <title>Configuring Sudo</title>
196
197 <sect3 id="sudo-config">
198 <title>Config File</title>
199
200 <para>
201 <filename>/etc/sudoers</filename>
202 </para>
203
204 <indexterm zone="sudo sudo-config">
205 <primary sortas="e-etc-sudoers">/etc/sudoers</primary>
206 </indexterm>
207
208 </sect3>
209
210 <sect3>
211 <title>Configuration Information</title>
212
213 <para>
214 The <filename>sudoers</filename> file can be quite complicated. It
215 is composed of two types of entries: aliases (basically variables) and
216 user specifications (which specify who may run what). The installation
217 installs a default configuration that has no privileges installed for
218 any user.
219 </para>
220
221 <para>
222 A couple of common configuration chanes are to set the path for the
223 super user and to allow members of the wheel group to execute all
224 commands after providing their own credientials. Use the following
225 commands to create the <filename>/etc/sudoers.d/sudo</filename>
226 configuration file as the
227 <systemitem class="username">root</systemitem> user:
228 </para>
229
230<screen role="root"><userinput>cat &gt; /etc/sudoers.d/sudo &lt;&lt; "EOF"
231<literal>Defaults secure_path="/usr/bin:/bin:/usr/sbin:/sbin"
232%wheel ALL=(ALL) ALL</literal>
233EOF</userinput></screen>
234
235 <para>
236 For details, see <command>man sudoers</command>.
237 </para>
238
239 <note>
240 <para>
241 The <application>Sudo</application> developers highly recommend
242 using the <command>visudo</command> program to edit the
243 <filename>sudoers</filename> file. This will provide basic sanity
244 checking like syntax parsing and file permission to avoid some
245 possible mistakes that could lead to a vulnerable configuration.
246 </para>
247 </note>
248
249 <para>
250 If <application>PAM</application> is installed on the system,
251 <application>Sudo</application> is built with
252 <application>PAM</application> support. In that case, issue the
253 following command as the <systemitem class="username">root</systemitem>
254 user to create the <application>PAM</application> configuration file:
255 </para>
256
257<screen role="root"><userinput>cat &gt; /etc/pam.d/sudo &lt;&lt; "EOF"
258<literal># Begin /etc/pam.d/sudo
259
260# include the default auth settings
261auth include system-auth
262
263# include the default account settings
264account include system-account
265
266# Set default environment variables for the service user
267session required pam_env.so
268
269# include system session defaults
270session include system-session
271
272# End /etc/pam.d/sudo</literal>
273EOF
274chmod 644 /etc/pam.d/sudo</userinput></screen>
275
276 </sect3>
277
278 </sect2>
279
280 <sect2 role="content">
281 <title>Contents</title>
282
283 <segmentedlist>
284 <segtitle>Installed Programs</segtitle>
285 <segtitle>Installed Libraries</segtitle>
286 <segtitle>Installed Directories</segtitle>
287
288 <seglistitem>
289 <seg>
290 cvtsudoers, sudo, sudoedit (symlink), sudoreplay, and visudo
291 </seg>
292 <seg>
293 group_file.so, libsudo_util.so,
294 sudoers.so, sudo_noexec.so, and system_group.so
295 </seg>
296 <seg>
297 /etc/sudoers.d,
298 /usr/lib/sudo,
299 /usr/share/doc/sudo-&sudo-version;, and
300 /var/{lib,run}/sudo
301 </seg>
302 </seglistitem>
303 </segmentedlist>
304
305 <variablelist>
306 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
307 <?dbfo list-presentation="list"?>
308 <?dbhtml list-presentation="table"?>
309
310 <varlistentry id="cvtsudoers">
311 <term><command>cvtsudoers</command></term>
312 <listitem>
313 <para>
314 converts between sudoers file formats.
315 </para>
316 <indexterm zone="sudo cvtsudoers">
317 <primary sortas="b-cvtsudoers">cvtsudoers</primary>
318 </indexterm>
319 </listitem>
320 </varlistentry>
321
322 <varlistentry id="sudo_prog">
323 <term><command>sudo</command></term>
324 <listitem>
325 <para>
326 executes a command as another user as permitted by
327 the <filename>/etc/sudoers</filename> configuration file.
328 </para>
329 <indexterm zone="sudo sudo">
330 <primary sortas="b-sudo">sudo</primary>
331 </indexterm>
332 </listitem>
333 </varlistentry>
334
335 <varlistentry id="sudoedit">
336 <term><command>sudoedit</command></term>
337 <listitem>
338 <para>
339 is a symlink to <command>sudo</command> that implies the
340 <option>-e</option> option to invoke an editor as another user.
341 </para>
342 <indexterm zone="sudo sudoedit">
343 <primary sortas="b-sudoedit">sudoedit</primary>
344 </indexterm>
345 </listitem>
346 </varlistentry>
347
348 <varlistentry id="sudoreplay">
349 <term><command>sudoreplay</command></term>
350 <listitem>
351 <para>
352 is used to play back or list the output
353 logs created by <command>sudo</command>.
354 </para>
355 <indexterm zone="sudo sudoreplay">
356 <primary sortas="b-sudoreplay">sudoreplay</primary>
357 </indexterm>
358 </listitem>
359 </varlistentry>
360
361 <varlistentry id="visudo">
362 <term><command>visudo</command></term>
363 <listitem>
364 <para>
365 allows for safer editing of the <filename>sudoers</filename>
366 file.
367 </para>
368 <indexterm zone="sudo visudo">
369 <primary sortas="b-visudo">visudo</primary>
370 </indexterm>
371 </listitem>
372 </varlistentry>
373
374 </variablelist>
375
376 </sect2>
377
378</sect1>
Note: See TracBrowser for help on using the repository browser.