Intereting Posts
Emacs: запрос-замена, регулярное выражение, повторное использование результата поиска Как я могу подсчитать количество пробельных символов в файле? Перенаправление SSH на другой внутренний порт Символы, видимые в vi, но не в cat. Отображение дискового пространства, необходимого для обновления Как подражать Oracle Java с OpenJDK? Как разрешить, когда IP-адрес сервера NFS изменяется Как установить `pg_recvlogical` в Centos 6? Любые другие дистрибутивы, такие как Ubuntu Software Center? Как я могу преобразовать этот файл excel, чтобы он был не только одной строкой? Проводник файлов не запускается, когда я запускаю его и исчезает из Избранного Храните переменную \ in read для отображения пространства Получение списка файлов, измененных после обновления apt-get или установки? IPSec через L2TP: не удалось получить ключ для предварительного общего ключа Печать PDF в PDF ухудшает качество?

Изменить пароль программно

В текущей версии Raspian я знаю, что можно изменить пароль текущего зарегистрированного пользователя из командной строки следующим образом:

sudo passwd 

который затем предложит пользователю ввести новый пароль дважды. Это приведет к выходу:

 Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 

Мне было интересно, есть ли способ изменить пароль программно, например, из сценария оболочки.

Я пытаюсь создать сценарий конфигурации для развертывания на моем малине Pis, и я не хочу вручную вводить новые пароли для них.

Вы ищете команду chpasswd . Вы бы сделали что-то вроде этого:

 echo 'pi:newpassword' | chpasswd # change user pi password to newpassword 

Обратите внимание, что его нужно запускать как root, по крайней мере, с настройкой PAM по умолчанию. Но, предположительно, запуск от имени root не является проблемой для сценария развертывания системы.

Кроме того, вы можете выполнять несколько пользователей одновременно, подавая несколько строк ввода.

Другой альтернативой является использование команды yes в вашем скрипте.

 yes newpassword | passwd youruser 

Это отправит newpassword в команду passwd для youruser .

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

РЕДАКТИРОВАТЬ:

Этот ответ требует доступа root. Извиняюсь, что не упоминал об этом ранее. Это метод, который я использую при выполнении задач администрирования, требующих доступа root.