LINUX SHELL SCRIPT Генерация случайного пароля и использование входных аргументов в качестве имени пользователя

Я пытаюсь изучить сценарии оболочки, и в этом сценарии я хочу, чтобы пользователь напрямую вводил желаемое имя пользователя в командной строке (без запроса на это), а затем я хочу предоставить этому пользователю случайный пароль. Думаю, я понял, как получить случайную строку, но как мне установить эту строку в качестве пароля?

Кроме того, часть имени пользователя, похоже, не работает. Когда я запускаю сценарий, а затем ввожу аргумент, он говорит мне: «Пожалуйста, введите аргумент». Это означает, что он считает, что аргументов не было, даже если я приводил аргументы. К вашему сведению, я запускаю код без каких-либо аргументов, и когда он запускается, он дает мне пустую строку, где я могу что-то писать. Вот где я ввожу имя пользователя, возможно, это неверно. Как вы, наверное, догадались, у меня не так много клеток мозга.

      read -p "$1"  username

# Shows a message if no args were given
if [[ $# -eq 0 ]] ; then
    echo 'Please enter an argument'
    exit 1
fi

# Get a random password
date +%s%N | sha256sum | head -c 10 # Use as password

# Add user
useradd "$username"

# Set the password
chpasswd <<< "$username:$password"

0 ответов

Другие вопросы по тегам