Может ли кто-нибудь написать или помочь мне написать сценарий bash, который сделает следующее:
Новый пользователь подключается к моему серверу FreeBSD и выполняет вход через SSH с определенными учетными данными, такими как «регистрация пользователя, проходная регистрация» или что-то подобное. Его приветствует баннер с указанием ему, что делать дальше, и запускается скрипт, запрашивающий у пользователя его студенческий идентификатор. Затем создается новый пользователь со случайным паролем, и предоставленный идентификатор и электронное письмо отправляются на studentID@university.domain, содержащий пароль (в качестве метода проверки студента). После этой процедуры у ученика появляется новая, ограниченная учетная запись на моем сервере с предоставленным идентификатором и случайным изменяемым паролем.
Идея заключается в создании сценария, который часто используется при регистрации MUD или создании учетных записей оболочки.
Я полагаю, что сценарий необходимо будет выполнить при входе в систему, сохранить данные в полях и затем передать их команде sudo'ed adduser. Я имею только базовое понимание сценариев Unix и буду признателен за любую помощь.
РЕДАКТИРОВАТЬ:
Итак, я попробовал кое-что самостоятельно:
#! /usr/local/bin/bash
clear
echo "--------------------------------------------------"
echo " "
echo " Welcome to FreeBSD community server! "
echo " "
echo "--------------------------------------------------"
echo
echo To create a new account enter your album number:
read ALBUM
if [ -d "/home/$ALBUM" ]; then
echo ""
echo "User already exists!"
echo ""
read
exit
else
PASSWORD=`cat /dev/urandom |tr -cd A-Za-z0-9 | head -c 8`
echo "Your FreeBSD server password is:
$PASSWORD
If you did not request one, ignore this message." | mail -s "Auth Credentials" $ALBUM@gmail.com
echo ""
echo "Thank you, a new user has been created and a mail containing your password"
echo "was sent to $ALBUM@student.pwr.wroc.pl"
echo ""
sudo pw useradd $ALBUM -d /home/$ALBUM -s /usr/local/bin/bash -m
echo $PASSWORD | sudo pw mod user $ALBUM -h 0
read
exit
fi
Хорошо, вот что я придумала. Какие-либо предложения? Пользователь, которым запускается сценарий, - содомир с nopasswd для использования инструмента pw. Также скрипт имеет авторан с исходным кодом.