Руководство по <em/kppp/ <author>Бернд Иоханнес Ваеббен, <tt/wuebben@kde.org/ <date>Версия 1.4.8, 11 сентября, 1998 <abstract>Это руководство описывает <em/kppp/ версии 1.4.8 <!-- Table of contents --> <toc> <!-- Begin the document --> <sect>Введение<p> <sect1>О <em/kppp/<p> <p> <tt> ПОЖАЛУЙСТА, НЕ ЗАБУДЬТЕ ПРОЧИТАТЬ ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ! СПАСИБО!</tt><p> <em/kppp/ -- это наборщик номера и графический интерфейс для pppd. Он упрощает создание интерактивных сценариев и настройку сети. Он автоматизирует набор номера вашего провайдера и одновременно позволяет удобно проследить весь процесс подключения. После соединения <em/kppp/ отображает различные показатели работы протокола и ведет учет времени нахождения в сети. Встроенные терминал и генератор сценариев позволяют с легкостью установить соединение. Вам не нужно больше использовать дополнительную программу терминала, такую, например, как seyon или minicom, для тестирования и настройки вашего соединения. <em/Kppp/ включает в себя также учет телефонных затрат, что позволяет вам следить за стоимостью вашего нахождения в сети. <p> Мы надеемся, что вам понравится эта программа. <p> <sect1>Авторы<p> <label id="maintainers"> <em/kppp/ берет свое начало из <em/ezppp 0.6/ написанного Джеем Пайнтером. Тем не менее, практически весь код <em/kppp/ был переписан заново, так что <em/ezppp/ и <em/kppp/ имеют не очень много общего. Список основных авторов: <itemize> <item> <tt>Bernd Johannes Wuebben</tt> <htmlurl url="mailto:wuebben@kde.org" name="wuebben@kde.org"> <item> <tt>Mario Weilguni</tt> <htmlurl url="mailto:mweilguni@sime.com" name="mweilguni@sime.com"> <item> <tt>Harri Porten</tt> <htmlurl url="mailto:porten@kde.org" name="porten@kde.org"> </itemize> Большое спасибо всем кто участвовал в проекте <em/kppp/: <p> <itemize> <item><url url="mailto:jesus.fuentes@etsi.tel.uva.es" name="Jesus Fuentes Saaverdra"> за программирование некоторых параметров и другую работу. <item><url url="mailto:wuebben@eure.de" name="Markus Wuebben"> за диалог запроса для ATI. <item><url url="mailto:peter.silva@videotron.ca" name="Peter Silva"> за всплывающие диалоги и остальной вклад. <item><url url="mailto:MABrown@etcconnect.com" name="Martin A. Brown"> за редактирование части английского текста программы </itemize> Перевод на русский язык <p> <itemize> <item> <htmlurl url="mailto:dim@pharm.sunysb.edu" name="Дмитрий Мозжерин"> -- перевод </itemize> <p> <sect1>Лицензия и гарантия<p> <em/kppp/ опубликован под условиями <ref id="GPL" name="Стандартной публичной лицензии GNU"> (GPL). Мы <ref id=warranty name="не гарантируем">, ничего, даже того, что что эта программа работает. <p> <sect>Установка <p> <p> <tt> ПОЖАЛУЙСТА, НА ЗАБУДЬТЕ ПРОЧИТАТЬ ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ! СПАСИБО! </tt><p> <sect1>Где найти <em/kppp/ <p> <em/kppp/ -- это приложение, написанное для проекта KDE <url url="http://www.kde.org">. Kppp можно найти на <url url="ftp://ftp.kde.org/pub/kde/">, главном ftp-сайте проекта KDE. <sect1>Требования <p> Для того, чтобы успешно скомпилировать <em/kppp/, вам будут нужны последние версии <tt>libkdecore</tt> и <tt>libkdeui</tt>. Все требуемые библиотеки, равно как и сам <em/kppp/ можно найти на <url url="ftp://ftp.kde.org/pub/kde/">. <sect1>Компилирование и установка <p> <p> <tt> ПОЖАЛУЙСТА, НА ЗАБУДЬТЕ ПРОЧИТАТЬ ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ! СПАСИБО! </tt><p> У меня не было возможности проверить работу <em/kppp/ на чем-либо еще кроме Linux, но вы можете использовать pppd под различными операционными платформами, включая, но не ограничиваясь SVR4, Solaris 2, Linux, FreeBSD, NetBSD, SunOS 4, AIX 4, OSF/1, если только pppd установлен под этими системами. <p> Если вы хотите компилировать <em/kppp/ для платформы отличной от Linux, пожалуйста, проверьте первую пару строк в pppstats.cpp и убедитесь, что defines и includes совпадают с вашей системой. Скорее всего, все должно быть в порядке. Пожалуйста, напишите мне о любых необходимых изменениях. <p> Для того, чтобы скомпилировать и установить <em/kppp/ на вашу систему, наберите следующее в базовой директории дистрибутива <em/kppp/: <tscreen><verb> % ./configure % make % make install </verb></tscreen> В результате <em/kppp/ будет установлен с <ref id="setuid"> битом в положении "on". <p> <p> Убедитесь, что файл настройки pppd, который обычно находится в <tt>/etc/ppp/</tt>, существует, но не содержит ничего. pppd требует чтобы этот файл существовал, но для того, чтобы pppd мог загружать настроечные параметры из <em/kppp/, файл настройки pppd должен быть пуст. <p> <bf/Снова:/ Если у вас возникли проблемы -- пожалуйста сообщите их мне. <p> <sect1>Подготовка вашей Linux системы к подсоединению с помощью PPP. <p> <p> <tt> ПОЖАЛУЙСТА, НА ЗАБУДЬТЕ ПРОЧИТАТЬ ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ! СПАСИБО! </tt><p> Для того, чтобы <em/kppp//pppd мог работать, ядро должно быть скомпилировано с поддержкой ppp. Если в вашем случае это не так -- возьмите последнюю версию <url url="ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/" name=pppd> с какого-нибудь популярного архива Linux и перекомпилируйте ядро с поддержкой ppp. Не пугайтесь -- это звучит страшнее, чем это есть на самом деле. Не забудьте установить pppd после этого. Если вы не уверены, поддерживает ли ваше ядро ppp, наберите <tt>dmesg</tt> в командной строке и посмотрите, есть ли что-нибудь похожее на это:<p> <tscreen><verb> PPP: version 2.3.0 (demand dialling) TCP compression code copyright 1989 Regents of the University of California PPP Dynamic channel allocation code copyright 1995 Caldera, Inc. PPP line discipline registered </verb></tscreen> <p>Изменения в поддрежке PPP в ядрах Linux версий 1.2.x до 2.0.x заставили написать новый демон pppd. В большинстве дистрибутивов демон pppd может быть найден в <tt>/usr/sbin</tt>. Для версий ядра 1.2.x, правильная версия демона pppd -- 2.1; для версий ядра 2.0.x, правильная версия -- 2.2. или более новая. Если вы не знаете какая версия демона установлена на вашем компьютере -- наберите:<p> <tscreen><verb> % pppd --version </verb></tscreen> <p>На самом деле ни один pppd демон не имеет параметра --version, но указание этого параметра вызывает сообщение об ошибке, что указан неизвестный параметр. Это сообщение также включает номер версии демона pppd. <p> <sect1>Дальнейшая информация о ppp/pppd <p> Следующая web-страница содержит дальнейшую информацию про протокол ppp и про pppd <url url="http://www.thoughtport.com:8080/PPP/index.html"> <p> <sect>Настройка <em/kppp/ <p> <p> <tt> ПОЖАЛУЙСТА, НА ЗАБУДЬТЕ ПРОЧИТАТЬ ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ! СПАСИБО! </tt><p> Для того, чтобы настроить <em/kppp/, запустите <em/kppp/ и щелкните по клавише <tt>Настройка</tt> в главном окне <em/kppp/. Появится новое диалоговое окно. <sect1>Соединения<p> Это диалоговое окно будет показывать созданные вами аккаунты. Вы должные открыть по меньшей мере один аккаунт. Кнопка ``Сброс суммы'' обнулит набежавшую с предыдущего обнуления сумму в выбранном счете. Как правило, вы должны нажимать эту клавишу один раз в месяц, после того как вы уплатили ваш телефонный счет. <sect1>Устройство<p> <descrip> <tag/Устройство модема/ Выбирает правильное устройство в аппаратных средствах вашего компьютера. <tag/Управление потоком/ Выбирает между контролированием потока Аппаратными средствами (CRTSCTS), Программными средствами (XON/XOFF) или отменяет контроль потока. Рекомендуемая установка -- контролирование потока аппаратными средствами. <tag/Завершение строки/ Выберите используемую вашим модемом последовательность знаков ``Ввод''для терминирования строки. Большинство модемов использует ``CR/LF''. Тем не менее, некоторые модемы требуют другую последовательность. Если у вас возникает проблема во время исполнения сценария -- поиграйте с этим параметром. <tag/Скорость соединения/ Выберите из списка скорость поддерживаемую вашим последовательным портом. <label id="lock files"> <tag/Каталог для файла блокировки (lock file)/ Введите имя пути к файлу блокировки вашего модема. Под Linux, как правило, это /var/lock и вам не нужно изменять ничего в этом месте. Изменяйте только, если вы полностью отдаете отчет в том, что вы делаете. Программы как, например, mgetty зависят от существования таких lock файлов и <em/kppp/ не сможет работать с mgetty если lock файл не установлен правильно. Если вы оставите это поле пустым, <em/kppp/ не будет пытаться создать lock файл. Убедитесь, что вы не используете параметр "lock" для pppd, если вы ввели lock файл модема и, таким образом, хотите, чтобы <em/kppp/ "запер" модем, так как параметр "lock" в pppd будет заставлять pppd пытаться заблокировать устройство модем. Тем не менее, так как <em/kppp/ уже заблокировало это устройство, pppd не сможет загрузиться и <em/kppp/ выдаст сообщение: "pppd died unexpectedly" ("pppd неожиданно погиб"). Убедитесь, что у вас есть доступ к записи для файла блокировки в заданный каталог, иначе <em/kppp/ выдаст сообщение об ошибке: "Извините, невозможно создать файл блокировки модема". <tag/Таймаут модема/ Это время в секундах, в течение которого <em/kppp/ ждет сообщение ``CONNECT'' от вашего модема после набора номера для соединения с другим модемом (как правило -- с модемом вашего провайдера). Я рекомендую установить что-то около 30 секунд. </descrip> <sect1>Модем<p> <descrip> <tag/Команды модема/ Это поле выведет диалоговое окно, которое вы должны заполнить командами модема, соответствующими вашему модемному устройству. Если вы используете модем совместимый с Hayes, с очень большой долей вероятности вам не придется изменять установки, заданные по умолчанию. Тем не менее, я советую почитать о командах для Hayes, которые приведены в Приложении к данной документации. Информация, которая там приведена, также поможет вам в случае, если вы испытываете трудности с настройкой стабильного соединения с модемами вашего провайдера. Две установки -- "Pre-Init Delay" ("Задержка перед инициализацией") и "Post-Init Delay" ("Задержка после инициализации") -- могут представлять особый интерес, если вы сталкиваетесь с любым зависанием модема. Эти установки будут вводить паузу перед и после посылания инициализирующей строки. "Pre-Init Delay" также будет посылать CR сигнал, если только интервал задержки не равен 0. <tag/Опрос модема/ При нажатии кнопки <tt>Опрос модема</tt> <em/kppp/ запросит модем о его параметрах. В случае успеха, ответ, полученный от модема, отобразится в диалоговом окне. В зависимости от типа вашего модема, эта информация может оказаться либо полезной, либо нет. <tag/Терминал/ Нажатие кнопки <tt>Терминал</tt> вызовет окно мини-терминала. Вы можете использовать этот терминал для тестирования вашего модема или для экспериментов с протоколом переговора с модемом вашего провайдера, который осуществляет ppp связь. Вам больше не нужно использовать отдельную программу терминала -- такую, например, как minicom или seyon. </descrip> <sect1>PPP<p> <descrip> <tag/Таймаут pppd/ <em/kppp/ будет выжидать установленный промежуток времени после выполнения сценария и запуска pppd для того, чтобы у pppd было достаточно времени установить корректный ppp контакт до того момента, когда pppd откажется от установления контакта и будет убит. <tag/Автодозвон при разъединении/ Автоматический набор номера после разрыва связи. При выборе этого параметра <em/kppp/ будет пытаться восстановить соединение, если последнее было неожиданно прервано. <tag/Показывать время в строке заголовка/ Этот параметр указывает <em/kppp/ выставлять продолжительность соединения в окне, которое отображает состояние <em/kppp/ в течение соединения. <tag/Разъединить при остановке X-сервера/ При включении этого параметра <em/kppp/ последовательно прекращает ppp связь, отсоединяет модем и закрывает аккаунт после отключения X-сервера. Это полезно, если вы часто забываете отключить <em/kppp/ при выходе из X-сервера, или, просто не хотите беспокоиться лишний раз о прерывании соединения. Если вы не хотите, чтобы <em/kppp/ отключал модем при выходе из X-сервера, вы должны оставить этот параметр отключенным. Тем не менее, учтите, что если вы ведете отслеживание времени в сети для вашего счета и вы не хотите, чтобы <em/kppp/ прекращал работу модема при выходе из X-сервера, вы получите в результате незакрытый аккаунт в вашем log-файле каждый раз, когда происходит выход из X-сервера и из <em/kppp/. <tag/Свернуть окно при соединении/ Окно <em/kppp/'s будет минимизироваться после установления соединения. Продолжительность соединения будет отображаться на панели задач. <tag/Включить в панель при соединении/ Если этот параметр задействован, то <em/kppp/ будет создавать анимизированную пиктограмму на панели справа. Используйте левую кнопку мыши для восстановления окна <em/kppp/. Правая кнопка мыши будет открывать всплывающее меню, которое предлагает восстановить окно, показать статистику передачи данных или прервать соединение. Этот параметр аннулирует значение параметра <em>Свернуть окно при соединении</em>. </descrip> <p> <sect>Настройка аккаунта<p> <sect1>Настройка дозвона<p> <descrip> <tag/Имя соединения/ Вы должны дать имя каждому сформированному аккаунту. <tag/Телефонный Номер/ Укажите номер телефона для набора. Вы можете использовать такие знаки как ``-'', чтобы сделать номера телефонов более читаемыми. Если вы задаете несколько номеров (разделяя их двоеточием), то <em/kppp/ будет пытаться набирать эти номера в циклическом порядке, каждый раз, когда он получает сигнал "занято". Пример: "1111111:2222222:3333333" <tag/Авторизация/ Опознавание. Выберите правильный метод авторизации аккаунта, который <em/kppp/ должен использовать при установлении контакта с сервером. Узнайте у вашего провайдера какой метод он использует -- PAP, CHAP, сценарий или терминальное окно. <tag/Сохранить пароль/ Выбирайте эту опцию, если вы хотите, чтобы <em/kppp/ запоминал ваш пароль для последующих сессий. <tag/Выполнить команду при соединении/ <em/kppp/ будет пытаться исполнить команду, которую вы укажете в этой строке, как только ppp соединение будет установлено. <tag/Выполнить команду перед разъединением/ <em/kppp/ будет исполнять эту команду перед разрывом связи. Это может быть полезным для изменения какого-либо маршрута или адреса перед завершением работы в сети. <tag/Выполнить команду после разъединения/ Аналогична с предыдущим параметром. <label id="pppd arguments"><tag/Редактировать аргументы pppd/ Покажет диалоговое окно для ввода аргументов pppd. Вы можете использовать это окно для ввода параметров, чтобы <em/kppp/ передал их pppd во время запуска последнего. Смотрите страницу man pppd для ознакомления со списком возможных аргументов. За исключением только, если вы точно знаете, что делаете, лучше воздержаться от ввода аргументов pppd. </descrip> <sect1>IP<p> <descrip> <tag/Динамический IP адрес/ Отметьте этот параметр, если ваш провайдер использует присваивание динамических IP адресов. Это означает, что, как правило, ваш IP изменяется каждый раз, когда вы устанавливаете новое соединение. <tag/Статический IP Address/ Отметьте этот параметр, если ваш провайдер дал вам статический IP адрес. В этом случае, вам придется также ввести этот адрес и Subnet Mask, если это необходимо. Спросите вашего провайдера если вы не уверены. <label id="Auto-configure hostname"> <tag/Автоконфигурация DNS имени по этому IP/ Отметьте эту установку, если вы хотите, чтобы <em/kppp/ установил DNS-имя и домен для вашей машины после успешной установки ppp связи. Это делается через опрашивание заданного сервера DNS (Domain Name Server) о присвоенном IP при ppp связи. Этот параметр также полезен для тех, кто хочет использовать неподсоединенную постоянно к сети машину для таких протоколов как, например, talk, которые требуют, чтобы DNS-имя вашей машины было идентично тому, которое известно для Интернета. Этот параметр изменяет установку в Секции DNS об Имени домена. Установки, заданные по умолчанию, восстанавливаются когда вы прекращаете ppp связь. Будьте осторожны, когда используете этот параметр: он может оказаться полезен, но также может вызвать большое количество нежелательных эффектов. Поиграйтесь с ним... </descrip> <p> <sect1>DNS<p> <descrip> <tag/Домен/ Укажите имя домена для вашей машины. Как и адреса DNS, оно будет восстановлено на изначально заданное в <tt>/etc/resolv.conf</tt> после разъединения Если это поле оставлено пустым -- никаких изменений в имени домена, хранящегося в in <tt>/etc/resolv.conf</tt> не произойдет. <tag/IP-адрес сервера DNS/ Укажите имена серверов DNS, которые заданы вашим провайдером. Вы должны указать по меньшей мере один адрес DNS для того, чтобы иметь возможность распознавать ориентированные на человеческое восприятие IP адреса, такие, например, как ftp.kde.org. Адреса DNS серверов должны указываться в численной форме, например: 128.231.231.233. Эти адреса будут добавлены во время исполнения команды в <tt>/etc/resolv.config</tt>. <tag/Запретить существующие сервера DNS на время соединения/ Применяйте этот параметр, если вы хотите, чтобы <em/kppp/ отменил использование уже существующих в <tt>/etc/resolv.conf</tt> имен серверов во время соединения. </descrip> <p> <sect1>Шлюз (Gateway)<p> <descrip> <tag/Шлюз по умолчанию/ Отметьте этот пункт, если вы хотите, чтобы pppd использовал шлюз заданный на вашей машине по умолчанию. <tag/Статический шлюз/ Отметьте этот пункт, если вы хотите напрямую указать шлюз, который будет задействован. </descrip> <p> <sect1>Сценарий (Login script)<p> <descrip> <tag/Редактировать сценарий/ Используйте это диалоговое окно, если вы должны написать сценарий для установления соединения с вашим провайдером. Используйте мини-терминал и информацию, полученную от вашего провайдера для того, чтобы понять, какая последовательность действий должна быть выполнена. <p> <itemize> <item>Expect: <em/kppp/ будет ждать, пока не получит заданную вами строку. <item>Send: <em/kppp/ пошлет заданную строку. <item>Scan: <em/kppp/ будет сканировать входящий поток знаков на наличие указанной строки и сохранит во внутреннем буфере любой знак, который появится в следующей строке после заданной. Пробелы расположенные до или после будут сняты. <item>Save: сохранит просканированную до этого строку в специальном регистре. На данный момент задействован только регистр пароля -- 'password'. <item>Pause: пауза в течение заданного времени (в секундах). <item>Hangup: <em/kppp/ пошлет на модем команду разъединения <item>Answer: <em/kppp/ переведет модем в режим ответа <item>Timeout: динамически, во время исполнения сценария, заменит заданное по умолчанию время ожидания (таймаут) на указанный в секундах промежуток времени. Вы можете изменить таймаут несколько раз в течение выполнения сценария, если необходимо. <item>Prompt: <em/kppp/ предложит пользователю ввести строку, показывая заданную строку как подсказку. Пользователь будет видеть набираемую строку. Если заданная строка содержит последовательность знаков ##, эта последовательность будет заменена текущим содержимым внутреннего буфера сканирования. <item>PWPrompt: <em/kppp/ предложит пользователю ввести строку, показывая заданную строку как подсказку. Звезда (*) будет отображаться вместо каждого введенного знака. <item>ID: Идентификация. Если поле идентификации (ID) в главном диалоге заполнено, то <em/kppp/ пошлет указанное в нем ID. Если поле ID не заполнено, <em/kppp/ предложит пользователю ввести идентификацию, показывая заданную строку как подсказку. Пользователь будет видеть набираемую строку. При вторичном проходе, таком как в петле при второй итерации, приглашение будет показано с выводом на экран заданной строки как подсказки. <item>Password: Если поле пароля в главном диалоговом окне заполнено, то <em/kppp/ пошлет этот пароль. Если поле пароля не заполнено, то <em/kppp/ предложит пользователю ввести пароль, показывая заданную строку как подсказку. Звезда (*) будет отображаться вместо каждого введенного знака. При вторичном проходе, таком как в петле при второй итерации, приглашение будет показано с выводом на экран заданной строки как подсказки. <item>LoopStart(НачалоПетли) : <em/kppp/ будет ждать получения заданной строки. Он сохранит эту строку для использования командой LoopEnd (КонецПетли). <item>LoopEnd(КонецПетли) : <em/kppp/ будет ждать получения указанной строки для выхода из петли. Если строка, заданная в соответствующей команде начала петли (LoopStart) будет получена первой, это приведет к перескакиванию на строку расположенную после LoopStart, позволяя таким образом повторение спаренных диалогов "имени пользователя"/"пароля" (username/password). </itemize> </descrip> <sect2>Примеры сценариев<p> Вот простой сценарий, который я использовал для соединения с моим провайдером: <tscreen><verb> Expect ID: # ожидать последовательности знаков 'ID': Send myid # вы должны заменить myid вашим id Expect word: # ожидать строки пароля 'password' Send 4u3fjkl # послать мой пароль '4u3fjkl' Expect granted # мой провайдер посылает строку 'Permission granted' после удачного соединения. Send ppp # эта команда начинает для меня соединение по протоколу ppp со стороны провайдера. </verb></tscreen> Следующий сценарий написан для того же самого провайдера с приглашением ввести ID и пароль: этот сценарий будет запрашивать ввод ID и пароля каждый раз, вне зависимости от того, введены или нет данные в поля пароля и ID в главном диалоговом окне <em/kppp/. Этот сценарий также иллюстрирует использование структуры НачалоПетли/КонецПетли. Если что-то не так во время процедуры соединения, например, если я неправильно ввел пароль, мой провайдер выведет сообщение об ошибке и заново начнет петлю идентификация/пароль, снова посылая строку "ID:". Если строка "ID" перехвачена до того, как обработано ключевое слово КонцаПетли (LoopEnd), <em/kppp/ начнет исполнение сценария снова, после ключевого слова НачалаПетли (LoopStart). <tscreen><verb> LoopStart ID: # Ожидает строку ID: Prompt Enter ID: # Просит меня ввести ID и посылает его. Expect word: # Ожидает строку 'password' PWPrompt Enter Password: # Просит меня ввести пароль и посылает его. LoopEnd granted # Мой провайдер посылает 'Permission granted' в случае удачного подсоединения. Send ppp # Запускает ppp протокол для меня </verb></tscreen> Следующий сценарий я действительно использую для подсоединения к моему провайдеру. Этот сценарий будет запрашивать ID и пароль только, если я не ввел данные в соответствующие поля главного диалогового окна <em/kppp/. <tscreen><verb> LoopStart ID: # Ожидает строку ID: ID Enter ID: # Просит меня ввести ID и посылает его. Expect word: # Ожидает строку 'password' Password Enter Password # Просит ввести пароль и посылает его. LoopEnd granted # Мой провайдер посылает 'Permission granted' в случае удачного подсоединения. Send ppp # Запускает ppp протокол для меня # со стороны провайдер </verb></tscreen> Следующий сценарий я использую для подсоединения к провайдеру, который использует специальное удостоверение личности через вызов/ответ. Как правило, вы получаете от такого провайдера специальный token (smart card с дисплеем и калькулятором, похожим на номерную часть клавиатуры). Вы должны знать пароль, чтобы использовать token. После соединения с вашим провайдером, он показывает ваш вызов. Вы должны напечатать вызов в вашем токене и получить динамический пароль как ответ. После этого вы должны ввести пароль. <tscreen><verb> LoopStart ID: # Ожидает строки ID: ID Enter ID: # Просит ввести мой ID и, затем, посылает его. Scan Challenge: # Сканирует Вызов ('Challenge') и сохраняет все за ним вплоть до следующей новой строки. Expect PassWord: # Ожидает строки 'password' Prompt Your token is ## - Enter Password # Просит меня ввести пароль и посылает его. LoopEnd granted # Мой провайдер посылает 'Permission granted' в случае успешного подсоединения. Send ppp # Запускает ppp соединение для меня со стороны провайдера </verb></tscreen> Следующая запись показывает процедуру подсоединения к вымышленному провайдеру, который предоставляет новый пароль для каждого подсоединения. Новый пароль должен быть подтвержден и записан для следующей сессии. <tscreen><verb> Ламмерлендовский Университет Login:мой идентификатор Password: The password for your next session is: YLeLfkZb Please record and enter it for verification. (Ваш пароль для следующей сессии - YLeLfkZb Пожалуйста, запишите его и введите для опознавания) Verification:YLeLfkZb 1 = telnet 2 = SLIP 3 = PPP Your choice: (Ваш выбор:) </verb></tscreen> <em/kppp/ может быть использован для выполнения этой громоздкой задачи за вас (исключая также опасность потерять маленький клочок бумаги с написанным на нем паролем). Ключевая часть сценария -- комбинация ключевых слов Scan/Save: <tscreen><verb> Expect Login: # ожидает строку 'Login:' ID # посылает ID Expect Password: # ожидает строку 'Password' Password # посылает пароль Scan is: # ожидает строку '... next session is:' и # сканирует новый пароль посланный провай деру Save password # сохраняет новый пароль для следующего подсоединения Expect Verification: # ожидает строку 'Verification:' Password # посылает новый пароль Expect choice: # ожидает приглашения, которое позволяет вам выбрать # между тремя возможностями (telnet, SLIP, PPP) Send 3 # выбирает возможность 3, i.e. PPP </verb></tscreen> <sect1>Учет<p> <descrip> <tag/Настройка функций учета/ Используйте кнопку ``Разрешить учет'' для включения/отключения ведения статистики стоимости телефонного соединения. Выберите правила, которые соответствуют вашему региону. Если вы не можете найти правила для вашего региона, вы можете ввести их сами с помощью прилагаемого шаблона <tt>TEMPLATE</tt> in <tt>&dollar{KDEDIR}/share/doc/HTML/en/<em/kppp//</tt>. Не бойтесь делать это. Процедура достаточно проста. На забудьте послать мне созданные вами правила. Вы можете проверить верность их синтаксиса используя <em/kppp/ с параметром -r rule_file в командной строке. Вы должны скопировать правила в <tt>&dollar{KDEDIR}/share/apps/kppp/Rules</tt> или в <tt>&dollar{HOME}/.kde/share/apps/kppp/Rules</tt> для того, чтобы получить возможность выбрать их в диалоговом окне. </descrip> <p> <sect1>Учет объема<p> <label id="volaccounting"> <sect2>Что такое Учет объема?<p> В основном, это означает подсчет количества бит переданных в Интернет или из интернета. <em/kppp/ может подсчитывать входящие байты, выходящие байты, или те и другие вместе. Это зависит от того, что вы хотите (или должны) использовать. <sect2>Почему я должен использовать Учет объема?<p> Потому, что многие провайдеры сбирают плату с их пользователей в зависимости от переданного количества байт. Или, очень часто, провайдеры дают вам определенный лимит передачи, после которого они начинают брать деньги за каждый мегабайт свыше этого лимита. <em/kppp/ показывает вам ваш текущий объем переданных байт, что может облегчить вам задачу свести оплату за Интернет к минимуму. Конечно, если у вас нет лимита по объему, но вам любопытно знать этот показатель -- вы можете его также использовать... <sect2>Какой тип учета объема я должен использовать?<p> Это зависит от вашего провайдера. Многие из них учитывают только количество мегабайт взятое вами из Интернета и не интересуются количеством посланного. В этом случае вам лучше выбрать "Bytes in". Если вы должны платить за передачу в оба направления, вы должны выбрать "Bytes in and out". "Bytes out" практического значения, обычно, не имеют и здесь просто для полноты картины. <sect2>Недостатки<p> К сожалению, у Учета объема есть свои недостатки в отслеживании потока байт. <em/kppp/ будет только учитывать количество переданных байт без учета их происхождения. Многие провайдеры устанавливают их лимит только на доступ к Интернету, а не к их собственной сети. Так что, если вы немного путешествуете в Интернете, а в основном черпаете информацию из прокси-кэша вашего провайдера, вы, в действительности, не будете сильно исчерпывать свой лимит, так как прокси находится внутри сети провайдера. Тем не менее, <em/kppp/ не будет знать, что эти пакеты пришли от прокси и будет их учитывать. Так что, если вы интенсивно используете прокси, или ваш провайдер использует кэширующий сервер новостей (как, например, nntpcached), объемы учтенные <em/kppp/ могут быть завышены. <sect>Маленькие хитрости и трюки для модема<p> Этот раздел должен помочь новичку вступить на тропу (не столь уж) заумного искусства доводки модема. Все используемые здесь команды относятся к стандарту Hayes AT, но не все модемы были созданы равными, так что в вашем случае результаты могут не совсем соответствовать написанному. <sect1>Сеансы с модемом<p> Эти сеансы позволяют вам напрямую взаимодействовать с вашим модемом. Вы печатаете команды, а модем реагирует. Для того чтобы начать сеанс с модемом при отсутствии активного соединения, зайдите в диалоговое окно Настройка/Модем/Терминал. При этом будет открыто окно для интерактивной настройки вашего модема. Попытайтесь ввести <bf>ATZ</bf> (эта команда перезагружает модем). Вы должны получить в ответ <bf>OK</bf>. Используйте Файл/Закрыть для завершения сессии. <sect1>Профили модема<p> Одна из причин, почему вы можете захотеть напрямую посылать команды на модем, это, если вы имеете набор настроек модема, которые вы хотите сохранить, чтобы не вводить их каждый раз при новом соединении. Это можно удобно сделать используя профили модема. Модемы могут иметь несколько сохраняемых профилей, пронумерованных 0,1,... <bf>AT&V</bf> может быть использована для просмотра их всех. Профиль, используемый по умолчанию, обычно 0 (он может быть изменен через <bf>AT&Y</bf>.) Профиль, который используется в данный момент, называется "активным" профилем. <P> Когда вы изменяете настройки, активный профиль модифицируется. Команда <bf>ATZ</bf> говорит модему загрузить профиль используемый по умолчанию и стереть все изменения, которые вы внесли. Для того, чтобы сохранить изменения, загрузите профиль, который вы хотите изменить через команду <bf>ATZ</bf><em>n</em> (где <em>n</em> соответствует номеру профиля). Сделайте необходимые изменения и, затем, сохраните их, набрав <bf>AT&W<em>n</em></bf>. Для того, чтобы <em/kppp/ мог использовать тот профиль, который вы хотите, измените инициализирующую строку (Настройка/Модем/Команды модема/Строка инициализации.) Например, <bf>ATZ1</bf> укажет <em/kppp/ перезагрузить модем и использовать при этом профиль #1. <p> Если вы хотите восстановить настройку модема, которая существовала до внесения вами изменений, используйте команду <bf>AT&F&W</bf> для того, чтобы вернуть профилю значения, соответствующие заводским данным по умолчанию, и сохранить эти значения, как профиль по умолчанию. <p> В следущей секции приведены примеры изменения профилей. <sect1>Как заставить модем разъединиться (hang up)?<p> Иногда вы можете обнаружить, что <em/kppp/ не может отсоединить модем от линии. Причиной этого может быть несоответствие настроек <em/kppp/ и модема. Стандартный модем имеет два метода для отсоединения: Командный, и DTR. Командный метод использует посылку escape-последовательности на модем, которая переводит последний в командный режим, за этим следует команда отсоединения (ATH). <P> Вне <em/kppp/, когда вы производите настройку пакета pppd вручную, часто полезно использовать командный метод, так как он позволяет выйти из сессии терминала и, затем начать pppd и не отсоединить при этом модем. В большинстве других случаев, метод DTR предпочтительнее, так как он проще. <sect2>DTR (AT&Dn) метод<p> DTR метод будет отсоединять модем всякий раз, когда <em/kppp/ перестает использовать модем. Если вы находитесь в сессии с модемом и опрашиваете состояние модема командой AT&V, и, среди указанных настроек в активном профиле есть &D0 -- тогда метод DTR отключен. Для того, чтобы задействовать этот метод используйте Настройка/Модем/Терминал, чтобы начать сессию с модемом. Затем: <tscreen><verb> ATZ # перезагружает профиль, заданный по умолчанию AT&D2 # устанавливает отключение на событие окончания DTR. AT&W # добавляет изменение в заданный по умолчанию профиль </verb></tscreen> <sect3>Как работает DTR метод?<P> Всякий раз, когда Data Terminal Ready (DTR) линия в последовательном соединении между вашим компьютером и модемом получает высокий электрический сигнал, модем разрывает соединения с удаленным модемом. Когда <em/kppp/ открывает последовательный порт, сигнал в линии DTR понижается. На внешнем модеме вы можете видеть, как при этом загорается свет у DTR (or TR). Если TR светодиод гаснет (оттого, что <em/kppp/ закрыл последовательный порт, или случилось что похуже) модем отсоединяется. <sect2>Командный метод<p> Другой путь заставить модем отсоединиться (используемый, когда AT&Dn и n не равен 2) -- это заставить модем принять команду во время ведения сессии с удаленным компьютером. Для того, чтобы отключиться правильным образом, войдите в сессию с модемом и установите the guard time на короткий интервал, как здесь: <tscreen><verb> ATZ ATS12=5 AT&W </verb></tscreen> Затем используйте Settings/More/Modem Commands/Guard Time slider чтобы приравнять регистр (S12) значению (5). Теперь модем должен отсоединяться правильно. <sect3>Как работает командный метод?<P> Когда ваш модем соединен с удаленным модемом, он находится в "соединенном" режиме. При этом он посылает все получаемые им знаки на удаленный модем не пытаясь их интерпретировать. Для того, чтобы заставить модем принимать знаки как команды, нужно перевести модем в командный режим. Это делается посредством escape-кода. <P> Escape код определяется, как три интервала времени, чья длина задана в S12 (в пятидесятых долях секунды.) <itemize> <item>Тишина (должна быть более чем S12/50 секунд) <item>Escape знак (определяемый в регистре S2, по умолчанию это "+") повторенный три раза (менее чем S12/50 секунд между каждым из них) <item>Тишина (должна быть более чем S12/50 секунд) </itemize> <P> Как только модем переходит в командный режим, вы посылаете на него команды. Для того, чтобы отсоединиться, посылается команда ATH. Escape коды и строка отсоединения, используемые <em/kppp/, показаны в диалоговых окнах в Настройка/Модем/Команды модема. Они должны соответствовать тем, которые заданы в вашем модеме. <sect1>Ускорение набора по тону<p> Если вы хотите применять тоновый набор номера, продолжительность времени, которые занимает набор может быть изменена, если вы используете регистр S11. Он задает протяженность (в сотых секунды) времени в течение которого пересылается каждый тон во время набора. По умолчанию обычно задается 95 (почти секунда). Как быстро вы можете набирать в действительности -- зависит от оборудования вашей телефонной компании. Минимальный промежуток равен 50, что почти в два раза быстрее, и, такая скорость обычно работает. <tscreen><verb> ATZ # перегрузите на установки заданные по умолчанию ATS11=50 # самый быстрый набор номера из возможных, используйте большее значение, если набор не срабатывает. AT&W # Запишите установку в заданные по умолчанию параметры </verb></tscreen> <p> <sect>PAP и CHAP<p> Начиная с версии 0.9.1, <em/kppp/ поддерживает напрямую наиболее распространенную форму авторизации в PAP. Раздел 'PAP и CHAP c <em/kppp/' опишет в целом, как заставить PAP и CHAP работать с <em/kppp/, в то время как раздел 'PAP c <em/kppp/' опишет более детально как использовать преимущество от встроенной в <em/kppp/ поддержки наиболее распространенной версии PAP, которая широко используется коммерческими провайдерами. <sect1>PAP с <em/kppp/<p> Существует два различных пути использования PAP: <sect2> Авторизация со стороны клиента<p> Этот вариант используется многими коммерческими провайдерами. В общих чертах, он означает, что вы (или ваш компьютер) должен зарегистрироваться на PPP сервере провайдера услуг Интернета. PPP сервер не должен при этом регистрироваться на вашем компьютере, но, обычно, это и не нужно, так как вы знаете к какому компьютеру вы подсоединяетесь (так как вы сами устанавливаете соединение). Так что это не является большим риском. <em/kppp/ напрямую поддерживает этот вариант. Ниже приведены инструкции по этому методу. <p>Если ваш провайдер просто дает вам имя пользователя и пароль и говорит вам использовать авторизацию PAP -- вы должны использовать этот вариант. <sect2> Двухсторонняя авторизация<p> Тоже самое, что описанное выше, но ваш компьютер требует авторизации со стороны PPP сервера вашего провайдера. Для того, чтобы установить соединение, вы должны выбрать метод авторизации <it>основанный на сценарии</it> а не на <it>PAP</it>, и вы должны вручную отредактировать файл <tt>/etc/ppp/pap-secrets</tt>. Хоть <em/kppp/ и не имеет встроенной поддержки для этого варианта, тем не менее, установить соединение используя этот вариант PAP и <em/kppp/ -- достаточно просто. Детали описаны в предыдущем разделе 'Использование PAP и CHAP с <em/kppp/'. <sect2>Подготовка <em/kppp/ для PAP<p> <enum> <item> Убедитесь, что <tt>/etc/ppp/options</tt> (и <tt>~/.ppprc</tt>, если у вас есть такой файл) <bf>не</bf> содержат таких аргументов: <itemize> <item>+pap <item>-pap <item>papcrypt <item>+chap <item>+ua <item>remotename </itemize><p> То, что один из этих аргументов уже там находится -- очень маловероятно, но, проверьте, тем неменее, чтобы быть уверенным. <item>Запустите <em/kppp/ <item>Щелкните на <it>Настройка</it> <item>Выберите аккаунт, для которого вы хотите использовать PAP и щелкните на <it>Изменить...</it> <item>Щелкните на раздел <it>Дозвон</it>. <item>Выберите <it>PAP</it> из списка <it>Авторизация</it> <item>Если вы не хотите набирать пароль при каждом соединении, отметьте <it>Сохранить пароль</it>. Ваш пароль будет сохранен. Убедитесь, что никто кроме вас не имеет доступа к вашему аккаунту, иначе кто-то другой будет иметь доступ к вашему паролю. <item>Вот и все. Закройте диалоги, впишите имя пользователя и пароль, которые вы получили от вашего провайдера и звоните. </enum> <sect1>PAP и CHAP с <em/kppp/<label id="PAP"> <p> Следующий вариант основан на электронном письме от <url url="kbrown@pdq.net" name="Keith Brown"> и объясняет, как заставить <em/kppp/ работать с обычными PAP или CHAP аккаунтами. Если ваш провайдер просто дал вам user id и пароль для вашего PAP аккаунта -- скорее всего, вы можете пропустить этот раздел и руководствоваться 'PAP с <em/kppp/'. <p> PAP с первого взгляда выглядит более сложным, чем он есть на самом деле. Сервер (машина к которой вы подсоединяетесь), говорит клиенту (вашей машине) получить авторизацию используя PAP. Клиент (pppd) ищет в определенном файле запись, которая содержит совпадающее имя сервера и имя для соединения и, затем, посылает пароль, который нашел в файле. Вот, в общем, и все! Теперь, как сделать так, чтобы все это произошло. Я подразумеваю наличие pppd версии 2.2.0 и стандартную установку файлов настройки в <tt>/etc/ppp</tt>. <p> Предположим, что у меня есть аккаунт в Интернет в 'glob.net', с именем пользователя 'booger', и паролем 'foobar'. Сначала я должен добавить все это в файл <tt>/etc/ppp/pap-secrets </tt>. Вот правильный формат для этой записи<p> <tscreen><verb> USERNAME SERVERNAME PASSWORD (ИМЯ_ПОЛЬЗОВАТЕЛЯ ИМЯ_СЕРВЕРА ПАРОЛЬ) </verb></tscreen> <p> так что я добавляю следующую строку: <tscreen><verb> booger glob foobar </verb></tscreen> <p> в файл и сохраняю его. Примечание: я могу использовать любое имя для сервера если только я использую то же самое имя в аргументах для pppd, как мы вскоре увидим. Я сократил его до 'glob'. Это имя используется тольк для того, чтобы найти правильный пароль. <p> Теперь я должен настроить мое соединение в <em/kppp/. В целом, это делается так же, как и для любого другого соединения и я не буду здесь углубляться в детали, за исключением того, что вам лучше убедиться, что файл <tt>/etc/ppp/options</tt> -- пуст, и, вы также вряд ли захотите иметь регистрационный сценарий. Теперь: в нижней части диалога настройки есть кнопка аргументов pppd. Она показывает диалог, аналогичный тому, который использовался для создания сценария регистрации. Здесь мы вводим значения, которые будут посланы как аргументы командной строки в pppd и, в случае аргументов с несколькими значениями, мы должны ввести каждое значение как отдельную запись в список соблюдая правильный порядок. <p> Мы здесь можем ввести любые другие аргументы, которые мы хотим иметь первыми. Теперь мы должны добавить аргументы, которые pppd требует для того, чтобы справиться с авторизацией PAP. В этом примере я собираюсь добавить 'user', 'booger', 'remotename', 'glob', именно в этом порядке. Аргумент user говорит pppd имя пользователя, которое нужно найти в файле pap-secrets, и послать на сервер. Remotename используется pppd только для проверки соответствия его и записи в файле the pap-secrets, оно не посылается на сервер, так что, повторяю снова, оно может быть любым, лишь бы только оно соответствовало записи в файле pap-secrets.<p> Это все. Теперь вы должны быть способны настроить ваше собственное соединение с сервером с использованием авторизации PAP. Настройка CHAP не должен сильно отличаться от вышеизложенной. Обратитесь к Руководству Администраторов Сети под Linux, для того, чтобы ознакомиться с форматом файла chap-secrets и используемых для него аргументов pppd. Остальное должно быть просто, но для вашего конкретного случая... ну, вы знаете, что я имею в виду </P> <p> <sect>Вопросы и ответы <sect1>Часто задаваемые вопросы<p><label id="<em/kppp/ FAQ"> <sect2>Я не могу заставить <em/kppp/ работать. <em/kppp/ говорит мне, что pppd умер, или что время для соединения вышло! <p> А вы внимательно прочитали это руководство? Вот, снова, наиболее обычные проблемы. <itemize> <item> Щелкните на кнопку "Детали". <em/kppp/ распечатает вам выборку из из log сообщений PPP (может не работать для не-Linux'овых систем, и, даже, для некоторых дистрибутивов Linux). Эти записи могут помочь вам выследить ошибку. <item> Убедитесь, что ваша копия pppd это не сценарий, а бинарный файл. <item> Убедитесь, что pppd имеет setuid супер-пользователя root. Вы можете установить этот параметр командой <it>chmod u+s pppd</it> зарегистрировавшись как root. <item> Убедитесь, что ваш файл <tt>/etc/ppp/options</tt> существует и, что он не содержит конфликтующих записей. Если вы не уверены -- просто оставьте этот файл пустым. <item> Убедитесь, что вы НЕ используете ключ "lock" как аргумент для pppd (<em/kppp/ сам позаботится о блокировании) <item> Удалите настройку "lock" из ваших файлов <tt>/etc/ppp/options</tt> и <tt>~/.ppprc</tt>! <item> Иногда использование символической ссылки <tt>/dev/modem</tt> может вызвать конфликты. Исключите этот источник проблем используя действительное устройство, то-есть <tt>/dev/cuaX</tt> или <tt>/dev/ttySX</tt>. ПРИМЕЧАНИЕ: COM1 равен ttyS0, COM2 это ttyS1 и так далее. <item> Убедитесь, что вы установили правильные допуск. Если возникают проблемы, сначала попробуйте все настроить зарегистрировавшись как root, и потом, когда все заработает, установите менее опасный допуск, если вы не имеете возможности запускать <em/kppp/ c setuid супер-пользователя root. Правильный путь для этого, будет, возможно, создание группы "modem". <item> Возможно, вы запускаете pppd слишком рано, то-есть до того, как удаленный сервер готов вести переговоры об установлении PPP соединения. Если вы используете сценарий регистрации, вы должны использовать встроенный терминал, для проверки процедуры регистрации. Некоторые провайдеры будут требовать от вас простого "Send" или "Send ppp" для запуска PPP. Некоторые пользователи даже сообщали, что они должны были добавить "Pause 1" или "Pause 2" в их сценарии, для того, чтобы разрешить временные конфликты. </itemize> Если ничто не помогает, вы можете получить отладочную информацию из сообщений вашей системы, используя команду: <tscreen><verb> # tail /var/log/messages </verb></tscreen> <sect2><em/kppp/ говорит ``К сожалению, не получается открыть модем''. <p> Это означает, что <em/kppp/ не имеет допуска к открытию модемного устройства, или, то, что вы выбрали как модемное устройство в разделе диалога Модем на самом деле модемом не является. Прежде всего убедитесь, что вы выбрали правильное устройство модема. Если вы уверены, что оно выбрано правильно, вы должны дать <em/kppp/ правильный уровень допуска для работы с модемом и для изменения файла <tt>/etc/resolv.conf</tt>, если вы хотите, чтобы <em/kppp/ настроил для вас DNS. Если вы можете позволить <em/kppp/ запускаться с setuid root - это должно разрешить все проблемы с доступом, если нет -- вы должны будете разобраться в каком уровне доступа вы нуждаетесь для ваших целей. Для того, чтобы дать для <em/kppp/ допуск setuid root, сделайте следующее: <tscreen><verb> % su root # chown root:root &dollar{KDEDIR}/bin/kppp # chmod +s &dollar{KDEDIR}/bin/kppp # exit </verb></tscreen> <p> <sect2><em/kppp/ говорит, что он не может создать файл блокировки модема.<p> В большинстве случаев это означает, что вы установили <em/kppp/ без SETUID бита в положении "on" в то время как вы, персона, запустившая <em/kppp/, не имеете допуска на внесение изменений в каталоге, где размещается файл блокировки, по умолчанию это <tt>/var/lock</tt>. По крайней мере это так для дистрибутивов RedHat. Проверьте диалог модема для уточнения расположения этого файла. Решить это проблему -- просто. Вы либо запускаете <em/kppp/ SETUID если у вас есть такая возможность, либо создаете группу "modem", которая будет иметь доступ к файлу <tt>/var/lock</tt> file. <p> <label id="setuid"> <sect2>Почему <em/kppp/ устанавливается с SETUID битом в положении "on"? <p> На самом деле в SETUID бите нет нужды, если вы немного знаете об администрировании Unix систем. Просто создайте группу "modem", добавьте туда всех пользователей, которые, по вашему мнению, должны иметь доступ к модему и сделайте устройство модема доступным для чтения/записи этой группой. Также, если вы хотите, чтобы конфигурация DNS работала с <em/kppp/, группа "modem" должна иметь допуск чтение/запись к файлу <tt>/etc/resolv.conf</tt>. То же самое касается <tt>/etc/ppp/pap-secrets</tt> и <tt>/etc/ppp/chap-secrets</tt>, если вы хотите использовать встроенную поддержку PAP или CHAP, соответственно. Пожалуйста, не критикуйте меня за установку <em/kppp/ с setuid битом в положении "on". Я просто не могу больше выносить того количества писем, которое я раньше получал от отчаявшихся пользователей. Tех, кто не мог заставить <em/kppp/ работать, из-за непонимания как устанавливать допуск для устройств и в самой системе Unix. Команда <em/kppp/ за последнее время сделала очень много, чтобы обезопасить setuid для <em/kppp/. Но это ваше дело решать. что и как устанавливать на вашу машину <sect2><em/kppp/ "завис" и ждет: "Ожидание OK" <p> <itemize> <item> А вы не игрались с настройками CR/LF? Попробуйте CR, LF или CR/LF. <item> Просто ваш модем требует некоторого времени для реагирования на его инициализацию. Откройте диалог "Команды Модема" в разделе "Модем" и измените задержки "перед инициализацией" и "после инициализации". Убедитесь, что модем реагирует так, как вы ожидаете, когда вы резко увеличиваете время задержек и затем делаете тонкую подгонку. </itemize> <sect2>Подсоединение происходит без проблем, но я не могу запустить ни одно приложение.<label id="autohostname"<p> Возможно, вы активировали настройку <ref id="Auto-configure hostname" name=" Автоконфигурация DNS имени"> и X-сервер не может подсоединиться к компьютеру с заданным именем. Если вам действительно нужна эта функция (вполне вероятно что не нужна), вы можете сами установить требуемые авторизации. Использование команды <it>xhost +</it> перед установкой соединения должно помочь, но, <bf>имейте в виду</bf>, что это рискованно, так как теперь любой имеет доступ к вашему X-серверу. <p> <sect2><em/kppp/ выдает сообщение об успешном соединении, но Netscape говорит "The server does not have a DNS entry" (На сервере не задан DNS)<p> Попробуйте использовать ping на известном вам IP адресе, т.е. <tt>ping </tt>. Если ping сработал, значит вы должны <itemize> <item> убедиться, что вы задали для <em/kppp/ хотя бы один DNS адрес <item> проверить содержимое <tt>/etc/host.conf</tt>. Там должны быть строка содержащая что-то типа: <tt>order hosts, bind</tt>. Ключевое слово <tt>bind</tt> советует библиотеке resolver включать запрос имени сервера при выполнении поиска адреса. </itemize> <p> <sect2>Как заставить <em/kppp/ посылать \n или \r? <p> Просто пошлите пустую строку, как, например, в данном сценарии: <tscreen><verb> Send # посылает пустую строку Expect ID: Send itsme Expect word: Send forgot Expect granted Send ppp </verb></tscreen> <sect2><em/kppp/ жалуется: "Не получается создать файл блокировки (lock file)" <p> Это значит, что у вас нет доступа на создание файла блокировки. Если, например, вы задали '/var/lock/LCK..modem" в разделе диалога "Модем", вы должны иметь доступ к записи в каталоге /var/lock/. Это, конечно не является проблемой, если вы задали setuid доступ для <em/kppp/. Пожалуйста, читайте раздел о <ref id="lock files" name="файлах блокировки">. <p> <sect2>Мой модем делает столько шума при дозвоне!<p> Щелкните "Настройка", "Модем". Вы можете здесь задать три уровня громкости модема -- выключена (off), средняя (medium), высокая (high). Для большинства модемов "средняя" и "высокая" дают одинаковый уровень громкости. Если это не работает, убедитесь, что в "Настройка"/"Модем"/"Команды модема" установлены правильные настройки! <p> <sect2>Я установил громкость модема на "выключена" ("off") и проверил команды модема, но я все равно слышу этот шум при дозвоне! <p> Строка инициализации модема может быть потеряна, если ваш модем не может справиться с той скоростью, с которой он получает команды от <em/kppp/. Увеличьте значение в "Задержка после инициализации" в "Настройка"/"Модем"/"Команды модема"! <p> Щелкните "Настройка", "Модем". Вы можете здесь задать три уровня громкости модема -- выключена (off), средняя (medium), высокая (high). Для большинства модемов "средняя" и "высокая" дают одинаковый уровень громкости. Если это не работает, убедитесь, что в "Настройка"/"Модем"/"Команды модема" установлены правильные настройки! <p> <sect2><em/kppp/ регистрирует необычную скорость модема -- типа 115200, 57600<p> Многие модемы по умолчанию показывают скорость последовательного порта, а не скорость потока информации по телефонным линиям. Вы должны настроить такие модемы на регистрирование действительной скорости линии (добавьте это к строке инициализации или дозвона). Для многих модемов эта команда -- "ATW2". Если вы хотите добавить ее к строке дозвона (обычно, по умолчанию "ATD" (<em>Примечание переводчика:</em> "ATDP" для многих телефонных линий в России)) новая строка дозвона будет "ATW2D" (<em>Примечание переводчика:</em> или "ATW2DP"). <p> <sect2><em/kppp/ показывает "Неизвестная скорость"<p> Новые модемы часто имеют очень сложные сообщения о соединении, типа "CONNECT LAP.M/V42.bis/115000:RX/31200:TX", и <em/kppp/ не может обработать правильно такое сообщение. Включите "Показывать окно протокола" и вы увидите скорость соединения. Я работаю над решением этой проблемы и обработчик сейчас много лучше, хотя все-еще не идеален. <p> <sect2>Медленная скорость соединения<p> Если вы не удовлетворены скоростью соединения, убедитесь, что вы задали скорость соединения ("Настройка"/"Устройство"/"Скорость") на 57600 или выше. Убедитесь, что ваш последовательный порт поддерживает более высокие скорости. Многие i486 системы работают плохо, если вы устанавливаете скорость на 115200. Если у вас установлен процессор 8250 UART, это работать не будет. Если у вас 16550 или 16550А -- все должно работать без проблем. <p> <sect2>Я должен использовать импульсный набор номера вместо тонового (или наоборот)<p> Вам нужно изменить строку дозвона модема. Почти все модемы поддерживают следующие AT-команды: <itemize> <item>ATDT -- устанавливает тоновый набор <item>ATDP -- устанавливает импульсный набор </itemize> <p> <sect2><em/kppp/ ведет себя очень странно<p> Не скомпилировали ли вы его, или требуемые библиотеки, с gcc-2.8? С этой версией gcc что-то не в порядке. Она работает неправильно. <p> <sect2>Как написать файл с правилами обсчета стоимости телефонных звонков?<p> Следуйте образцу файлов правил обсчета, который поставляется вместе с <em/kppp/. Вы должны найти его в <tt>&dollar{KDEDIR}/doc/HTML/kppp</tt>. Используйте ключ командной строки <tt>-r</tt> <em/kppp/ для того, чтобы проверить синтаксис созданного вами файла правил. <p> <sect2>Я написал файл правил обсчета стоимости телефонного звонка для своего региона. Куда я могу его отправить, чтобы другие тоже могли его использовать? <p> Я буду очень рад получить от вас файл с правилами. Я помещу его на моей <em/kppp/ <url url="http://math.cornell.edu/~wuebben/kppp/kppp.html" name="web-странице">. Прежде чем посылать файл с новыми правилами, убедитесь, что на моей <em/kppp/ web-странице такого еще нет. Затем пошлите <url url="mailto:wuebben@math.cornell.edu" name="мне"> ваш файл правил по электронной почте. <p> <sect2>Может ли мой файл с телефонными правилами содержать дробные временные единицы, например, "(0.17, 45.5)"?<p> Да, может. Но лучше не использовать слишком маленькие временные единицы (короче чем десятые секунды), так как это увеличивает загрузку центрального процессора (хотя, я сомневаюсь, что с нынешними процессорами вы это заметите :-) <sect2>В моей стране справляются праздники с нефиксированной датой другие, чем неправославная пасха. <p> В этом случае вам придется написать новый код, который после компиляции позволит учитывать этот праздник. Пожалуйста, посмотрите в ruleset.cpp и руководствуйтесь примером праздника "easter" ("пасха"). Затем пошлите <url url="mailto:wuebben@math.cornell.edu" name="мне"> получившиеся заплатки. <p> <sect>Приложение <p> <sect1>Набор команд для модема Hayes <p> <url url="hayes.html" name="Набор команд для модема Hayes"> может помочь, если вам нужна тонкая настройка команд модема. <p> <sect1>Файлы, относящиеся к <em/kppp/ <p> По умолчанию, <em/kppp/ использует следующие файлы и каталоги. Местоположение некоторых из них может измениться при компиляции. <tscreen><verb> &dollar{KDEDIR}/bin/kppp &dollar{KDEDIR}/share/doc/HTML/.../kppp/* &dollar{KDEDIR}/share/apps/kppp &dollar{KDEDIR}/share/apps/kppp/Rules/*/*.rst &dollar{KDEDIR}/share/apps/kppp/pics/* &dollar{HOMEDIR}/.kde/share/apps/kppp &dollar{HOMEDIR}/.kde/share/apps/kppp/kppp.pid &dollar{HOMEDIR}/.kde/share/apps/kppp/Log/* &dollar{HOMEDIR}/.kde/share/config/kppprc </verb></tscreen> <!-- Mario --> <sect1>Сообщения о проблемах с <em/kppp/<p> Прежде чем сообщать о проблеме, или потенциальной ошибке <ref id="maintainers" name="разработчикам"> <em/kppp/, внимательно прочитайте секцию <ref id="<em/kppp/ FAQ" name="Часто задаваемые вопросы">. Если это не помогло вам в решении проблемы, вы должны включить следующую информацию в ваше сообщение: <itemize> <item>Версию <em/kppp/, которую вы используете. <it>kppp -v</it> покажет вам номер версии. <item>Версию pppd, которую вы используете. <it>/usr/sbin/pppd -h</it> покажет вам ее номер. <item>Какую операционную систему вы используете. <it>uname -a</it> выдаст эту информацию для большинства систем UNIX. <item>Если <em/kppp/ сообщает "pppd died unexpectedly" ("произошло неожиданное уничтожение pppd), добавьте опцию <it>debug</it> к <ref id="pppd arguments" name="аргументам pppd">. Произведите дозвон снова для воспроизведения ошибки. <p> Теперь конец файла <tt>/var/log/messages</tt> будет содержать большое количество отладочной информации (вообще-то это зависит от вашей системы и настроек, но для стандартно установленной системы Linux -- этот файл. Конечно, вы должны иметь допуск суперюзера root, чтобы прочитать этот файл). <bf>Не посылайте нам весь файл</bf>. Он обычно занимает несколько тысяч строк и у нас нет ни времени, ни желания весь его исследовать. Посылайте нам только последние линии, которые содержат <it>pppd</it>. Проверьте, чтобы этот файл <bf>не</bf> содержал секретной информации, такой как пароли или имена пользователей. Замените такую информацию на что-то типа "myusername" или "mypassword" </itemize> <p> <sect>Стандартная публичная лицензия GNU<p> <label id="GPL"> <verb> Это неофициальный русский перевод Стандартной Публичной Лицензии GNU. Он не был опубликован Фондом Свободного ПО и не устанавливает законные условия распространения ПО, использующего GNU GPL, что делает только оригинальный английский текст GNU GPL. Однако, мы надеемся, что этот перевод поможет людям, говорящим на русском языке, лучше понять GNU GPL. This is an unofficial translation of the GNU General Public License into Russian. It was not published by the Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU GPL - only the original English text of the GNU GPL does that. However, we hope that this translation will help Russian speakers understand the GNU GPL better. СТАНДАРТНАЯ ПУБЛИЧНАЯ ЛИЦЕНЗИЯ GNU Версия 2 (июнь 1991 г.) Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Данный лицензионный документ разрешается копировать и распространять его точные копии. Вносить какие-либо изменения в текст данного документа запрещается. Вводная часть Лицензионные соглашения на пользование большинством программных продуктов составлены так, чтобы исключить возможность совместного пользования ими или их изменения. Стандартная публичная лицензия GNU, напротив, гарантирует вам возможность свободно совместно использовать и свободно изменять свободно распространяемые программные продукты - то есть обеспечивает всем пользователям неограниченный доступ к программным продуктам. Действие данной стандартной публичной лицензии распространяется на большую часть программных продуктов, выпущенных "Free Software Foundation" и на любые другие программы, авторы которых позволяют использовать их таким образом. (На некоторые другие разработки "Free Software Foundation" распространяется действие стандартной публичной лицензии библиотеки GNU.) Вы можете использовать эту лицензию и применительно к разработанным вами программным продуктам. Говоря о свободной распространяемости программных продуктах, мы имеем в виду отсутствие ограничений на распространение, а не бесплатность распространения. Наши стандартные публичные лицензии составлены с тем расчетом, чтобы обеспечить пользователю возможность свободно распространять копии свободно распространяемых программных продуктов (и при желании взимать плату за эту услугу); получение, если он того захочет, исходной программы; возможность вносить изменения в программные продукты или использовать их фрагменты в новых свободно распространяемых программах, и довести до сведения пользователя, что он все это может делать. Чтобы защитить Ваши права на это, мы вводим ряд ограничений, исключающих какую бы то ни было возможность отказать Вам в Ваших правах или требовать от Вас отказаться от этих прав. Эти ограничения налагают на Вас определенную ответственность в случае, если Вы распространяете копии программного продукта или видоизменяете (модифицируете) его. В частности, распространяя копии подобной программы, бесплатно или за плату, Вы должны передать новому обладателю все права, которыми пользуетесь. Вам также следует позаботится, чтобы он получил исходные коды программы или имел возможность при желании получить их, а также ознакомить нового обладателя с условиями данного лицензионного соглашения, чтобы он знал свои права. Для защиты ваших прав мы: (1) оставляем за собой авторские права на программный продукт и (2) прилагаем к нему данное лицензионное соглашение, официально разрешающее Вам копировать, распространять и\или модифицировать этот программный продукт. Кроме того, для безопасности все разработчиков таких программных продуктов, мы доводим до всеобщего сведения, что гарантий на эти программные продукты не существует. Если кто-либо вносит изменения в программный продукт и распространяет его в измененном виде, он должен, чтобы возможные возникшие в связи с этим проблемы не отразились на репутации авторов исходного продукта, сообщать новым обладателям, что они получают не оригинал. Основная угроза для всех свободно распространяемых программных продуктов - патентное законодательство. Редистрибуторы свободно распространяемого программного продукта могут частным порядком получить патентную лицензию, превратив тем самым этот программный продукт в свою собственность. Во избежание возможных юридических противоречий мы заявляем, что любой такой патент должен быть лицензирован для всеобщего свободного использования или не лицензирован вообще. Далее приводятся точные условия изготовления копий, распространения и модификации. УСЛОВИЯ ИЗГОТОВЛЕНИЯ КОПИЙ, РАСПРОСТРАНЕНИЯ И МОДИФИКАЦИИ 0. Действие данного лицензионного соглашения распространяется на все программные продукты или иные разработки, в которых владельцем авторских прав указано, что данная программа (разработка) может распространяться только на условиях данного стандартного публичного лицензионного соглашения. Термин "Программный продукт", употребляемый ниже, в применении к такой программе (разработке) и термин "разработка на основе Программного продукта" подразумевают либо сам Программный продукт, либо любую произведенную на ее основе разработку, защищаемую законом об авторском праве, то есть разработку, содержащую Программный продукт или его части - без изменений или модифицированные и\или переведенные на другой язык. (В дальнейшем понятие "перевод" в самом широком смысле включается в понятие "модификация" или "изменение".) Как принято во всех лицензионных соглашениях, оно адресовано Вам и заключается с Вами. Данное лицензионное соглашение распространяется только на изготовление копий, распространение и модификацию; иные виды действий над Программным продуктом выходят за его рамки. Непосредственно использование Программного продукта не ограничивается ничем. Действие лицензионного соглашения распространяется на результаты использования Программного продукта лишь в том случае, если они представляют собой разработку, основанную на этом Программном продукте (вне зависимости от того, являются ли они результатом исполнения Программного продукта). Более точно это определяется возможностями самого Программного продукта. 1. Разрешается делать копии и распространять точные копии исходных кодов Программного продукта в том виде, в каком Вы их получили, на любом носителе при условии, что каждую копию Вы снабжаете - и обращаете на это внимание нового обладателя - упоминаниями об авторском праве и отказом от гарантий; сохраняете без изменений все, относящееся к данному лицензионному соглашению и отсутствию каких-либо гарантий, и передаете всем сторонним получателям Программного продукта копию данного лицензионного соглашения вместе с Программным продуктом. Непосредственно за сам акт передачи копии разрешается взимать плату. Вы можете также, по своему усмотрению, предлагать платную поддержку по использованию программного продукта. 2. В свою копию Программного продукта и в любую его часть Вы можете вносить изменения, создавая, таким образом, разработку на основе Программного продукта, и делать копии и распространять эти модификации или разработки на условиях, перечисленных выше, в разделе 1, в том случае, если будут соблюдены также следующие условия: а) вы обязаны в точности указать, какие файлы были изменены, что именно было изменено, и проставить дату внесения изменений. б) любые распространяемые или публикуемые вами разработки, которые включают в себя целиком Программный продукт или какие-либо его части или сделаны на основе Программного продукта или каких-либо его частей, Вы должны в обязательном порядке лицензировать на условиях данного лицензионного соглашения в цельности, без изменений (возможно, с дополнениями). c) Если модифицируемая программа предназначена для интерактивной работы, то при начале работы с целью подобного интерактивного использования в обычном порядке обязательно должна быть показана или должно быть сообщено о наличие и возможности просмотра уведомлений об авторском праве и об отсутствии (или наличии обеспечиваемых вами) гарантий и о том, что пользователи могут на условиях данного соглашения передавать программный продукт другим пользователям, а также указания для пользователя, как просмотреть копию данного лицензионного соглашения. (Исключение: если Программный продукт работает интерактивно, но не содержит информацию такого рода, ваша разработка на основе такого Программного продукта не обязана демонстрировать подобную информацию.) Эти требования распространяются на модифицированную разработку в целом. Если логически выделенные составные части Вашей разработки не основаны на этом Программный продукт и их можно полноправно считать независимыми и самостоятельными разработками, данное лицензионное соглашение и ее условия не распространяются на упомянутые разделы в тех случаях, когда вы распространяете их как отдельные разработки. Если же эти составные части распространяются как часть целостной разработки на основе Программного продукта, вступает в силу данное лицензионное соглашение, разрешающее лицензирование этой целостной разработки, и, следовательно, применимое для всех и касающееся всякой ее части, вне зависимости от того, кто является ее автором. Таким образом, целью данного раздела является не заявить о своих правах или оспорить ваши права на разработку, выполненную целиком и полностью вами. Скорее, в наши намерения входит гарантировать свое право контролировать распространение производных или совокупных разработок, основанных на Программном продукте. Простое совместное хранение с Программным продуктом (или разработкой, созданной на основе Программного продукта) разработок, созданных не на основе Программного продукта, на одном устройстве хранения или одном носителе не подводит эту другую разработку под действие данного лицензионного соглашения. Вы можете делать копии и распространять Программный продукт (или основанную на нем разработку - см. раздел 2) в виде объектных кодов или в виде исполняемых модулей на приведенных выше условиях разделов 1 и 2 в том и только том случае, если будет выполнено одно из следующих условий: a) Вы снабжаете копию полными соответствующими машинно-читаемыми исходными кодами, которые следует распространять на приведенных выше условиях разделов 1 и 2 на носителях, традиционно используемых для передачи программного обеспечения, или b) Вы снабжаете копию письменным обязательством, юридически действующим в течение не менее трех лет, выдавать любой третьей стороне за плату, не превышающую ваши собственные издержки, связанные с физическим актом распространения исходных кодов, полную машинно-читаемую копию соответствующих исходных кодов программного продукта, подлежащих распространению на приведенных выше условиях разделов 1 и 2, на носителе, традиционно используемом для передачи программного обеспечения, или c) Вместе с копией Вы даете сообщенную Вам информацию относительно того, как можно получить соответствующие исходные коды. (Этот вариант допустим лишь в случае некоммерческого распространения и только если Вы и сами получили программный продукт в виде объектных кодов или исполняемых модулей вместе с аналогичной информацией о возможности получения исходных кодов, удовлетворяющей приведенному выше подразделу b.) "Исходные коды" применительно к разработке означает ту форму разработки, в которую предпочтительнее вносить изменения. В случае разработки, представляющей собой исполняемую программу, термин "полные исходные коды" означает совокупность исходных кодов всех слагающих ее модулей, плюс все файлы, имеющие отношение к описанию интерфейса, плюс все файлы сценариев, используемые для контроля за компиляцией и созданием исполняемых модулей. Однако, как особое исключение, при распространении исходных кодов не требуется прилагать ничего из того, что, как правило, распространяется (в исходной или бинарной форме) вместе с основными компонентами (компилятор, ядро и т.п.) операционной системы, на которую рассчитаны исполняемые модули, если наличие именно этих компонентов именно в таком виде не является обязательным для этих исполняемых модулей. Если распространение исполняемых или объектных кодов программы происходит в форме предложения возможности сделать копию из определенного места, то возможность сделать оттуда же копию исходных кодов программы расценивается как распространение исходных кодов программы, даже если третью сторону не обязуют делать копию исходных кодов вместе с копией объектных кодов программы. 4. Делать копии, вносить изменения, сублицензировать или распространять Программный продукт можно лишь на условиях, прямо оговоренных в данном лицензионном соглашении. Любые иные попытки делать копии, изменять, сублицензировать или распространять Программный продукт считаются нарушением лицензионного соглашения и автоматически лишают вас прав, предоставляемых данным соглашением. Однако лицензии третьих лиц, уже получивших от Вас копии или какие-либо права на условиях данного лицензионного соглашения, будут сохранять юридическую силу до тех пор, пока эти лица полностью выполняют условия соглашения. 5. Вы не обязаны принимать условия данного лицензионного соглашения, поскольку вы не подписывали его. Однако ничто иное не дает вам позволения изменять или распространять Программный продукт или созданные на его основе разработки. Подобные действия запрещены действующим законодательством, если вы не приняли условия данного соглашения. Следовательно, внося какие-либо изменения или передавая кому-либо копию Программного продукта (или любой разработки, созданной на его основе), вы тем самым показываете, что приняли данное лицензионное соглашение, со всеми его условиями и ограничениями относительно создания копий, распространения или изменения Программного продукта или созданных на его основе разработок. 6. Всякий раз, когда Вы передаете кому-либо копию Программного продукта (или разработки, созданной на основе Программного продукта), новый обладатель автоматически получает от исходного правообладателя разрешение делать копии, распространять и вносить изменения в Программный продукт в соответствии с условиями и ограничениями данного лицензионного соглашения. Вы не можете вводить какие-либо дополнительные ограничения для прав нового обладателя, предоставляемых ему данным лицензионным соглашением. Вы не обязаны следить за соблюдением третьими лицами условий данного соглашения. 7. Если вследствие судебного разбирательства, или объявления копии контрафактной, или по какой-либо иной причине (не обязательно патентного характера), вы (решением суда, взаимным соглашением или как-либо иначе) поставлены в условия, противоречащие условиям данного лицензионного соглашения, это не освобождает вас от обязанности соблюдать условия данного лицензионного соглашения. Если Вы не можете одновременно выполнять обязательства, налагаемые данным лицензионным соглашением, и иные взятые на себя обязательства, то, как следствие, Вы не должны распространять Программный продукт. Например, если патентное соглашение не допускает безвозмездного дальнейшего распространения Программного продукта теми, кто, прямо или косвенно, получил его копию от вас, то единственный способ не нарушить ни его условия, ни условия данного лицензионного соглашения - это полностью воздержаться от распространения Программного продукта. Если какая-либо часть данного раздела признается не имеющей юридическую силу или неприменимой в конкретных обстоятельствах, остальная часть раздела остается в силе, а раздел в целом применим при иных обстоятельствах. Целью этого раздела не является принуждение Вас нарушать каких-либо патенты или иные права собственности или оспаривать их юридическую силу; данный раздел преследует единственную цель - защитить саму систему свободного распространения программных продуктов, базирующуюся на практике публичного лицензирования. Много людей внесли свой щедрый вклад в создание широкого диапазона программ, распространяемых посредством данной системы, рассчитывая на постоянное использование данной системы; автор, создавший что-либо полезное для других, вправе сам решать, хочет ли он\она распространять свой программный продукт каким-либо иным способом, и лицензия не может влиять на этот выбор. Это заявление имеет целью ясно и недвусмысленно объяснить, что какую цель преследуют нижеследующие положения данного лицензионного соглашения. 8. Если распространение и\или использование Программного продукта в конкретных странах ограничено патентными соглашениями или отношениями в области авторских прав, исходный обладатель авторских прав, помещающий свой Программный продукт под действие данного лицензионного соглашения, может добавить четко сформулированные географические ограничения распространения, исключив данные страны из числа тех, в которых позволено распространение. В таком случае данное лицензионное соглашение должно содержать эти ограничения, записанные непосредственно в собственно тексте соглашения. 9. "Free Software Foundation" может по своему усмотрению публиковать время от времени пересмотренный или измененный текст Стандартной публичной лицензии или новый вариант ее. Эти варианты по духу будут совпадать с настоящей версией, но могут отличаться от нее в деталях для соответствия возникшим проблемам и вопросам. Каждой версии Лицензии присваивается отличительный номер версии. Если в Программном продукте конкретно указан номер версии лицензионного соглашения и оговорена применимость "любой более поздней версии", Вы можете, на Ваше усмотрение, следовать условиям и ограничениям данной либо любой более поздней версии, опубликованной "Free Software Foundation". Если в программном продукте конкретно не указан номер версии лицензионного соглашения, Вы можете выбрать для использования любую версию, опубликованную "Free Software Foundation". 10. Если вы хотите включить части Программного продукта в иные свободно распространяемые программные продукты, но распространяемые на иных условиях, письменно спросите позволения у автора. В случае программных продуктов, авторские права на которые принадлежат непосредственно "Free Software Foundation", пишите в "Free Software Foundation" - иногда мы делаем в таких случаях исключения. Принимая в таком случае решение, мы будем руководствоваться следующим: сохранение всем производным наших свободно распространяемых программных продуктов статуса свободно распространяемых, обеспечение самого широкого доступа к ним и их неограниченное использование. </verb> <label id=warranty> <verb> ОТКАЗ ОТ ПРЕДОСТАВЛЕНИЯ ГАРАНТИЙ 11. ВВИДУ ТОГО, ЧТО ПРОГРАММНЫЙ ПРОДУКТ ЛИЦЕНЗИРУЕТСЯ БЕСПЛАТНО, НИКАКИЕ ГАРАНТИИ НЕ ПРЕДОСТАВЛЯЮТСЯ - В ТОЙ МЕРЕ, В КАКОЙ ЭТО ПОЗВОЛЯЕТСЯ ДЕЙСТВУЮЩИМ ЗАКОНОДАТЕЛЬСТВОМ. ЗА ИСКЛЮЧЕНИЕМ СЛУЧАЕВ, КОГДА ИМЕЕТСЯ ПИСЬМЕННОЕ ЗАЯВЛЕНИЕ ПРАВООБЛАДАТЕЛЕЙ ИЛИ РАСПРОСТРАНИТЕЛЕЙ ПРОГРАММНОГО ПРОДУКТА, ПРОГРАММНЫЙ ПРОДУКТ ПРЕДОСТАВЛЯЕТСЯ ВАМ "КАК ЕСТЬ", ЧТО НЕ ПРЕДУСМАТРИВАЕТ КАКИХ-ЛИБО ГАРАНТИЙ, В ТОМ ЧИСЛЕ ПОДРАЗУМЕВАЕМОЙ ГАРАНТИИ О ПРИГОДНОСТИ К КУПЛЕ-ПРОДАЖЕ, А ТАКЖЕ ИСПОЛЬЗОВАНИЮ В ТЕХ ИЛИ ИНЫХ КОНКРЕТНЫХ ЦЕЛЯХ. ВЕСЬ РИСК, СВЯЗАННЫЙ С ПРИЕМЛЕМОСТЬЮ ДЛЯ ВАС КАЧЕСТВА И ПРОИЗВОДИТЕЛЬНОСТИ ПРОГРАММНОГО ПРОДУКТА, ВЫ ПРИНИМАЕТЕ НА СЕБЯ. В СЛУЧАЕ, ЕСЛИ ПРОГРАММНЫЙ ПРОДУКТ РАБОТАЕТ НЕКОРРЕКТНО, ВЫ САМИ НЕСЕТЕ ВСЕ НЕОБХОДИМЫЕ РАСХОДЫ ПО ОБСЛУЖИВАНИЮ, УСТРАНЕНИЮ НЕПОЛАДОК И ИСПРАВЛЕНИЮ. 12. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ, ЗА ИСКЛЮЧЕНИЕМ СЛУЧАЕВ, КОГДА ТОГО ТРЕБУЕТ ЗАКОН, ИЛИ ПО ПИСЬМЕННОМУ СОГЛАШЕНИЮ, НИКТО ИЗ ОБЛАДАТЕЛЕЙ АВТОРСКИХ ПРАВ ИЛИ ИНЫХ ЛИЦ, ВНОСЯЩИХ ИЗМЕНЕНИЯ И\ИЛИ ЗАНИМАЮЩИХСЯ ДАЛЬНЕЙШИМ РАСПРОСТРАНЕНИЕМ ПРОГРАММНОГО ПРОДУКТА НА ПРИВЕДЕННЫХ ВЫШЕ УСЛОВИЯХ, НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА УБЫТКИ, ВКЛЮЧАЯ ОБЩИЕ, СПЕЦИФИЧЕСКИЕ, СЛУЧАЙНЫЕ ИЛИ КОСВЕННЫЕ, ЯВЛЯЮЩИЕСЯ СЛЕДСТВИЕМ ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ПРОДУКТА (В ТОМ ЧИСЛЕ ПОТЕРЮ ДАННЫХ, НЕУДОБНЫЙ ДЛЯ ВАС СПОСОБ ПОЛУЧЕНИЯ ДАННЫХ, ИЛИ ДОПОЛНИТЕЛЬНЫЕ РАСХОДЫ, ПОНЕСЕННЫЕ ВАМИ ИЛИ ТРЕТЬИМИ ЛИЦАМИ, ИЛИ ОТКАЗ РАБОТАТЬ СОВМЕСТНО С КАКИМИ-ЛИБО ИНЫМИ ПРОГРАММНЫМИ ПРОДУКТАМИ, ДАЖЕ ЕСЛИ ВЫШЕУПОМЯНУТЫЙ ПРАВООБЛАДАТЕЛЬ ИЛИ ИНОЕ ЛИЦО БЫЛИ ПРЕДУПРЕЖДЕНЫ О ВОЗМОЖНОСТИ ПОДОБНЫХ УБЫТКОВ. =============================================================== Как сделать так, чтобы все это было применимо к вашему новому программному продукту Если вы разрабатываете новый программный продукт и хотите, чтобы он стал как можно более доступным для широкой публики, лучший способ добиться этого - сделать его свободно распространяемым программным продуктом, который каждый сможет распространять и изменять на условиях данного лицензионного соглашения. Чтобы сделать его таким, снабдите программный продукт следующими замечаниями (лучше всего будет указать это в начале каждого файла исходных кодов, чтобы с максимальной эффективностью довести до сведения всех их получателей отказ от гарантий; каждый файл также должен содержать "копирайтную" строку и указание на то, где можно найти полный текст уведомления). Copyright (C) 19__ <имя автора> - и далее указывается название программного продукта и краткая характеристика - для чего он предназначен. Данная программа представляет собой свободно распространяемый программный продукт; вы можете распространять ее далее и\или изменять на условиях Стандартной публичной лицензии GNU, опубликованной "Free Software Foundation" - либо ее версии номер 2, либо (по вашему выбору) любой более поздней ее версии. Распространяя данный программный продукт, мы надеемся что он окажется полезным, но НЕ ДАЕМ НИКАКИХ ГАРАНТИЙ, даже подразумеваемой гарантии ПРИГОДНОСТИ К КУПЛЕ-ПРОДАЖЕ или ИСПОЛЬЗОВАНИЮ В КОНКРЕТНЫХ ЦЕЛЯХ (см. "Стандартную публичную лицензию GNU"). Вместе с данной программой вы должны были получить копию "Стандартной публичной лицензии GNU"; если это не так, напишите в Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Добавьте также информацию о том, как связаться с вами по электронной и обычной почтам. Если программа работает интерактивно, сделайте так, чтобы при запуске в интерактивном режиме она выводила короткий текст по следующему образцу: Gnomovision version 69, Copyright (C) 19__ <имя автора> Программа Gnomovision распространяется БЕЗ КАКИХ БЫ ТО НИ БЫЛО ГАРАНТИЙ. Чтобы узнать подробности, наберите "show w". Это свободно распространяемый программный продукт. Соблюдая определенные условия, Вы тоже можете распространять его; чтобы узнать об этом более подробно, наберите "show c". Предполагаемые команды "show w" и "show c" должны приводить к показу соответствующих разделов "Стандартной публичной лицензии". Разумеется, вы можете использовать иные команды; это даже может быть просто нажатие на клавишу "мыши" или выбор одного из пунктов в меню. При необходимости вы также должны добиться от вашего нанимателя (если вы работаете программистом) или от вашей школы (если учитесь) подписать "отказ от притязаний на авторские права" на ваш программный продукт. (Ниже приведен пример - замените только название организации и имена). ООО "МЦФ" настоящим отказывается от всех притязаний на авторские права на программный продукт "______________________", созданный Иваном Петровичем Сидоровым. <подпись Генерального директора, печать>, 1 апреля 1997 г. /<Фамилия, И.О>./ - Генеральный директор Данная Стандартная публичная лицензия не разрешает включение вашего программного продукта в такие программные продукты, на которые кем-либо введены ограничения на распространение. Если ваш программный продукт - это библиотека подпрограмм, то, возможно, более правильно разрешить использовать библиотеку в подобных программных продуктах. В таком случае вместо этой Лицензии используйте "Стандартную публичную лицензию GNU для библиотек". (C) Перевод лицензии с английского - Колесников О.Э., 01.02.1997 г. </verb> </article>