Возможно ли добиться предложенного поведения на моем сервере FreeBSD 8.2:
Новый пользователь ssh на моем сервере. Он предоставляет в качестве «Логин:» порядковый номер своего ученика, и создается новая заблокированная учетная запись со случайным паролем, который отправляется на его почту index_number@university.domain в качестве метода аутентификации. После того, как он войдет в систему с этим паролем, учетная запись будет полностью создана и активирована / разблокирована, и пользователя просят / заставляют сменить пароль на новый.
Я не совсем уверен, что это возможно без взлома openssh. Если это возможно, то, безусловно, потребуется развернуть собственный модуль аутентификации PAM и ввести его в цепочку по адресу /etc/pam.d/sshd
. Если это то, что вам нужно для академических целей, это хороший проект.
Однако, если ваша цель состоит в том, чтобы учащиеся могли легко войти в систему, я бы сказал, что установить его намного проще. www/nginx
и вставьте сценарий в каталог cgi-bin, который отправит пароль по почте и создаст учетную запись, если она еще не существует. pw (8) имеет все возможности для проверки учетной записи пользователя и автоматического создания. Студентам также легко создать эту учетную запись, если они знают URL-адрес.
Ближайшее простое решение - заставить их изначально входить в учетную запись "studentsetup", которая предлагает им создать или сбросить учетную запись / пароль Unix на основе их университетских данных ... и больше ничего не делает.
Просто установите "studentsetup" для запуска сценария оболочки вместо zsh, bash, tcsh или чего-то еще. Дайте "studentsetup" несколько копий setuid-root "/ bin / passwd" и "/ usr / bin / adduser". Как и в любом безопасном сценарии оболочки, будьте осторожны с вопросами цитирования и вывода оболочки.
Другое элегантное решение - взаимодействие с инфраструктурой NT5 (Win2k), которая, вероятно, уже существует для студентов. FreeBSD включает Kerberos. А вот конфиг дается непросто для новичков.