использование функции скрипта вместо ввода с клавиатуры

Я пишу сценарий оболочки, чтобы изменить пароль пользователя. Я попытался использовать команду passwd , но эта команда всегда запрашивает ввод старых и новых паролей; он не примет их из моего сценария.

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

One Solution collect form web for “использование функции скрипта вместо ввода с клавиатуры”

 #!/usr/bin/expect -f spawn passwd username expect "New password:" send -- "user-password\r" expect "Retype new password:" send -- "user-password\r" expect eof 

тестирование

Я сохранил его как script.exp и когда я запускаю скрипт, это результат, который я получаю на своей машине.

 expect script.exp spawn passwd ramesh Changing password for user ramesh. New password: Retype new password: passwd: all authentication tokens updated successfully. 

Мне не пришлось вводить пароль с помощью клавиатуры. Конечно, вы можете изменить функцию, чтобы она соответствовала вашим требованиям и использовала ее так, как вы хотите.

  • Создайте 6 окон в 2 строках в оконном менеджере i3
  • Отключить ForwardX11Timeout без ForwardX11Trusted в OpenSSH Client?
  • Использование X-Windows из Windows 8.1
  • Debian 9 DM не будет загружаться после dist-upgrade
  • прерывание xvfb-run в кластере
  • Можно ли управлять окнами в Gnome Shell с помощью D-Bus?
  • Запустите поддельный / минимальный сеанс X для Pulseaudio / dbus
  • Перетаскивание вкладок между браузерами
  • Переадресация X11 прерывается при переключении пользователей
  • Октава - предупреждение: невозможно открыть X11 DISPLAY
  • Какие требования X Server связаны с пересылкой X11?
  • Как сбрасывать значок запущенной программы X?
  • Interesting Posts

    Звездочка: сделайте IVR, чтобы произносить цифры во время ввода пользователем

    Plasma Device Notifier считает, что все внутренние разделы жесткого диска являются съемными и всегда показывают их

    Sftp: локальный удален?

    Как использовать переменную как часть имени массива

    Извлечь файл из изображения докеров?

    Странный выход df после ddrescue clone

    Как я могу получить информацию о удаленных каталогах, установленных через sshfs?

    Ошибка Kerberos после установки ArchLinux

    ffmpeg – генерировать видео с более чем 2 изображениями и 2 аудио

    Какие шаги я могу использовать для восстановления массива RAID 1 с LVM и EXT3?

    Почему передача HEREDOC в виде строки для `ruby -e` не работает?

    Как найти буфер обмена по умолчанию в debian-mate?

    запускать сценарий удаленно и использовать результат локально с помощью ssh auto login

    bash: Синтаксис около неожиданной ошибки '('

    Удаленное выполнение команд, но все же контроль над хостом

    Linux и Unix - лучшая ОС в мире.