passwd(1)

НАЗВАНИЕ
passwd - изменяет пароль пользователя

СИНТАКСИС

passwd [параметры] [УЧЁТНАЯ_ЗАПИСЬ]

ОПИСАНИЕ

Программа passwd изменяет пароли пользовательских учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи. Программа passwd также изменяет информацию об учётной записи или срок действия пароля.

  Изменение пароля

Сначала пользователя попросят ввести старый пароль, если он был. Этот пароль зашифровывается и сравнивается с имеющимся. У пользователя есть только одна попытка ввести правильный пароль. Для суперпользователя этот шаг пропускается, для того чтобы можно было изменить забытый пароль.

После ввода пароля проверяется информация об устаревании пароля, чтобы убедиться, что пользователю разрешено изменять пароль в настоящий момент. Если нет, то passwd не производит изменение пароля и завершает работу.

Затем пользователю предложат дважды ввести новый пароль. Значение второго ввода сравнивается с первым и для изменения пароли из обеих попыток должны совпасть.

Затем пароль тестируется на сложность подбора. Согласно общим принципам, пароли должны быть длиной от 6 до 8 символов и включать один или более символов каждого типа:

    • строчные буквы

    • цифры от 0 до 9

    • знаки пунктуации

Не включайте системные символы стирания и удаления. Программа passwd не примет пароль, который не имеет достаточной сложности.

  Выбор пароля

Безопасность пароля зависит от стойкости алгоритма шифрования и размера пространства ключа. В старых системах UNIX метод шифрования основывался на алгоритме NBS DES. Сейчас рекомендуют более новые методы (смотрите ENCRYPT_METHOD). Размер пространства ключа зависит от степени произвольности выбранного пароля.

При обеспечении безопасности пароля выбирают нечто среднее между сложным паролем и сложностью работы с ним. По этой причине, вы не должны использовать пароль, который является словом из словаря или который придётся записать из-за его сложности. Также, пароль не должен быть названием чего-либо, номером вашей лицензии, днём рождения и домашним адресом. Обо всём этом легко догадаться, что приведёт к нарушению безопасности системы.

You can find advice on how to choose a strong password on http://en.wikipedia.org/wiki/Password_strength

ПАРАМЕТРЫ

Параметры команды passwd:

-a, --all
    Этот параметр можно использовать только вместе с -S для вывода статуса всех пользователей.

-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
    Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT.

-S, --status
    Показать состояние учётной записи. Информация о состоянии содержит 7 полей. Первое поле содержит имя учётной записи. Второе поле указывает, заблокирован ли пароль учётной записи (L), она без пароля (NP) или у неё есть рабочий пароль (P). Третье поле хранит дату последнего изменения пароля. В следующих четырёх полях хранятся минимальный срок, максимальный срок, период выдачи предупреждения и период неактивности пароля. Эти сроки измеряются в днях.

-u, --unlock
    Разблокировать пароль указанной учётной записи. Этот параметр разблокирует пароль, возвращая его прежнее значение (которое было перед использованием параметра -l).

-w, --warndays ПРЕД_ДНЕЙ
    Установить число дней выдачи предупреждения, перед тем как потребуется смена пароля. В параметре ПРЕД_ДНЕЙ указывается число дней перед тем как пароль устареет, в течении которых пользователю будут напоминать, что пароль скоро устареет.

-x, --maxdays МАКС_ДНЕЙ
    Установить максимальное количество дней, в течении которых пароль остаётся рабочим. После МАКС_ДНЕЙ пароль нужно изменить.

    Значение -1 в параметре МАКС_ДНЕЙ отменяет проверку пароля.

ПРЕДОСТЕРЕЖЕНИЯ

Сложность пароля проверяется на разных машинах по разному. Пользователю настоятельно рекомендуется выбирать пароль такой сложности, чтобы ему нормально работалось.

Пользователи не могут изменять свои пароли в системе, если включён NIS и они не вошли на сервер NIS.

НАСТРОЙКА

На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:

ENCRYPT_METHOD (строка)
    Задаёт системный алгоритм шифрования по умолчанию для шифрования паролей (используется, если алгоритм не указан в командной строке).

    Возможны следующие значения: DES (по умолчанию), MD5, SHA256, SHA512.

    Замечание: этот параметр переопределяет переменную MD5_CRYPT_ENAB.

MD5_CRYPT_ENAB (логический)
    Обозначает, что пароль должен быть зашифрован по алгоритму на основе MD5. Если значение равно yes, то новые пароли будут зашифрованы по алгоритму на основе MD5, совместимому с используемым в новых версиях FreeBSD. Он поддерживает пароли неограниченной длины и имеет более длинную строку соли. Установите в no, если вам нужно копировать шифрованные пароли в другие системы, которые не поддерживают новый алгоритм. По умолчанию no.

    Эта переменная переопределяется переменной ENCRYPT_METHOD или любым параметром командной строки, который задаёт алгоритм шифрования.

    Эта переменная устарела; используйте ENCRYPT_METHOD.

OBSCURE_CHECKS_ENAB (логический)
    Включает дополнительные проверки при смене пароля.

PASS_ALWAYS_WARN (логический)
    Предупреждать о слабых паролях (но разрешать их использовать) для суперпользователя.

PASS_CHANGE_TRIES (число)
    Максимальное количество попыток смены пароля (слишком простого) при непрохождении проверки.

PASS_MAX_LEN (число), PASS_MIN_LEN (число)
    Количество значимых символов в пароле для crypt(). По умолчанию значение PASS_MAX_LEN равно 8. Не изменяйте, если ваш crypt() лучше. Игнорируется, если значение MD5_CRYPT_ENAB равно yes.

SHA_CRYPT_MIN_ROUNDS (число), SHA_CRYPT_MAX_ROUNDS (число)
    Если значение ENCRYPT_METHOD равно SHA256 или SHA512, эта переменная определяет количество раундов SHA, используемых алгоритмом шифрования по умолчанию (если количество раундов не задано в командной строке).

    Увеличение количества раундов повышает сложность подбора пароля простым перебором. Но заметим, что при этом для аутентификации пользователей требуется большее количество процессорных ресурсов.

    Если не задана, то libc выбирает значение количества раундов по умолчанию (5000).

    Значения должны лежать в диапазоне 1000-999999999.

    Если задано какое-то одно значение — SHA_CRYPT_MIN_ROUNDS или SHA_CRYPT_MAX_ROUNDS — то будет использовано это значение.

    Если SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS, то используется большее значение.

ФАЙЛЫ

/etc/passwd
    содержит информацию о пользователях

/etc/shadow
    содержит защищаемую информацию о пользователях

/etc/login.defs
    содержит конфигурацию подсистемы теневых паролей

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ

Программа passwd завершая работу, возвращает следующие значения:

0
    успешное выполнение

1
    доступ запрещён

2
    недопустимая комбинация параметров

3
    неожиданная ошибка при работе, ничего не сделано

4
    неожиданная ошибка при работе, отсутствует файл passwd

5
    файл passwd занят другой программой, попробуйте ещё раз

6
    недопустимое значение параметра

СМОТРИТЕ ТАКЖЕ

chpasswd(8), passwd(5), shadow(5), login.defs(5),usermod(8).