Intereting Posts
Почему моя команда ‘rm’ отлично работает в терминале на моем Mac, а не из сценария оболочки? Ограничение, которое может отправить на адрес электронной почты Что говорят `declare name` и` declare -g`? Рабочий стол Linux Mint отображает разные файлы из команды ls Slackware 14x86_64, gnome 3.6 и настройки прокрутки сенсорной панели alps Есть ли способ дать emacs внешний вид KDE? Как проверить, сколько времени работает процесс? Установите initramfs для запроса luks passowrd при запуске на Mint 18? Сообщение об ошибке Firefox при добавлении сертификата клиента, подписанного CA Получено сообщение «ОШИБКА: не удается декодировать канал связи типа 239» при включении режима сниффера Как безопасно отменить поиск dns на ip в сценарии оболочки Как завершить интерактивный сеанс ssh через определенное время Ошибка строгой зависимости при установке пакета Как сделать gnome 3 'Type to search' искать больше мест? scp, блокирующий мой сервер (в обоих направлениях)

chpasswd и openssl

Я пытаюсь передать пароль MD5 в chpasswd, но он не работает.

echo username:$(openssl passwd -1 -salt salt password) 

Затем я пытаюсь передать это chpasswd чтобы изменить пароль

 echo 'username:$1$salt$aldkjflsfj' | /usr/sbin/chpasswd -e 

Однако, когда я это делаю, изменение пароля не вступает в силу – обновляется /etc/shadow но если я пытаюсь использовать пароль, он не работает.

Это работает:

 echo username:password | /usr/sbin/chpasswd 

passwd также работает

Больше информации:

 $ S=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 5 | head -n 1) $ echo username:$(openssl passwd -1 -salt "$S" password) username:$1$nPkvS$eKljAIRsFLXOffXti.ZtO/ $ echo 'username:$1$nPkvS$eKljAIRsFLXOffXti.ZtO/' | chpasswd -e $ grep username /etc/shadow username:$1$nPkvS$eKljAIRsFLXOffXti.ZtO/:16722:0:99999:7::: 

Аргументы должны быть указаны, иначе оболочка проверяет специальные символы внутри этих аргументов:

 echo "username:"$(openssl passwd -1 -salt "$salt" "$password") 

Используйте двойную кавычку здесь, чтобы оболочка оценивала переменные.

Теперь также нужно указать также echo команду:

 echo 'username:$1$salt$aldkjflsfj' | ... 

Используйте одиночные кавычки здесь, потому что $ -значения являются частью записи и должны сохраняться.


Предупреждение : я не рекомендую менять пароль следующим образом. Эти команды и, следовательно, простые пароли можно увидеть в списках ps и top например. openssl есть механизм для таких случаев, чтобы прочитать пароль из файла.