Рейтинг:0

Странная запись в /etc/shadow после useradd -p и функции crypt в скрипте bash

флаг jp

Убунту 20.04 ЛТС.
Есть простой bash-скрипт к добавить нового пользователя через командную строку в интерактивном режиме:

#!/бин/баш
# Скрипт для добавления пользователя в систему Linux
если [ "$(id -u)" -eq 0 ]; тогда
    читать -p "Введите имя пользователя:" имя пользователя
    read -s -p "Введите пароль:" пароль
    egrep "^$username" /etc/passwd >/dev/null
    если [$? -экв 0]; тогда
        echo "$username существует!"
        выход 1
    еще
        pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
        useradd -m -p $pass $username
        [$? -eq 0 ] && echo "Пользователь добавлен в систему!" || echo "Не удалось добавить пользователя!"
    фи
еще
    echo "Только root может добавить пользователя в систему"
    выход 2
фи

Результат внутри /и т.д./тень файл после добавления пользователя через этот скрипт выглядит довольно странно. Например для имя пользователя демо и пароль демо, пользовательдобавить команда добавления в /и т.д./тень файл:

демонстрация: paR7EXftedvjA:19081:0:99999:7:::

Нет информации о я бы, параметр, и соль как это должно быть описано в принятой в настоящее время форме. Похоже, это просто хэш или я не знаю, что это такое PAR7EXftedvjA. Я попытался вернуть его с помощью демо как соль и демо в качестве пароля в командах типа mkpasswd или же openssl но результат не тот.

флаг fo
Я не знаю, как решить проблему. Однако с этим кодом довольно много проблем. Вставьте его в https://www.shellcheck.net для некоторой помощи. Возможно, открытый текст или зашифрованный пароль были искажены из-за отсутствия кавычек.
флаг jp
Я добавил пропущенные кавычки, но это не причина моей проблемы.
dave_thompson_085 avatar
флаг jp
Ваш Perl (или, что более вероятно, платформа или ОС, на которой он работает, о чем вы не упомянули) использует «традиционный» метод tweaked-DES [описанный здесь] (https://perldoc.perl.org/functions/crypt ), что было за много лет до изобретения ['модульного' синтаксиса](https://en.wikipedia.org/wiki/Crypt_(C)). `openssl passwd -crypt -salt pa demo` производит именно `paR7EXftedvjA`.
флаг jp
@dave_thompson_085 Спасибо! Ваш комментарий развеял мои сомнения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.