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
, Справочная страница дает вам все необходимые детали. Есть также интересное чтение о том, почему это плохая идея.