popen смена пароля linux

Я пытаюсь изменить пароль пользователя в системе linux. Для этого я открыл трубку. Отлично работает, за исключением того, что пользователь вводит пароли, которые рассматриваются как «слабые» (я справляюсь с тем, что пароль короткий). На терминале выводится предупреждение, после чего необходимо повторно ввести пароль для проверки.

Вот несколько строк кода (я убрал все части, которые не относятся к делу).

fp = popen("passwd myuser", "w");
fprintf(fp, "%sn", newPw);
fprintf(fp, "%sn", newPw);
status = pclose(fp);

Как я могу справиться с новым случаем, или есть более элегантный способ справиться с изменениями пароля, о которых я не знаю?

1 ответ

  1. просто добавил еще один fprintf (fp, «%s\n», newPw) для обработки дополнительной проверки. Если все работает нормально и пароль принят как есть, дополнительная печать в трубе не является проблемой…