Installing Shadow-&shadow-version;
The Shadow package contains programs for handling passwords in a secure
way.
Estimated build time: &shadow-time;
Estimated required disk space: &shadow-compsize;
&aa-shadowpwd-down;
&aa-shadowpwd-dep;
Installation of Shadow
Shadow hard-wires the path to the passwd binary
within the binary itself, but does this the wrong way. If a
passwd binary is not present before installing Shadow,
the package incorrectly assumes it is going to be located at
/bin/passwd, but then installs it in
/usr/bin/passwd. This will lead to errors about not finding
/bin/passwd. To work around this bug, create a dummy
passwd file, so that it gets hard-wired properly:
touch /usr/bin/passwd
The current Shadow suite has a problem that causes the
newgrp command to fail. The following patch (also
appearing in Shadow's CVS code) fixes this problem:
patch -Np1 -i ../&shadow-patch;
Now prepare Shadow for compilation:
./configure --prefix=/usr --libdir=/usr/lib --enable-shared
Compile the package:
make
And install it:
make install
Shadow uses two files to configure authentication settings for the
system. Install these two config files:
cp etc/{limits,login.access} /etc
We want to change the password method to enable MD5 passwords which are
theoretically more secure than the default "crypt" method and also allow
password lengths greater than 8 characters. We also need to change the old
/var/spool/mail location for user
mailboxes to the current location at
/var/mail. We do this by changing the
relevant configuration file while copying it to its destination:
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
Be extra careful when typing all of the above. It is probably safer
to cut-and-paste it rather than try and type it all in.
According to the man page of vipw, a
vigr program should exist too. Since the installation
procedure doesn't create this program, create a symlink manually:
ln -s vipw /usr/sbin/vigr
As the /bin/vipw symlink is redundant (and even
pointing to a non-existent file), remove it:
rm /bin/vipw
Now move the sg program to its proper place:
mv /bin/sg /usr/bin
And move Shadow's dynamic libraries to a more appropriate location:
mv /usr/lib/lib{shadow,misc}.so.0* /lib
As some packages expect to find the just-moved libraries in
/usr/lib, create the following symlinks:
ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so
The -D option of the useradd program requires this
directory for it to work properly:
mkdir /etc/default
Coreutils has already installed a groups program
in /usr/bin. If you wish, you can remove the one
installed by Shadow:
rm /bin/groups
&c6-cf-shadowpwd;
&c6-cf-password;
&aa-shadowpwd-shortdesc;
&aa-shadowpwd-desc;