2016-12-16 3 views
-1

У меня есть интерактивный скрипт bash, который сначала запрашивает имя пользователя, а THEN запрашивает пароль, а затем снова подтверждает пароль. (Он создает пользователей в нашей ERP-системе НЕ в Ubuntu)Интерактивный скрипт Bash

У меня есть CSV 1000+ пользователей и случайным образом сгенерированные пароли, поэтому мне нужно создать всех этих пользователей. Я хочу написать сценарий, который выбирает пользователей из CSV, а затем при запросе пароля он передает пароли из CSV для создания пользователей. Ниже приводится то, что я сделал, но он не работал должным образом:

while IFS=, 
read -a csv_line; do 
createusr ${csv_line[0]}:${csv_line[1]}:${csv_line[1]};done < Desktop/Passwoerter.csv 

Это дает ошибку, которая не соответствует паролю! Фактический сценарий для индивидуальной работы пользователя, как:

~$ createuser xyz <press Enter> 
password for xyz: whatever <press enter> 
confirm password for xyz whatever <enter again> 
~$ 

его не:

~$ createuser xyz whatever whatever <press enter> 
~$ 

Он отлично работает, если добавить один за другим, но есть, так что я 1000+ пытался с помощью небольшого скрипта над CSV.

ответ

1

Первый вариант:newusers: Его часть passwd упаковка.

DESCRIPTION 
    The newusers command reads a file (or the standard input by default) 
    and uses this information to update a set of existing users or to 
    create new users. Each line is in the same format as the standard 
    password file. 

входной файл форматирование:

username:passwd:UID:GID:full name,room number,work phone,home phone,other:directory:shell 

Как вы можете видеть, password содержится в файле.

Downside, вам необходимо преобразовать ваш csv в txt с предоставленным форматом.

newusers < file.txt 

Второй вариант: вы можете использовать useradd с -p переключателем.

useradd -m -p $(mkpasswd "password") username 

-m Создать домашний каталог пользователя, если он не существует.

-p Зашифрованный пароль, возвращенный crypt (3).

+0

Нет, у меня есть скрипт для создания этих пользователей, поскольку они являются частью ERP и ударить по различным таблицам в БД и уже существующий сценарий создать пользователя и сохранить необходимую информацию в различных таблицах в БД, поэтому я должен использовать этот скрипт только для создания пользователей. – User2403

+0

Это создает тех же пользователей. Вам просто нужно «конвертировать ваш csv» в предоставленный формат или использовать второй вариант и предоставлять значения в 'variables'. –

+0

Мне нужно создавать пользователей для нашей ERP, а не для ubuntu, поэтому первый скрипт делает это, но по одному за раз – User2403

0

я узнаю, что мне нужно, мой сценарий выглядит следующим образом:

while IFS=# read -a csv_line 
do 
    printf "%s\n%s\n" ${csv_line[1]} ${csv_line[1]} | createuser ${csv_line[0]} 
done 

и выполнен как:

./insertalluser < Desktop/Passwoerter.csv 
Смежные вопросы