| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | <sect2><title> </title><para> </para></sect2><sect2><title>Installation of Shadow Password Suite</title><para>The <userinput>login</userinput>, <userinput>getty</userinput> and<userinput>init</userinput> programs (and some others) maintain a numberof logfiles to record who are and who were logged in to the system.  Theseprograms, however, don't create these logfiles when they don't exist, so ifyou want this logging to occur you will have to create the files yourself.To let the Shadow package (that is installed next) detect these files in theirproper place, create them now, with their proper permissions:</para><para>Create these files with their proper permissions by running thefollowing commands:</para><screen><userinput>touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}</userinput></screen><para>The <filename>/var/run/utmp</filename> file lists the users that arecurrently logged in, the <filename>/var/log/wtmp</filename> file who<emphasis>were</emphasis> logged in and when.The <filename>/var/log/lastlog</filename> file shows for each user when heor she last logged in, and the <filename>/var/log/btmp</filename> lists thebad login attempts.</para><para>Shadow hard-wires the path to the <userinput>passwd</userinput> binarywithin the binary itself, but does this the wrong way. If a<userinput>passwd</userinput> binary is not present before installing Shadow,the package incorrectly assumes it is going to be located at<filename>/bin/passwd</filename>, but then installs it in<filename>/usr/bin/passwd</filename>. This will lead to errors about not finding<filename>/bin/passwd</filename>. To work around this bug, create a dummy<filename>passwd</filename> file, so that it gets hard-wired properly:</para><screen><userinput>touch /usr/bin/passwd</userinput></screen><para>The current shadow suite has a problem in the newgrp command which causesit to fail.  The following patch (also appearing in Shadow's CVS code) fixesthis problem.</para><screen><userinput>patch -Np1 -i ../&shadow-patch;</userinput></screen><para>Now prepare Shadow for compilation:</para><screen><userinput>./configure --prefix=/usr --libdir=/usr/lib --enable-shared</userinput></screen><para>Compile the package:</para><screen><userinput>make</userinput></screen><para>And install it:</para><screen><userinput>make install</userinput></screen><para>Shadow uses two files to configure authentication settings for thesystem. Install these two config files:</para><screen><userinput>cp etc/{limits,login.access} /etc</userinput></screen><para>We want to change the password method to enable MD5 passwords which aretheoretically more secure than the default "crypt" method and also allowpassword lengths greater than 8 characters. We also need to change the old<filename class="directory">/var/spool/mail</filename> location for usermailboxes to the current location at<filename class="directory">/var/mail</filename>. We do this by changing therelevant configuration file while copying it to its destination:</para><screen><userinput>sed -e 's%/var/spool/mail%/var/mail%' \    -e 's%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%' \    etc/login.defs.linux > /etc/login.defs</userinput></screen><note><para>Be extra careful when typing all of the above. It is probably saferto cut-and-paste it rather than try and type it all in.</para></note><para>According to the man page of <userinput>vipw</userinput>, a<userinput>vigr</userinput> program should exist too. Since the installationprocedure doesn't create this program, create a symlink manually:</para><screen><userinput>ln -s vipw /usr/sbin/vigr</userinput></screen><para>As the <filename>/bin/vipw</filename> symlink is redundant (and evenpointing to a non-existent file), remove it:</para><screen><userinput>rm /bin/vipw</userinput></screen><para>Now move the <userinput>sg</userinput> program to its proper place:</para><screen><userinput>mv /bin/sg /usr/bin</userinput></screen><para>And move Shadow's dynamic libraries to a more appropriate location:</para><screen><userinput>mv /usr/lib/lib{shadow,misc}.so.0* /lib</userinput></screen><para>As some packages expect to find the just-moved libraries in<filename>/usr/lib</filename>, create the following symlinks:</para><screen><userinput>ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.soln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so</userinput></screen><para>Coreutils has already installed a <userinput>groups</userinput> programin <filename>/usr/bin</filename>. If you wish, you can remove the oneinstalled by Shadow:</para><screen><userinput>rm /bin/groups</userinput></screen></sect2>
 |