создать пользователя через скрипт

создать пользователя через скрипт

Я хочу создать нового пользователя в определенной группе, выполнив следующую команду.

sudo ./create_user.sh "test" "firstname lastname"

Скрипт create_user.shвыглядит следующим образом.

#!bin/bash
#sudo adduser --gecos "$2" --ingroup testgroup $1

Однако проблема в том, что мне нужно избежать вставки пароля (это должен быть просто тест) с помощью документа here, но я понятия не имею о синтаксисе.

Я попробовал несколько решений, но ни одно из них не сработало.

Вот как выглядит моя попытка сделать heredocument в скрипте

#<< EOF
#test
#test
#EOF

мой вывод выглядит так

#adding user 'test' ...
#adding new user 'test' <1003> with group 'testgroup' ...
#Enter new UNIX password:

решение1

adduserвызывает passwdутилиту для установки пароля. Как и многие программы, запрашивающие пароль, passwdнастаивает на том, чтобы ее вывод поступал с терминала. Поэтому вы не можете передать ему ввод через here-document — который создает временный файл или канал и passwdне принимает ни то, ни другое.

Вы можете передать adduser(по крайней мере, в версии Debian) эту --disabled-passwordопцию, если не хотите иметь возможность входить в систему с помощью пароля (вы все равно сможете входить в систему другими способами, такими как ключи SSH, если вы их настроите). adduserне имеет возможности передавать хэш пароля (не сам пароль), но useraddв наборе утилит теневого пароля Linux она есть.

Если вы хотите ввести пароль во время создания учетной записи, убедитесь, что passwdсчитывает с терминала. Если вы получаете пароль из другого источника (например, веб-формы), вызовите passwdизожидатьсценарий — пример.

Если это упражнение в использовании документа here, то пароль не там, где его следует использовать. Я не вижу никаких проблем, которые документ here мог бы решить в том, что вы опубликовали.

Связанный контент