Как сделать вход через модем?
Похоже, что вы хотите стать Internet-провайдером, да? Сначала вам необходимо подключить к системе один или несколько модемов, которые могут работать в режиме автоответа. Модем должен держать сигнал наличия несущей, только когда она присутствует. Он должен вешать трубку и переинициализировать, когда сигнал готовности устройства DTE (DTR) меняет состояние из включенного на выключенный. Должно использоваться аппаратное (RTS/CTS) управление потоком или вовсе отсутствовать. Ещё он должен работать на постоянной скорости с портом компьютера, но (что удобно для звонящих) с согласованием скорости передачи с другим модемом.
Для большинства модемов, поддерживающих набор команд Hayes, следующая последовательность команд выполнит эти настройки и сохранит их в энергонезависимой памяти:
AT &C1 &D3 &K3 &Q6 S0=1 &W
Информация о том, как сделать эти настройки без обращения к терминальным программам MS-DOS, содержится в разделе о .
Затем опишите модем в файле /etc/ttys (посмотрите справку по ). В нём перечислены все порты, с которых операционная система ожидает входа пользователей. Добавьте строку, которая выглядит как эта:
ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
В этой строке указано, что ко второму последовательному порту (/dev/ttyd1) подключен модем на скорости 57600 bps без контроля по чётности (std.57600, что берётся из файла /etc/gettytab (посмотрите справку по gettytab(5)). Тип терминала для этого порта определён как dialup. Порт включен (on) и небезопасен (insecure), что означает, что попытки войти в систему пользователем root с этого порта будут отвергнуты. Для портов, обслуживающих входящие звонки, как этот, используйте устройства вида ttydX.
Использование слова dialup в качестве имени терминала является обычной практикой. Многие пользователи включают в свои файлы .profile или .login скрипты для задания реального типа терминала, если начальным является тип dialup. В примере порт описан небезопасным. Чтобы войти пользователем root на этом порту, вам нужно сначала войти обычным пользователем, а затем командой стать пользователем root. Если порт имеет атрибут secure, то пользователь root может входить с этого порта непосредственно.
После редактирования файла /etc/ttys вам нужно послать сигнал потери связи или HUP процессу init(8):
# kill -HUP 1
Это заставит процесс init(8) снова прочитать файл /etc/ttys. Процесс init запустит процессы getty для всех портов с характеристикой on. Вы можете проверить, доступны ли входы с конкретного порта, выполнив команду
% ps -ax | grep '[t]tyd1'
Вы должны увидеть нечто вроде следующего:
747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1