callback - перезвонить пользователю, позволяя войти в систему
НАЗВАНИЕ
callback − перезвонить пользователю, позволяя войти в систему
ОБЗОР
callback [−x<уровень_отладки>] [−V] [−l<модемные_линии>]
[−m<строка_инициализации>] [−s<скорость>] [−d] [−S] [номер_телефона] ...
ОПИСАНИЕ
Вызвать заданный номер телефона (если он не задан в командной строке, запросить у пользователя), и если СОЕДИНЕНИЕ
установлено, передать управление mgetty(8), представив пользователю приглашение ко вводу имени для входа в систему.
callback используется для следующих целей:
* безопасность: позволяет быть уверенным, что ваши пользователи те, за кого они себя выдают, поскольку звонят с
хорошо известного номера телефона.
* экономия расходов: позволяет вашей компании перезвонить вам.
callback может быть вызван непосредственно из командной строки (для этого нужны права администратора
системы, в противном случае callback не сможет передать сигнал mgetty), или из файла "login.config" принадлежащего mgetty. Смотри образец файла login.config,
поставляемый с mgetty.
ОПЦИИ
−x <уровень_отладки>
Используйте заданные уровни подробности для журналирования: 0 − обозначает полное молчание, 5 − очень подробно.
−V
Напечатать номер версии и завершить работу.
−d
Не переходить в фоновый режим. Это полезно для отладки.
−l <модемные_линии>
Использовать указанные модемные линии. Несколько линий разделяются знаком ":", как в sendfax(8). Пример: callback −l
tty1a:tty2a
−m <строка_инициализации>
Установить строку инициализации модема (как обычно: ожидать отправить ожидать …). С её помощью можно делать практически всё, до тех
пор, пока модем продолжает отвечать на команды (то есть, здесь не должно быть команды ATQ1) и переключить модем в режим данных (AT+FCLASS=0), если он
используется в режиме данных/факса.
−s <скорость>
Скорость передачи в битах, которая должна использоваться соединением машина−модем. Скорее всего вы захотите установить её с помощью
опции "speed <nnnn>" в файле "callback.config".
−S
Использовать для обратного звонка ту линию, откуда был запущен callback. callback может использовать несколько модемных линий, а с помощью этой опции вы
можете заставить его использовать тот модем, с которого поступил звонок.
ФАЙЛ КОНФИГУРАЦИИ
При запуске callback прочитает все свои настройки из файла, который обычно называется
/etc/mgetty/callback.config. Смотри документацию в mgetty.info для уточнения деталей.
ДИАГНОСТИКА
В большинстве случаев callback не выводит каких либо ошибок в консоль, потому что он должен немедленно
отключиться от терминала, в случае если кто−то захочет, чтобы ему перезвонили по модемной линии, с которой поступил звонок. Таким образом, нет сообщений для
вывода…
В результате этого, все ошибки callback журналируются в файл протокола (количество сообщений регулируется опцией
"−x"), в том числе о причинах, по которым вызов не был выполнен или о том, что именно не удалось.
Только два сообщения могут выводиться на стандартный вывод и они самоочевидны: вызов от пользователя, не
являющегося root, и неправильная опция.
ПОДРОБНОСТИ
Как это работает?
Это немного сложнее, из за способа управления init(8) файлом utmp(5). Вы не можете воспользоваться любой
программой, которая запросит у пользователя входное имя и запустит используемую пользователем оболочку ("login shell"), это не сработает (по той же причине
mgetty(8) запускается из /etc/inittab).
mgetty должна запросить у пользователя входное имя. Но я не хочу помещать весь код для дозвона в mgetty, раздувая
её ещё больше.
Способ достичь этого состоит в следующем: callback звонит через модемное устройство. Он должен работать
только с таким модемным устройством, за которым наблюдает mgetty (!). Когда соединение установлено (CONNECT), callback отправляет mgetty сигнал SIGUSR1,
который, в свою очередь, отправит тот же сигнал назад, сообщая "я получил твой сигнал". Тогда callback завершает работу и mgetty подбирает
установленное подключение, запрашивает у пользователя входное имя и выполняет системный вызов fork, запуская /bin/login.
Вывод: callback не будет работать с версиями mgetty до 4 февраля 1996 года (в которых нет поддержки этого сигнала),
и если у вас это не работает, пожалуйста вышлите мне ОБА файла журналов mgetty и callback, в противном случае неисправность очень трудно найти.
НЕИСПРАВНОСТИ
callback содержит экспериментальный код, на данный момент не очень стабильный.
callback callback довольно плохо обрабатывает повторные попытки.
callback должен запускаться с правами root.
Большая часть документации заключается в чтении исходного текста.
СМОТРИ ТАКЖЕ
mgetty(8), ct(1)
АВТОР
callback Copyright (C) 1993−1996 Герт ĸринг (Gert Doering), <gert@greenie.muc.de>.
АВТОРЫ ПЕРЕВОДА
Перевод выполнен на сайте коллективных переводов http://translated.by. Авторы перевода: Олег Безначев aka
saturn721, Владимир Ступин <vladimir@stupin.su>.