Поднятие Инета из-под юникса

Спецвыпуск Хакера, номер #005, стр. 005-073-3

Теперь создай файл /usr/local/etc/ppp-on-dialer. Он должен быть таким:

#!/bin/bash

#

# ppp-on-dialer

# Выполняет работу по дозвону и аутентификации

#

exec /usr/sbin/chat -v \

TIMEOUT3 \

ABORT'\nBUSY\r'\

ABORT'\nNO ANSWER\r' \

ABORT'\nRINGING\r\n\r\nRINGING\r' \

''\rAT \

'OK-+++\c-OK' ATH0 \

TIMEOUT30\

OK ATDP$TELEPHONE \

CONNECT''\

ogin:--ogin: $ACCOUNT\

word:$PASSWORD

## Конец ppp-on-dialer

Здесь используются просто супертехнологии биоалгебры, микровалеологии и квантовой философии: одна команда "/usr/sbin/chat" :). Эта прога занимается "общением" с модемом. Вся ее командная строка - диалог типа "ждать - послать". Например, ожидаем "CONNECT", посылаем пустую строку (два апострофа); ждем "login:", посылаем твой логин ($ACCOUNT - переменная из ppp-on; так же, как $TELEPHONE и $PASSWORD) etc. Весь этот диалог также можно запихнуть в отдельный скрипт. В общем, в принципе то же самое, что и в виндовских скриптах *.scp, только проще все гораздо. В файле "ppp-on-dialer" править ничего не надо, кроме, конечно, самого главного: если прога эта, chat, отсутствует у тебя, нужно ее проинсталлить или путь поменять к ней, если она у тебя установлена не в /usr/sbin.

Третий и последний скрипт - /usr/local/bin/ppp-off. Он будет устраивать дисконнект :). Его тоже не правь: там все нормально.

#!/bin/bash

#

# ppp-off

# Вырубает ppp-интерфейс - дисконнектит

#

# Узнаем, какой девайс отрубить

#

if [ "$1" = "" ]; then

DEVICE=ppp0

else

DEVICE=$1

fi

# Если у ppp0 pid-файл существует, значит программа запущена. Тормозим ее.

#

if [ -r /var/run/$DEVICE.pid ]; then

kill -INT `cat /var/run/$DEVICE.pid`

#

# Если kill не пашет, значит для этого pid`а нет запущенного процесса

# Вдобавок может быть останется lock-файл. Может понадобится потереть

# lock-файл прямо тут же.

#

if [ ! "$?" = "0" ]; then

rm -f /var/run/$DEVICE.pid

echo "ОШИБКА: Убран выдохшийся pid-файл"

exit 1

fi

# Круто. Зачем мучиться будем? Пусть pppd сам и мусор за собой выносит.

#

echo "PPP-связь к $DEVICE отключен."

exit 0

fi

# Процесс ppp не запущен для ppp0

echo "ОШИБКА: PPP-связь не активна на $DEVICE"

exit 1

## Конец ppp-off

Осталось разобраться с правами. Чтобы всякие ушастые приятели не скоммуниздили у тебя аккаунт, даем право на чтение "ppp-on" только владельцу файла, т.е. тебе:

chmod 400 /usr/local/bin/ppp-on

Но это у нас скрипт, а значит, он выполняться должен. Не вопрос:

chmod 500 /usr/local/bin/ppp-on

"ppp-off" достаточно дать 755, т.к. там ничего важного нет, а исполняться он все равно должен:

chmod 755 /usr/local/bin/ppp-off

Ну а "ppp-on-dialer" можешь оставить с правами "по умолчанию". :) Теперь поставь SUID-бит на pppd, чтобы его можно было использовать не только руту, если ты собрался юзать Инет под другими логинами на своей системе:

chmod 4755 /usr/bin/pppd

Назад на стр. 005-073-2  Содержание  Вперед на стр. 005-073-4

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001