Персональный
сайт
Игоря
Сысоева



sysoev.ru
mod_accel
mod_deflate
программирование
windows
freebsd
apache
pppd
unix
web

для писем

Провайдим с помощью getty по-старинке

 

24.08.1999

После того, как мы настроили порты для входящих звонков, необходимо эти звонки принимать. Проще всего это делается с помощью программы getty. Для этого нужно чуть-чуть изменить файл /etc/ttys. Начнём с ttyd1:

ttyd1  "/usr/libexec/getty std.57600"  dialup  on insecure

Программы из этого файла запускаются процессом init. Он просматривает строки, и если у строки есть параметр "on", то запускает указанную в ней программу на соответствующем терминале. Если программа по каким-то причинам завершает работу, init запускает её снова. В нашем случае, он будет запускать getty:

/usr/libexec/getty std.57600 ttyd1

Тип термнала – "std.57600", это терминал без бита четности и фиксированной скоростью обмена, равной 57600. Мы увеличили скорость с 9600 на 57600. Причина, по которой мы это сделали объясняется в статье "Протокол V.42bis и скорость порта". Кроме того, мы перевели наш терминал в ранг небезопасных – "insecure", то есть на этом терминале нельзя залогиниться под root'ом.

Тоже самое Вы можете сделать для остальных портов – ttyd2 и ttyd3.

После этого нужно перезапустить процесс init, который запускает программы из /etc/ttys:

kill -1 1

После того, как процесс init запустит getty, getty попытается открыть устройство /dev/ttyd0 и будет заблокирован до тех пор, пока сигнал DCD не станет активным, то есть, пока кто-либо не позвонит и модемы не установят соединения. После того, как это произойдет, getty будет разблокирована и она выведет приглашение – "login:". Когда другая сторона введет имя, getty вызывает login и передает ему в качестве параметра введенное имя. После ввода пароля login проводит аутентификацию пользователя и если имя и пароль правильные, то он вызывает шелл, указанный в /etc/master.passwd для данного пользователя. Если Вы хотите, чтобы этот пользователь мог осуществлять только PPP-соединение с Вашем компьютером, то его шеллом может быть /usr/sbin/pppd.

В Window 95 и NT ввод имени и пароля можно делать ручками в терминальном окне или же автоматизировать этот процесс, написав скрипт.

(C) Igor Sysoev
http://sysoev.ru