Пакет Shadow содержит программы для усиления безопасности системных паролей.
Расчетное время сборки 0.4 SBU
Требуемое место на диске 11 MB
Shadow зависит от установки: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make и Sed.
Подготавливаем Shadow для компиляции:
./configure --libdir=/usr/lib --enable-shared
Поработаем над проблемой, которая препятствует интернационализации Shadow, выполнив:
echo '#define HAVE_SETLOCALE 1' >> config.h
Shadow некорректно декларирует функцию malloc(), означающую ошибку компиляции. Устраним это:
sed -i '/extern char/d' libmisc/xmalloc.c
Компилируем пакет:
make
Устанавливаем пакет:
make install
Shadow использует два файла для настройки параметров аутентификации в системе. Установим эти файлы:
cp etc/{limits,login.access} /etc
Вместо использования по умолчанию метода crypt, используем более защищенный метод шифрования паролей MD5, который также допускает использование паролей длинной более 8 символов. Также необходимо изменить положение пользовательских почтовых ящиков на /var/spool/mail, которое Shadow устанавливает по умолчанию в /var/mail. Мы сделаем это, проведя следующие изменения конфигурационного файла:
cp etc/login.defs.linux /etc/login.defs sed -i -e 's@#MD5_CRYPT_ENAB.no@MD5_CRYPT_ENAB yes@' \ -e 's@/var/spool/mail@/var/mail@' /etc/login.defs
Переместим некоторые ссылки/программы в более предпочтительное место:
mv /bin/sg /usr/bin mv /bin/vigr /usr/sbin mv /usr/bin/passwd /bin
Переместим динамические библиотеки в более предпочтительное место:
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
Опция -D программы useradd требует каталог /etc/default для корректной работы:
mkdir /etc/default
Coreutils уже имеет лучшую установленную программу groups в /usr/bin. Удалим аналогичную программу из Shadow:
rm /bin/groups
Этот пакет содержит утилиты для модификации паролей пользователей, добавления или удаления пользователей и групп и тому подобные. Я не собираюсь объяснять здесь что такое скрытие паролей (password shadowing). Полное объяснение можно найти в файле doc/HOWTO в распакованном каталоге с исходниками Shadow. Здесь я опишу только то, что Вам понадобится, если Вы захотите использовать поддержку Shadow: программы, которые должны проверять пароли (к примеру, xdm, демоны ftp или демоны pop3) должны будут компилироваться с поддержкой 'shadow-совместимости', что надо для использования работы со скрытыми паролями.
Для использования скрытых паролей запустите такую команду:
pwconv
А для использования скрытых групп выполните:
grpconv
При нормальных обстоятельствах Вам пока нет надобности создавать пароли. Запомните, что если Вы решите вернуться к этой главе для включения скрытия паролей, надо будет сбросить пароли всех пользователей командой passwd и пароли всех групп командой gpasswd.
Выберите пароль для пользователя root и установите его командой:
passwd root
Проинсталлированные программы: chage, chfn, chpasswd, chsh, 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.
Проинсталлированные библиотеки: libshadow[.a,so].
Используется для изменения максимального количества дней до обязательной смены пароя.
Изменяет полное имя пользователя и некоторую другую информацию.
Используется для обновления паролей пользовательских логинов.
Используется для изменения оболочки пользователя по умолчанию.
Проверяет и изменяет правила использования паролей.
Используется для обработки логов ошибочных входов в систему, для установки лимита на ошибки входа до блокирования логина или для сброса счетчика этих ошибок.
Используется для добавления или удаления членов и администраторов групп.
Создает группу с указанным именем.
Удаляет группу с указанным именем.
Используется для изменения имени указанной группы или ее GID.
Возвращает группы, членом которых является указанный пользователь.
Проверяет целосность файлов групп /etc/group и /etc/gshadow.
Создает или обновляет теневой файл групп, используя обычный файл групп.
Обновляет /etc/group из /etc/gshadow и затем удаляет последний.
Отчитывается о входах пользователей или указанного пользователя в систему.
Используется в начале новой сессии работы с системой.
Демон, контролирующий время регистрации и порты.
Шифрует указанный пароль заданным алгоритмом.
Используется для изменения текущего GID.
Используется для создания или обновления пользовательских логинов.
Используется для изменения пароля пользователя или группы.
Проверяет целостность файлов паролей /etc/passwd и /etc/shadow.
Создает или обновляет теневой файл паролей, используя обычный файл паролей.
Обновляет /etc/passwd из /etc/shadow и затем удаляет последний.
Выполняет указанную команду с правами группы с указанным GID.
Запускает shell с заменой пользователя и ID группы.
Создает нового пользователя с указанным именем или обновляет информацию по умолчанию для новых пользователей.
Удаляет указанный пользовательский логин.
Используется для модификации указанного имени пользователя, UID, оболочки, группы, домашнего каталога и т. п.
Редактирует файл /etc/group или /etc/gshadow.
Редактирует файл /etc/passwd или /etc/shadow.
Содержит функции, используемые большинством программ этого пакета.