В двух словах:
passwd
проверяет, подключен ли STDIN (файловый дескриптор 0) к терминалу, используя isatty (0)
. В противном случае passwd
выйдет из строя, т.е. вы можете работать только с passwd
в интерактивном режиме
chpasswd
, с другой стороны, предназначен для чтения (имени пользователя и) пароля из STDIN и называется пакетным режимом (создает / обновляет несколько учетных данных одновременно). Он считывает пароль (а) (по умолчанию в виде открытого текста) и имена пользователей из STDIN, заданных в формате имя_пользователя: пароль
, с новой строкой, разделяющей записи