Установка Shadow-4.0.3

Ожидаемое время сборки: 0.4 SBU
Ожидаемое место на диске: 11 MB

Описание Shadow

Пакет Shadow создан для усиления безопасности системных паролей.

Устанавливаемые программы: chage, chfn, chpasswd, chsh, dpasswd, expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck, grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp, newusers, passwd, pwck, pwconv, pwunconv, sg (ссылка на newgrp), useradd, userdel, usermod, vigr (ссылка на vipw) и vipw

Зависимости установки Shadow

Shadow зависит от: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

Установка Shadow

Программы login, getty и init (и некоторые другие) поддерживают лог-файлы для записи кто, когда и где логинился в систему. Эти программы, тем не менее, не создают эти лог-файлы если они не существуют, таким образом, если вы собираетесь логгировать эти события, то вам надо создать эти файлы самостоятельно. Пакету Shadow нужны эти файлы в определенном месте, так что мы создадим их для удовлетворения зависимостей:

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}

Файл /var/run/utmp содержит список пользователей, которые на данный момент работают в системе, файл /var/log/wtmp показывает кто, где подключился к системе и когда. Файл /var/log/lastlog показывает последние логины для каждого польхователя, а /var/log/btmp является списком ошибочных входов.

Shadow встраиват в себя путь к бинарнику passwd, но это плохой метод в случае отсутствия этого файла на момент установки. Если бинарник passwd не существует перед установкой Shadow, пакет неверно определит путь как /bin/passwd, а установит его в /usr/bin/passwd. Это приведет к ошибке при попутке найти файл /bin/passwd. Для исправления этого, создадим фиктивный файл passwd:

touch /usr/bin/passwd

Текущий релиз Shadow содержит проблему с командой newgrp. Следующий патч (также применяющейся к CVS-версии Shadow) исправит эту проблему:

patch -Np1 -i ../shadow-4.0.3-newgrp-fix.patch

Теперь подготовим Shadow к компиляции:

./configure --prefix=/usr --libdir=/usr/lib --enable-shared

Скомпилируем пакет:

make

И установим его:

make install

Shadow использует два файла для настройки параметров аутентификации в системе. Установим эти файлы:

cp etc/{limits,login.access} /etc

Мы собираемся исменить метод паролирования выбором паролей MD5, которые, теоретически являются более безопасными, чем метод по умолчанию "crypt" и заодно допускают создание паролей длинее 8-ми символов. Мы также должны изменить старое расположение /var/spool/mail для пользовательских почтовых ящиков на /var/mail. Мы сделаем это проведя следующие изменения конфигурационного файла:

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

Замечание: Будьте очень внимательны при вводе указанной команды. Лучше всего скопировать и вставить ее вместо того, чтобы просто набрать.

Согласно man-странице vipw, программа vigr также должна существовать. Поскольку процедура установки не создает эту программу, создадим ссылку вручную:

ln -s vipw /usr/sbin/vigr

Поскольку ссылка /bin/vipw не нужна (и ссылается на несуществующий файл), удалим ее:

rm /bin/vipw

Теперь переместим программу sg в правильное место:

mv /bin/sg /usr/bin

И переместим динамические библиотеки Shadow в более корректное расположение:

mv /usr/lib/lib{shadow,misc}.so.0* /lib

Поскольку некоторые пакеты нуждаются в расположении только что перемещенных библиотек в /usr/lib, создадим следующие ссылки:

ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so

Coreutils уже установил программу groups в /usr/bin. Если вы хотите, то можете удалить такую же, установленную Shadow:

rm /bin/groups

Настройка Shadow

Этот пакет содержит утилиты для модификации паролей пользователей, добавления или удаления пользователей и групп и тому подобные. Мы не собираемся объяснять здесь что такое 'скрытие паролей' ('password shadowing'). Полное объяснение можно найти в файле doc/HOWTO в распакованой директории с исходниками Shadow. Сдесь мы опишем только то, что вам понадобится, если вы захотите использовать поддержку Shadow: программы, которые должны проверять пароли (к примеру: xdm, демоны ftp, демоны pop3) должны будут компилироваться с поддержкой 'shadow-совместимости', что надо для использования работы со скрытыми паролями.

Для использования скрытых паролей, запустите команду:

/usr/sbin/pwconv

А для использования скрытых паролей групп, выполните:

/usr/sbin/grpconv

При нармальных обстоятельствах, вам пока нет надобности создавать пароли. Запомните, что если вы решите вернуться к этой главе для включения скрытия паролей, вам надо будет сбросить пароли всех пользователей командой passwd и пароли всех групп командой gpasswd.