Назад | Перейти на главную страницу

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

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

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

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

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

Enter new UNIX password: [enter pwd]
Retype new UNIX password: [enter pwd-same]
passwd: password updated successfully

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

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

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. На странице руководства вы найдете всю необходимую информацию. Также есть занимательное чтение почему это плохая идея.