Учебное пособие: Мобильная система Вооруженных Сил (МСВС) - политика пользователей и групп
Владельцем файла /etc/shadow является пользователь root и только он имеет право читать этот файл. Для его создания нужно взять имена пользователей и хэши-рованные пароли из файла passwd и поместить их в файл shadow, заменив при этом все хэшированные пароли в файле passwd символами х. Если посмотреть на файл passwd системы, то можно увидеть, что на месте хэшированных паролей там стоят символы х. Данный символ указывает системе на то, что пароль следует смотреть не здесь, а в файле /etc/shadow. Переход от простых паролей к теневым и обратно осуществляется посредством трех утилит. Для перехода к теневым паролям сначала запускается утилита pwck. Она проверяет файл passwd на предмет всяких аномалий, из-за которых следующий шаг может закончиться неудачей или попросту зациклиться. После того как отработает pwck, запускается утилита pwconv для создания /etc/shadow. Обычно это делается после ручного обновления файла /etc/passwd. Для возвращения к обычным паролям запускается pwuncov.
Файл теневых паролей во многих отношениях схож с файлом обычных паролей. В частности, первые два поля этих файлов одинаковы. Но помимо этих полей в нем, естественно, есть и дополнительные поля, отсутствующие в файле обычных паролей. Листинг 1.2. показывает содержимое типичного файла /etc/shadow.
Листинг 1.2. Файл /etc/shadow
root:1iDYwrOmhmEBU:10792:0:: 7:7::
bin:*:10547:0::7:7::
daemon:*:10547:0::7:7::
adm:*:10547:0::7:7::
lp:*:10547:0::7:7::
sync:*:10547:0::7:7::
shutdown:U:10811:0:-1:7:7:-1:134531940
halt:*:10547:0::7:7::
mail:*:10547:0::7:7::
news:*:10547:0::7:7::
uucp:*:10547:0::7:7::
operator:*:10547:0::7:7::
games:*: 10547:0: :7:7::
gopher:*:10547:0::7:7::
ftp:*:10547:0::7:7::
man:*:10547:0::7:7::
majordom:*:10547:0::7:7::
postgres:*:10547:0::7:7::
mysql:*:10547:0::7:7::
si1via:1iDYwrOmhmEBU:10792:0:30:7:-l::
nobody:*:10547:0::7:7::
david:1iDYwrOmhmEBU:10792:0::7:7::
Подробнеео /etc/shadow
Назначение первого поля файла shadow такое же, как и у первого поля файла passwd.
Второе поле содержит хэшированный пароль. Реализация теневых паролей в МСВС допускает хэшированные пароли длиной от 13 до 24 символов, однако программа шифрования паролей crypt умеет выдавать только 13-символь-ные хэшированные пароли. Символы, используемые в хэше, берутся из набора, состоящего из 52 букв алфавита (строчных и прописных), цифр 0-9, точки и наклонной черты вправо (/). Итого выходит 64 символа, допустимых в поле хэшированного пароля.
Затравка, таким образом, которая, как и ранее, представляет собой первые два символа, может выбираться из 4096 возможных комбинаций (64x64). Для шифрования используется алгоритм DES с 56-битным ключом, то есть пространство ключей этого алгоритма насчитывает 256 ключей, что приблизительно равно 72 057 590 000 000 000 или 72 квадрильонам. Число выглядит впечатляюще, однако перебрать все ключи из пространства такого размера можно на самом деле за весьма короткое время.
С третьего поля начинается информация об устаревании пароля. В нем хранится число дней, прошедших с 1 января 1970 года до дня последнего изменения пароля.