Библиотека сайта rus-linux.net
Руководство по команде chpasswd для начинающих
Оригинал: Linux chpasswd Command Tutorial for Beginners (5 Examples)
Автор: Himanshu Arora
Дата публикации: 21 августа 2018 года
Перевод: А. Кривошей
Дата перевода: август 2018 г.
Всем известна команда passwd, которая позволяет менять пароль учетной записи в системе Linux. Но что, если вы хотите сменить пароли нескольких пользователей за один раз? Для этого предназначена команда chpasswd.
В этом руководстве мы обсудим основы применения этой команды, используя несколько простых для понимания примеров. Все приведенные здесь примеры были протестированы на машине Ubuntu 18.04 LTS.
Команда chpasswd позволяет в Linux изменять пароли в пакетном режиме. Синтаксис команды:
chpasswd [options]
И вот о чем говорит man-страница утилиты:
Команда chpasswd считывает список пар имени пользователя и пароля из стандартного ввода и использует эту информацию для обновления группы существующих пользователей. Каждая строка имеет формат:
user_name:password
По умолчанию пароли должны быть представлены в текстовом виде и шифруются chpasswd. Также обновится возраст пароля.
Ниже приведены примеры в стиле вопрос/ответ, которые должны дать вам представление о том, как работает chpasswd.
Вопрос 1. Как использовать команду chpasswd?
Базовое использование, как описано выше, не представляет сложности. Просто запустите команду chpasswd (с правами root) без опций и введите новый пароль в формате «имя пользователя: пароль».
Например, я выполнил команду:
$ chpasswd
и ввел следующие строки:
himanshu:thisismynewpassword789 test:latestpassword123
Примечание 1. Поскольку chpasswd ожидает ввода ввода на stdin, не забудьте нажать Ctrl + D, как только вы закончите вводить имена пользователей и новые пароли.
Примечание 2. Пароли, используемые в данном примере, предназначены только для демонстрационных целей, не используйте их каким-либо образом.
Вопрос 2. Как заставить chpasswd читать информацию из файла?
Иногда вам может потребоваться, чтобы утилита считывала входную информацию из файла (а не со стандартного ввода). Это можно сделать следующим образом:
cat [FILENAME] | chpasswd
Например:
cat newpass.txt | chpasswd
Обратите внимание, что формат ввода остается таким же: «username: password», только он записан в файле.
Вопрос 3. Как chpasswd выполнят шифрование?
Вот как объясняет это man-страница утилиты:
По умолчанию пароли шифруются PAM, но (хотя это не рекомендуется) вы можете выбрать другой метод шифрования с помощью опций -e, -m или -c.
За исключением случаев, когда для шифрования паролей используется PAM, chpasswd сначала обновляет все пароли в памяти, а затем фиксирует все изменения на диске, если не возникли ошибки.
Когда для шифрования паролей (и обновления паролей в системной базе данных) используется PAM, то если пароль не может быть обновлен, chpasswd продолжает обновлять пароли следующих пользователей и вернет код ошибки при выходе.
Эта команда предназначена для использования в системном окружении, где за один раз создается множество учетных записей.
Вопрос 4. Как включить другой метод шифрования?
Это можно сделать, используя опцию командной строки -c. По умолчанию, как вы уже знаете, используется PAM, но с помощью -c вы можете указать любой из следующих: DES, MD5, NONE и SHA256 или SHA512 (если ваша libc поддерживает метод, который вы выберете).
Например:
chpasswd -c DES
Вопрос 5. Как сообщить chpasswd об зашифрованном вводе?
Если вы хотите, вы также можете на вводе использовать зашифрованные пароли. Но для этого вам нужно применять опцию -e, чтобы chpasswd знала об этом.
chpasswd -e
Заключение
Команда chpasswd обычно используется системными администраторами или лицами, которым поручено управление пользователями на ПК с Linux или в сети. Здесь мы обсудили несколько основных параметров командной строки этой утилиты. Чтобы узнать больше, почитайте ее man-страницу.