Меняем пароль пользователю из bash скрипта (или просто командой из шелла).: различия между версиями

Материал из support.qbpro.ru
imported>Vix
(Новая страница: «Сейчас на КИТе нашли отличный способ сменить пароль пользователю из шелла (а значит и из …»)
 
imported>Vix
Нет описания правки
Строка 7: Строка 7:
Сменим пароль руту на megapassword (запуск от рута):
Сменим пароль руту на megapassword (запуск от рута):
  root@host:~# echo -e "megapassword\nmegapassword\n" | passwd
  root@host:~# echo -e "megapassword\nmegapassword\n" | passwd
Рабочий пример:
#!/bin/bash
newpass="newpassword\n"
echo -e $newpass$newpass| passwd username;
Сменим пароль пользователю username (запуск от рута)
Сменим пароль пользователю username (запуск от рута)
  root@host:~# echo -e "megapassword\nmegapassword\n" | passwd username
  root@host:~# echo -e "megapassword\nmegapassword\n" | passwd username

Версия от 22:58, 9 июля 2016

Сейчас на КИТе нашли отличный способ сменить пароль пользователю из шелла (а значит и из скрипта). В общем, кто сталкивался с этой проблемой — поймут меня. UPD: в комментариях указали другой способ смены пароля от рута:

root@host:~# echo "username:password" | chpasswd

Такой способ тоже подходит, но не является универсальным. Например, во FreeBSD утилиты chpasswd нет.

EOUPD

Суть такая: Сменим пароль руту на megapassword (запуск от рута):

root@host:~# echo -e "megapassword\nmegapassword\n" | passwd

Рабочий пример:

#!/bin/bash
newpass="newpassword\n"
echo -e $newpass$newpass| passwd username;

Сменим пароль пользователю username (запуск от рута)

root@host:~# echo -e "megapassword\nmegapassword\n" | passwd username

Для того, что бы было понятнее, покажу что в кавычках с пробелами: «megassword \n megapassword \n», где megapassword — новый пароль, а \n — «нажатие» клавиши enter (а точнее — перенос строки) Сменим пароль пользователю username при запуске от username:

username:~$ echo -e "oldpassword\nmegapassword\nmegapassword\n" | passwd

Здесь добавляется третья строка в выводе echo, в которой нужно указать старый пароль. Чего я в общем-то вам не советую. Ну и чтобы не было вопросов о том, что происходит:

inky@laptop1:~$ echo -e "oldpassword\nmegapassword\nmegapassword\n"
oldpassword
megapassword
megapassword

То есть мы на STDIN passwd скармливаем STDOUT echo. А echo и «жмет enter»

взято тут