Подобно файлу passwd, файл shadow содержит одну строку (запись) для каждого пользователя. Каждая запись состоит из списка полей, разделенных двоеточиями. Всего существует 9 полей. Порядок записей в обоих файлах должен быть идентичным.
Для запуска команды chage необходимо иметь привилегии суперпользователя. Это не касается только опции 1, позволяющей пользователю узнать текущие установки. Рассмотрим ряд примеров.
В первом примере пользователю joe запрещается менять пароль в течение 14 дней, а по прошествии 30 дней он обязан поменять пароль:
chage ш 14 М 30 joe
Во втором примере срок действия учетной записи guest истекает 4 апреля 1999 года:
chage Е 04/04/99 guest
А вот как пользователь шагу может проверить свои текущие установки:
$ chage 1 шагу Minimum: 7 Maximum: 30 Warning: 3 Inactive: 45
Last Change: Feb 18, 1999 Password Expires: Mar 20, 1999 Password Inactive: May 04, 1999 Account Expires: Never
Файл /etc/login.defs
Файл /etc/shadow — не единственный способ включить механизм устаревания паролей. В Red Hat 7.2 есть общесистемный файл /etc/login. defs, который задает параметры устаревания паролей всех пользователей, кроме root. В нем также содержится ряд других записей. Познакомимся с этим файлом поближе.
В первой части файла содержатся директивы, определяющие местонахождение почтовых ящиков пользователей. Подробнее об этом говорится в комментариях самого файла.
В следующей части файла (листинг 4.3) задаются общесистемные параметры устаревания паролей. Параметры PASS_MIN_DAYS, PASS_MAX_DAYS и PASS_WARN_AGE соответствуют четвертому, пятому и шестому полям файла /etc/shadow. Установки файла /etc/shadow имеют более высокий приоритет.
Листинг 4.3. Параметры устаревания паролей в файле /etc/login. defs
PASS_MAX_DAYS 30 PASS_MIN_DAYS 10 PASS_MIN_LEN 5 PASS WARN AGE 7
/etc/login. defs можно задать установки по умолчанию, а затем настроить их для конкретных пользователей в файле /etc/shadow.
Оставшаяся часть файла показана в листинге 4.4. Параметры CHFN_AUTH и CHFN_RESTRICT могут принимать значение yes либо по. Если первый из них равен yes, то всякий раз, когда пользователь выполняет команду chfn или chsh2, будет выдаваться запрос на ввод пароля. В противном случае пользователь сможет менять информацию, выдаваемую утилитой finger, и при этом не вводить пароль. Только суперпользователь имеет право менять данные утилиты finger, относящиеся к другим пользователям. Если параметр CHFN_RESTRICT равен yes, пользователь не сможет поменять свое "настоящее" имя с помощью команды chfn f.
Листинг 4.4. Завершающие директивы файла /etc/login . defs
UID_MIN 500 UID_MAX 60000 GID_MIN 500
GID_MAX 60000
CHFN_AUTH yes
CHFN_RESTRICT yes
USERDEL_CMD /usr/sbin/userdel_local
CREATE_HOME yes