source: chapter06/shadowpwd-inst.xml@ 0bb2989

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk v5_0 v5_1 v5_1_1 xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 0bb2989 was 0c84f8a, checked in by Jeremy Utley <jeremy@…>, 21 years ago

Added Shadow newgrp fix from Greg

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2714 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 4.8 KB
Line 
1<sect2><title>&nbsp;</title><para>&nbsp;</para></sect2>
2
3<sect2>
4<title>Installation of Shadow Password Suite</title>
5
6<para>Before you install this package, you may want to have a look at
7the Shadow hint. It discusses how you can make your system more secure
8regarding passwords, such as how to enable the more secure MD5 passwords
9and how to get the most out of this Shadow package. The Shadow hint can
10be found at <ulink url="&hints-root;shadowpasswd_plus.txt"/>.</para>
11
12<para>The <userinput>login</userinput>, <userinput>getty</userinput> and
13<userinput>init</userinput> programs (and some others) maintain a number
14of logfiles to record who are and who were logged in to the system. These
15programs, however, don't create these logfiles when they don't exist, so if
16you want this logging to occur you will have to create the files yourself.
17To let the Shadow package (that is installed next) detect these files in their
18proper place, create them now, with their proper permissions:</para>
19
20<para>Create these files with their proper permissions by running the
21following commands:</para>
22
23<para><screen><userinput>touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
24chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}</userinput></screen></para>
25
26<para>The <filename>/var/run/utmp</filename> file lists the users that are
27currently logged in, the <filename>/var/log/wtmp</filename> file who
28<emphasis>were</emphasis> logged in and when.
29The <filename>/var/log/lastlog</filename> file shows for each user when he
30or she last logged in, and the <filename>/var/log/btmp</filename> lists the
31bad login attempts.</para>
32
33<para>Shadow hard-wires the path to the <userinput>passwd</userinput> binary
34within the binary itself, but does this the wrong way. If before installing
35Shadow no <userinput>passwd</userinput> binary is present , the package wrongly
36assumes it is going to be located at <filename>/bin/passwd</filename>,
37but then installs it in <filename>/usr/bin/passwd</filename>. This will lead
38to weird errors about not finding <filename>/bin/passwd</filename>. To work
39around this bug, create a dummy <filename>passwd</filename> file,
40so that it gets hard-wired properly:</para>
41
42<para><screen><userinput>touch /usr/bin/passwd</userinput></screen></para>
43
44<para>The current shadow suite has a problem in the newgrp command which causes
45it to fail. The following patch (also appearing in Shadow's CVS code) fixes
46this problem.</para>
47
48<para><screen><userinput>patch -Np1 -i ../shadow-&shadow-patch-version;.patch
49</userinput></screen></para>
50
51<para>Now prepare Shadow for compilation:</para>
52
53<para><screen><userinput>./configure --prefix=/usr --libdir=/usr/lib --enable-shared</userinput></screen></para>
54
55<para>Compile the package:</para>
56
57<para><screen><userinput>make</userinput></screen></para>
58
59<para>And install it:</para>
60
61<para><screen><userinput>make install</userinput></screen></para>
62
63<para>Shadow uses two files to configure authentication settings for the
64system. Install these two config files:</para>
65
66<para><screen><userinput>cp etc/{limits,login.access} /etc</userinput></screen></para>
67
68<para>In the old days <filename class="directory">/var/spool/mail</filename>
69was the location for the user mailboxes, but nowadays <filename
70class="directory">/var/mail</filename> is used. Change the default mailbox
71location in the relevant configuration file while copying it to its
72destination:</para>
73
74<para><screen><userinput>sed 's%/var/spool/mail%/var/mail%' \
75&nbsp;&nbsp;&nbsp;&nbsp;etc/login.defs.linux &gt; /etc/login.defs</userinput></screen></para>
76
77<para>According to the man page of <userinput>vipw</userinput>, a
78<userinput>vigr</userinput> program should exist too. Since the installation
79procedure doesn't create this program, create a symlink manually:</para>
80
81<para><screen><userinput>ln -s vipw /usr/sbin/vigr</userinput></screen></para>
82
83<para>As the <filename>/bin/vipw</filename> symlink is redundant (and even
84pointing to a non-existent file), remove it:</para>
85
86<para><screen><userinput>rm /bin/vipw</userinput></screen></para>
87
88<para>Now move the <userinput>sg</userinput> program to its proper place:</para>
89
90<para><screen><userinput>mv /bin/sg /usr/bin</userinput></screen></para>
91
92<para>And move Shadow's dynamic libraries to a more appropriate location:</para>
93
94<para><screen><userinput>mv /usr/lib/lib{shadow,misc}.so.0* /lib</userinput></screen></para>
95
96<para>As some packages expect to find the just-moved libraries in
97<filename>/usr/lib</filename>, create the following symlinks:</para>
98
99<para><screen><userinput>ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
100ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so</userinput></screen></para>
101
102<para>Coreutils has already installed a <userinput>groups</userinput> program
103in <filename>/usr/bin</filename>. If you wish, you can remove the one
104installed by Shadow:</para>
105
106<para><screen><userinput>rm /bin/groups</userinput></screen></para>
107
108</sect2>
109
Note: See TracBrowser for help on using the repository browser.