Bash скрипт для настройки FTP

Возможно ли / какие-либо рекомендации по написанию сценария оболочки для автоматизации процесса создания нового пользователя / пользователя ftp:

В настоящее время процесс:

sudo useradd -d / ftp-files / user-a -m user-a
sudo passwd user-a

Проблема в том, что мне нужно вручную вводить пароли при появлении запроса:

Введите новый пароль UNIX: [введите pwd]
Повторите ввод нового пароля UNIX: [введите pwd-same]
passwd: пароль успешно обновлен

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

2 ответа

Решение

Вы можете использовать что-то вроде:

sudo useradd -d /ftp-files/$1 -m $1
echo $2 | sudo passwd --stdin $1

И затем вызовите скрипт следующим образом:

./createuser <username> <password>

Для получения дополнительной информации о --stdin флаг, вы можете проверить man 1 passwd,

РЕДАКТИРОВАТЬ: К сожалению, оказывается, что passwd команда в Ubuntu не поддерживает --stdin флаг (по крайней мере, в соответствии с этой страницей руководства), так что вам придется идти с chpasswd опция:

sudo useradd -d /ftp-files/$1 -m $1
echo "$1:$2" | sudo chpasswd

Я бы сказал, что вы, вероятно, хотите использовать chpasswd скорее, чем passwd, Справочная страница дает вам все необходимые детали. Есть также интересное чтение о том, почему это плохая идея.

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