Программа passwd изменяет пароли пользовательских учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи. Программа passwd также изменяет информацию об учётной записи или срок действия пароля.
Сначала пользователя попросят ввести старый пароль, если он был. Этот пароль зашифровывается и сравнивается с имеющимся. У пользователя есть только одна попытка ввести правильный пароль. Для суперпользователя этот шаг пропускается, для того чтобы можно было изменить забытый пароль.
После ввода пароля проверяется информация об устаревании пароля, чтобы убедиться, что пользователю разрешено изменять пароль в настоящий момент. Если нет, то passwd не производит изменение пароля и завершает работу.
Затем пользователю предложат дважды ввести новый пароль. Значение второго ввода сравнивается с первым и для изменения пароли из обеих попыток должны совпасть.
Затем пароль тестируется на сложность подбора. Согласно общим принципам, пароли должны быть длиной от 6 до 8 символов и включать один или более символов каждого типа:
Не включайте системные символы стирания и удаления. Программа passwd не примет пароль, который не имеет достаточной сложности.
Безопасность пароля зависит от стойкости алгоритма шифрования и размера пространства ключа. В старых системах UNIX метод шифрования основывался на алгоритме NBS DES. Сейчас рекомендуют более новые методы (смотрите ENCRYPT_METHOD). Размер пространства ключа зависит от степени произвольности выбранного пароля.
При обеспечении безопасности пароля выбирают нечто среднее между сложным паролем и сложностью работы с ним. По этой причине, вы не должны использовать пароль, который является словом из словаря или который придётся записать из-за его сложности. Также, пароль не должен быть названием чего-либо, номером вашей лицензии, днём рождения и домашним адресом. Обо всём этом легко догадаться, что приведёт к нарушению безопасности системы.
Параметры команды passwd:
-a, --all
-d, --delete
-e, --expire
-h, --help
-i, --inactive ДНЕЙ
-k, --keep-tokens
-l, --lock
Заметим, что это не блокирует учётную запись. Пользователь всё ещё может войти в систему с помощью другого способа аутентификации (например, с помощью ключа SSH). Чтобы заблокировать учётную запись, администратор должен использовать команду usermod --expiredate 1 (это установит дату устаревания учётной запись равной 2 января 1970 года).
Посетитель с заблокированным паролем не может изменить свой пароль.
-n, --mindays МИН_ДНЕЙ
-q, --quiet
-r, --repository РЕПОЗИТОРИЙ
-R, --root КАТ_CHROOT
-S, --status
-u, --unlock
-w, --warndays ПРЕД_ДНЕЙ
-x, --maxdays МАКС_ДНЕЙ
Сложность пароля проверяется на разных машинах по разному. Пользователю настоятельно рекомендуется выбирать пароль такой сложности, чтобы ему нормально работалось.
Пользователи не могут изменять свои пароли в системе, если включён NIS и они не вошли на сервер NIS.
Команда passwd для аутентификации пользователей и для смены паролей использует PAM.
/etc/passwd
/etc/shadow
/etc/pam.d/passwd
Программа passwd завершая работу, возвращает следующие значения:
0
1
2
3
4
5
6
chpasswd(8), passwd(5), shadow(5), usermod(8).