Ожидаемое время сборки: 0.4 SBU
|
Пакет 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 зависит от: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.
Программы login, getty и init (и некоторые другие) поддерживают лог-файлы для записи кто, когда и где логинился в систему. Эти программы, тем не менее, не создают эти лог-файлы если они не существуют, таким образом, если вы собираетесь логгировать эти события, то вам надо создать эти файлы самостоятельно. Пакету Shadow нужны эти файлы в определенном месте, так что мы создадим их для удовлетворения зависимостей:
touch /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%' \
|
Замечание: Будьте очень внимательны при вводе указанной команды. Лучше всего скопировать и вставить ее вместо того, чтобы просто набрать.
Согласно 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
|
Coreutils уже установил программу groups в /usr/bin. Если вы хотите, то можете удалить такую же, установленную Shadow:
rm /bin/groups
|
Этот пакет содержит утилиты для модификации паролей пользователей, добавления или удаления пользователей и групп и тому подобные. Мы не собираемся объяснять здесь что такое 'скрытие паролей' ('password shadowing'). Полное объяснение можно найти в файле doc/HOWTO в распакованой директории с исходниками Shadow. Сдесь мы опишем только то, что вам понадобится, если вы захотите использовать поддержку Shadow: программы, которые должны проверять пароли (к примеру: xdm, демоны ftp, демоны pop3) должны будут компилироваться с поддержкой 'shadow-совместимости', что надо для использования работы со скрытыми паролями.
Для использования скрытых паролей, запустите команду:
/usr/sbin/pwconv
|
А для использования скрытых паролей групп, выполните:
/usr/sbin/grpconv
|
При нармальных обстоятельствах, вам пока нет надобности создавать пароли. Запомните, что если вы решите вернуться к этой главе для включения скрытия паролей, вам надо будет сбросить пароли всех пользователей командой passwd и пароли всех групп командой gpasswd.