source: postlfs/security/linux-pam.xml@ 87351a9

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 87351a9 was 87351a9, checked in by Bruce Dubbs <bdubbs@…>, 4 years ago

Tag most of General Libraries and their dependencies

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

  • Property mode set to 100644
File size: 19.3 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 linux-pam-download-http "https://github.com/linux-pam/linux-pam/releases/download/v&linux-pam-version;/Linux-PAM-&linux-pam-version;.tar.xz">
8 <!ENTITY linux-pam-download-ftp " ">
9 <!ENTITY linux-pam-md5sum "39fca0523bccec6af4b63b5322276c84">
10 <!ENTITY linux-pam-size "968 KB">
11 <!ENTITY linux-pam-buildsize "37 MB (with tests)">
12 <!ENTITY linux-pam-time "0.3 SBU (with tests)">
13
14 <!ENTITY linux-pam-docs-download "https://github.com/linux-pam/linux-pam/releases/download/v&linux-pam-version;/Linux-PAM-&linux-pam-docs-version;-docs.tar.xz">
15 <!ENTITY linux-pam-docs-md5sum "3440e619ff29074eb977a2ca6e34525a">
16 <!ENTITY linux-pam-docs-size "468 KB">
17 <!--
18 <!ENTITY debian-pam-docs "http://debian.securedservers.com/kernel/pub/linux/libs/pam">
19 -->
20]>
21
22<sect1 id="linux-pam" xreflabel="Linux-PAM-&linux-pam-version;">
23 <?dbhtml filename="linux-pam.html"?>
24
25 <sect1info>
26 <othername>$LastChangedBy$</othername>
27 <date>$Date$</date>
28 </sect1info>
29
30 <title>Linux-PAM-&linux-pam-version;</title>
31
32 <indexterm zone="linux-pam">
33 <primary sortas="a-Linux-PAM">Linux-PAM</primary>
34 </indexterm>
35
36 <sect2 role="package">
37 <title>Introduction to Linux PAM</title>
38
39 <para>
40 The <application>Linux PAM</application> package contains
41 Pluggable Authentication Modules used to enable the local
42 system administrator to choose how applications authenticate
43 users.
44 </para>
45
46 &lfs10_checked;
47
48 <bridgehead renderas="sect3">Package Information</bridgehead>
49 <itemizedlist spacing="compact">
50 <listitem>
51 <para>
52 Download (HTTP): <ulink url="&linux-pam-download-http;"/>
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download (FTP): <ulink url="&linux-pam-download-ftp;"/>
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download MD5 sum: &linux-pam-md5sum;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Download size: &linux-pam-size;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Estimated disk space required: &linux-pam-buildsize;
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 Estimated build time: &linux-pam-time;
78 </para>
79 </listitem>
80 </itemizedlist>
81
82 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
83 <itemizedlist spacing="compact">
84 <title>Optional Documentation</title>
85 <listitem>
86 <para>
87 Download (HTTP): <ulink url="&linux-pam-docs-download;"/>
88 </para>
89 </listitem>
90 <listitem>
91 <para>
92 Download MD5 sum: &linux-pam-docs-md5sum;
93 </para>
94 </listitem>
95 <listitem>
96 <para>
97 Download size &linux-pam-docs-size;
98 </para>
99 </listitem>
100 </itemizedlist>
101
102 <bridgehead renderas="sect3">Linux PAM Dependencies</bridgehead>
103
104 <bridgehead renderas="sect4">Optional</bridgehead>
105 <para role="optional">
106 <xref linkend="db"/>,
107 <xref linkend="libnsl"/>,
108 <xref linkend="libtirpc"/>,
109 <ulink url="https://github.com/linux-audit/audit-userspace">libaudit</ulink>, and
110 <ulink url="http://www.prelude-siem.org">Prelude</ulink>
111 </para>
112
113 <bridgehead renderas="sect4">Optional (To Rebuild the Documentation)</bridgehead>
114 <para role="optional">
115 <xref linkend="DocBook"/>,
116 <xref linkend="docbook-xsl"/>,
117 <xref linkend="fop"/>,
118 <xref linkend="libxslt"/> and either
119 <xref linkend="lynx"/> or
120 <ulink url="&w3m-url;">W3m</ulink>
121 </para>
122
123 <note>
124 <para role="required">
125 <xref role="runtime" linkend="shadow"/>
126 <phrase revision="systemd"> and <xref role="runtime" linkend="systemd"/>
127 need</phrase><phrase revision="sysv">needs</phrase> to be reinstalled
128 after installing and configuring <application>Linux PAM</application>.
129 </para>
130
131 <para role="recommended">
132 With Linux-PAM-1.4.0 and higher, the pam_cracklib module is not
133 installed by default. To enforce strong passwords, it is recommended
134 to use <xref role="runtime" linkend="libpwquality"/>.
135 </para>
136 </note>
137
138 <para condition="html" role="usernotes">User Notes:
139 <ulink url="&blfs-wiki;/linux-pam"/>
140 </para>
141 </sect2>
142
143 <sect2 role="installation">
144 <title>Installation of Linux PAM</title>
145
146 <para>
147 If you downloaded the documentation, unpack the tarball by issuing
148 the following command.
149 </para>
150
151<screen><userinput>tar -xf ../Linux-PAM-&linux-pam-docs-version;-docs.tar.xz --strip-components=1</userinput></screen>
152
153 <para>
154 If you instead want to regenerate the documentation, fix the
155 <command>configure</command> script so that it detects lynx if installed:
156 </para>
157
158<screen><userinput>sed -e 's/dummy elinks/dummy lynx/' \
159 -e 's/-no-numbering -no-references/-force-html -nonumbers -stdin/' \
160 -i configure</userinput></screen>
161
162 <para>
163 Install <application>Linux PAM</application> by
164 running the following commands:
165 </para>
166
167<screen><userinput>./configure --prefix=/usr \
168 --sysconfdir=/etc \
169 --libdir=/usr/lib \
170 --enable-securedir=/lib/security \
171 --docdir=/usr/share/doc/Linux-PAM-&linux-pam-version; &amp;&amp;
172make</userinput></screen>
173
174 <para>
175 To test the results, a suitable <filename>/etc/pam.d/other</filename>
176 configuration file must exist.
177 </para>
178
179 <caution>
180 <title>Reinstallation or upgrade of Linux PAM</title>
181 <para>
182 If you have a system with Linux PAM installed and working, be careful
183 when modifying the files in
184 <filename class="directory">/etc/pam.d</filename>, since your system
185 may become totally unusable. If you want to run the tests, you do not
186 need to create another <filename>/etc/pam.d/other</filename> file. The
187 installed one can be used for that purpose.
188 </para>
189
190 <para>
191 You should also be aware that <command>make install</command>
192 overwrites the configuration files in
193 <filename class="directory">/etc/security</filename> as well as
194 <filename>/etc/environment</filename>. In case you
195 have modified those files, be sure to back them up.
196 </para>
197 </caution>
198
199 <para>
200 For a first installation, create the configuration file by issuing the
201 following commands as the <systemitem class="username">root</systemitem>
202 user:
203 </para>
204
205<screen role="root"><userinput>install -v -m755 -d /etc/pam.d &amp;&amp;
206
207cat &gt; /etc/pam.d/other &lt;&lt; "EOF"
208<literal>auth required pam_deny.so
209account required pam_deny.so
210password required pam_deny.so
211session required pam_deny.so</literal>
212EOF</userinput></screen>
213
214 <para>
215 Now run the tests by issuing <command>make check</command>.
216 Ensure there are no errors produced by the tests before continuing the
217 installation. Note that the checks are quite long. It may be useful to
218 redirect the output to a log file in order to inspect it thoroughly.
219 </para>
220
221 <para>
222 Only in case of a first installation, remove the configuration file
223 created earlier by issuing the following command as the
224 <systemitem class="username">root</systemitem> user:
225 </para>
226
227<screen role="root"><userinput>rm -fv /etc/pam.d/other</userinput></screen>
228
229 <para>
230 Now, as the <systemitem class="username">root</systemitem>
231 user:
232 </para>
233
234<screen role="root"><userinput>make install &amp;&amp;
235chmod -v 4755 /sbin/unix_chkpwd &amp;&amp;
236
237for file in pam pam_misc pamc
238do
239 mv -v /usr/lib/lib${file}.so.* /lib &amp;&amp;
240 ln -sfv ../../lib/$(readlink /usr/lib/lib${file}.so) /usr/lib/lib${file}.so
241done</userinput></screen>
242
243 </sect2>
244
245 <sect2 role="commands">
246 <title>Command Explanations</title>
247
248 <para>
249 <parameter>--enable-securedir=/lib/security</parameter>:
250 This switch sets install location for the
251 <application>PAM</application> modules.
252 </para>
253
254 <para>
255 <option>--disable-regenerate-docu</option> : If the needed dependencies
256 (<xref linkend="DocBook"/>, <xref linkend="docbook-xsl"/>, <xref
257 linkend="libxslt"/>, and <xref linkend="lynx"/> or <ulink
258 url="&w3m-url;">W3m</ulink>) are installed, the manual pages, and the
259 html and text documentations are (re)generated and installed.
260 Furthermore, if <xref linkend="fop"/> is installed, the PDF
261 documentation is generated and installed. Use this switch if you do not
262 want to rebuild the documentation.
263 </para>
264
265 <para>
266 <command>chmod -v 4755 /sbin/unix_chkpwd</command>:
267 The <command>unix_chkpwd</command> helper program must be setuid
268 so that non-<systemitem class="username">root</systemitem>
269 processes can access the shadow file.
270 </para>
271
272 </sect2>
273
274 <sect2 role="configuration">
275 <title>Configuring Linux-PAM</title>
276
277 <sect3 id="pam-config">
278 <title>Config Files</title>
279
280 <para>
281 <filename>/etc/security/*</filename> and
282 <filename>/etc/pam.d/*</filename>
283 </para>
284
285 <indexterm zone="linux-pam pam-config">
286 <primary sortas="e-etc-security">/etc/security/*</primary>
287 </indexterm>
288
289 <indexterm zone="linux-pam pam-config">
290 <primary sortas="e-etc-pam.d">/etc/pam.d/*</primary>
291 </indexterm>
292
293 </sect3>
294
295 <sect3>
296 <title>Configuration Information</title>
297
298 <para>
299 Configuration information is placed in
300 <filename class="directory">/etc/pam.d/</filename>.
301 Below is an example file:
302 </para>
303
304<screen><literal># Begin /etc/pam.d/other
305
306auth required pam_unix.so nullok
307account required pam_unix.so
308session required pam_unix.so
309password required pam_unix.so nullok
310
311# End /etc/pam.d/other</literal></screen>
312
313 <para>
314 Now set up some generic files. As root:
315 </para>
316
317<screen role="root"><userinput>install -vdm755 /etc/pam.d &amp;&amp;
318cat &gt; /etc/pam.d/system-account &lt;&lt; "EOF" &amp;&amp;
319<literal># Begin /etc/pam.d/system-account
320
321account required pam_unix.so
322
323# End /etc/pam.d/system-account</literal>
324EOF
325
326cat &gt; /etc/pam.d/system-auth &lt;&lt; "EOF" &amp;&amp;
327<literal># Begin /etc/pam.d/system-auth
328
329auth required pam_unix.so
330
331# End /etc/pam.d/system-auth</literal>
332EOF
333
334cat &gt; /etc/pam.d/system-session &lt;&lt; "EOF"
335<literal># Begin /etc/pam.d/system-session
336
337session required pam_unix.so
338
339# End /etc/pam.d/system-session</literal>
340EOF
341cat &gt; /etc/pam.d/system-password &lt;&lt; "EOF"
342<literal># Begin /etc/pam.d/system-password
343
344# use sha512 hash for encryption, use shadow, and try to use any previously
345# defined authentication token (chosen password) set by any prior module
346password required pam_unix.so sha512 shadow try_first_pass
347
348# End /etc/pam.d/system-password</literal>
349EOF
350</userinput></screen>
351
352 <para>
353 If you wish to enable strong password support, install
354 <xref linkend="libpwquality"/>, and follow the
355 instructions in that page to configure the pam_pwquality
356 PAM module with strong password support.
357 </para>
358
359<!-- With the removal of the pam_cracklib module, we're supposed to be using
360 libpwquality. That already includes instructions in it's configuration
361 information page, so we'll use those instead.
362
363 Linux-PAM must be installed prior to libpwquality so that PAM support
364 is built in, and the PAM module is built.
365-->
366<!--
367 <para>
368 The remaining generic file depends on whether <xref
369 linkend="cracklib"/> is installed. If it is installed, use:
370 </para>
371
372<screen role="root"><userinput>cat &gt; /etc/pam.d/system-password &lt;&lt; "EOF"
373<literal># Begin /etc/pam.d/system-password
374
375# check new passwords for strength (man pam_cracklib)
376password required pam_cracklib.so authtok_type=UNIX retry=1 difok=5 \
377 minlen=9 dcredit=1 ucredit=1 \
378 lcredit=1 ocredit=1 minclass=0 \
379 maxrepeat=0 maxsequence=0 \
380 maxclassrepeat=0 \
381 dictpath=/lib/cracklib/pw_dict
382# use sha512 hash for encryption, use shadow, and use the
383# authentication token (chosen password) set by pam_cracklib
384# above (or any previous modules)
385password required pam_unix.so sha512 shadow use_authtok
386
387# End /etc/pam.d/system-password</literal>
388EOF</userinput></screen>
389
390 <note>
391 <para>
392 In its default configuration, pam_cracklib will
393 allow multiple case passwords as short as 6 characters, even with
394 the <parameter>minlen</parameter> value set to 11. You should review
395 the pam_cracklib(8) man page and determine if these default values
396 are acceptable for the security of your system.
397 </para>
398 </note>
399
400 <para>
401 If <xref linkend="cracklib"/> is <emphasis>NOT</emphasis> installed,
402 use:
403 </para>
404
405<screen role="nodump"><userinput>cat &gt; /etc/pam.d/system-password &lt;&lt; "EOF"
406<literal># Begin /etc/pam.d/system-password
407
408# use sha512 hash for encryption, use shadow, and try to use any previously
409# defined authentication token (chosen password) set by any prior module
410password required pam_unix.so sha512 shadow try_first_pass
411
412# End /etc/pam.d/system-password</literal>
413EOF</userinput></screen>
414-->
415 <para>
416 Now add a restrictive <filename>/etc/pam.d/other</filename>
417 configuration file. With this file, programs that are PAM aware will
418 not run unless a configuration file specifically for that application
419 is created.
420 </para>
421
422<screen role="root"><userinput>cat &gt; /etc/pam.d/other &lt;&lt; "EOF"
423<literal># Begin /etc/pam.d/other
424
425auth required pam_warn.so
426auth required pam_deny.so
427account required pam_warn.so
428account required pam_deny.so
429password required pam_warn.so
430password required pam_deny.so
431session required pam_warn.so
432session required pam_deny.so
433
434# End /etc/pam.d/other</literal>
435EOF</userinput></screen>
436
437 <para>
438 The <application>PAM</application> man page (<command>man
439 pam</command>) provides a good starting point for descriptions
440 of fields and allowable entries. The
441 <ulink url="http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html">
442 Linux-PAM System Administrators' Guide
443 </ulink> is recommended for additional information.
444 </para>
445
446 <important>
447 <para>
448 You should now reinstall the <xref linkend="shadow"/>
449 <phrase revision="sysv">package.</phrase>
450 <phrase revision="systemd"> and <xref linkend="systemd"/>
451 packages.</phrase>
452 </para>
453 </important>
454
455 </sect3>
456
457 </sect2>
458
459 <sect2 role="content">
460 <title>Contents</title>
461
462 <segmentedlist>
463 <segtitle>Installed Program</segtitle>
464 <segtitle>Installed Libraries</segtitle>
465 <segtitle>Installed Directories</segtitle>
466
467 <seglistitem>
468 <seg>
469 faillock, mkhomedir_helper,
470 pam_timestamp_check, unix_chkpwd and
471 unix_update
472 </seg>
473 <seg>
474 libpam.so, libpamc.so and libpam_misc.so
475 </seg>
476 <seg>
477 /etc/security,
478 /lib/security,
479 /usr/include/security and
480 /usr/share/doc/Linux-PAM-&linux-pam-version;
481 </seg>
482 </seglistitem>
483 </segmentedlist>
484
485 <variablelist>
486 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
487 <?dbfo list-presentation="list"?>
488 <?dbhtml list-presentation="table"?>
489
490 <varlistentry id="faillock">
491 <term><command>faillock</command></term>
492 <listitem>
493 <para>
494 displays and modifies the authentication failure record files.
495 </para>
496 <indexterm zone="linux-pam faillock">
497 <primary sortas="b-faillock">faillock</primary>
498 </indexterm>
499 </listitem>
500 </varlistentry>
501
502 <varlistentry id="mkhomedir_helper">
503 <term><command>mkhomedir_helper</command></term>
504 <listitem>
505 <para>
506 is a helper binary that creates home directories.
507 </para>
508 <indexterm zone="linux-pam mkhomedir_helper">
509 <primary sortas="b-mkhomedir_helper">mkhomedir_helper</primary>
510 </indexterm>
511 </listitem>
512 </varlistentry>
513
514<!-- Removed with the removal of the pam_tally{,2} module
515 <varlistentry id="pam_tally">
516 <term><command>pam_tally</command></term>
517 <listitem>
518 <para>
519 is used to interrogate and manipulate the login counter file.
520 </para>
521 <indexterm zone="linux-pam pam_tally">
522 <primary sortas="b-pam_tally">pam_tally</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526
527 <varlistentry id="pam_tally2">
528 <term><command>pam_tally2</command></term>
529 <listitem>
530 <para>
531 is used to interrogate and manipulate the login counter file, but
532 does not have some limitations that <command>pam_tally</command>
533 does.
534 </para>
535 <indexterm zone="linux-pam pam_tally2">
536 <primary sortas="b-pam_tally2">pam_tally2</primary>
537 </indexterm>
538 </listitem>
539 </varlistentry>
540-->
541
542 <varlistentry id="pam_timestamp_check">
543 <term><command>pam_timestamp_check</command></term>
544 <listitem>
545 <para>
546 is used to check if the default timestamp is valid
547 </para>
548 <indexterm zone="linux-pam pam_timestamp_check">
549 <primary sortas="b-pam_timestamp_check">pam_timestamp_check</primary>
550 </indexterm>
551 </listitem>
552 </varlistentry>
553
554 <varlistentry id="unix_chkpwd">
555 <term><command>unix_chkpwd</command></term>
556 <listitem>
557 <para>
558 is a helper binary that verifies the password of the current user.
559 </para>
560 <indexterm zone="linux-pam unix_chkpwd">
561 <primary sortas="b-unix_chkpwd">unix_chkpwd</primary>
562 </indexterm>
563 </listitem>
564 </varlistentry>
565
566 <varlistentry id="unix_update">
567 <term><command>unix_update</command></term>
568 <listitem>
569 <para>
570 is a helper binary that updates the password of a given user.
571 </para>
572 <indexterm zone="linux-pam unix_update">
573 <primary sortas="b-unix_update">unix_update</primary>
574 </indexterm>
575 </listitem>
576 </varlistentry>
577
578 <varlistentry id="libpam">
579 <term><filename class="libraryfile">libpam.so</filename></term>
580 <listitem>
581 <para>
582 provides the interfaces between applications and the
583 PAM modules.
584 </para>
585 <indexterm zone="linux-pam libpam">
586 <primary sortas="c-libpam">libpam.so</primary>
587 </indexterm>
588 </listitem>
589 </varlistentry>
590
591 </variablelist>
592
593 </sect2>
594
595</sect1>
Note: See TracBrowser for help on using the repository browser.