Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Введение в системное администрирование Unix. Учебное пособие
.pdf
# А еще бывает, что sendmail не знает, как правильно называется
# наша машина. Тогда мы пишем что-то в таком стиле:
Cwlocalhost feduru.urup.ru feduru.mss.ru
Проверка работоспособности и отладка конфигурации
Для начала проверим, правильно ли подсоединен модем. Запускаем
программу cu - эмулятор терминала.
cu -l /dev/modem # Или как там у вас этот порт называется
После этого вы переключитесь на работу со своим модемным портом.
Все, что вы будете набирать с клавиатуры, будет перенаправляться в
порт /dev/modem, все, что "приходит" с этого порта, будет
рисоваться на вашем терминале. Попробуйте модемом набрать
телефонный номер
atdp100
Проверьте, правильно ли сконфигурирован "порт" модема и описание
системы в файле Systems.
cu pulsar
Проверьте права доступа к файлам /dev/modem, /dev/contty*.
Должно быть (???):
crw-rw---- 1 root uucp ... /dev/contty0
crw-rw---- 1 root uucp ... /dev/modem
Запустите uucico с максимальным уровнем выдачи отладочной
информации. Запускать надо из под пользователя uucp
/usr/lib/uucp/uucico -r1 -x9 -f -s pulsar
/usr/lib/uucp/uucico -x all -f -s kiae
А затем посмотрите на содержание файлов со статистикой uucp в
каталоге /var/spool/uucp:
Введение в системное администрирование UnixМ.Е. Мошков
151

.Admin/audit.local
.Log/
.Status/
ERRLOG
LOGFILE
SYSLOG
Например, такой командой
tail -f /var/uucp/.Admin/audit.local &
tail -f /var/uucp/.Log/uucico/kiae
По результатам переписки
###следующий абзац написан "мелким шрифтом"(можно
не читать)####
Dmitry Mayorov Compulsory Health Insurance Fund
Phone: +7 (812) 112-3517 St. Petersburg, Russia
> Навешал фильтров на sendmail, rmail,
> а вот это непонятно. Или они научились все из кои8 в исо пере> ворачивать на лету ?
Нет, конечно, потребовалось лечить. Дело сильно упростило то
обстоятельство, что внутри сети везде ISO. Перекодировать поэтому мне надо только то, что идет через UUCP, то бишь наружу.
Для этого пришлось:
1. Поправить sendmail.cf:
# RelCom UUCP - with ISO 8859-5 to KOI-8 translation
Muucp-koi, P=/usr/local/bin/_uux, F=mDFMhu, S=52/31, R=21, M=100000,
^^^^^^^^^^^^^^^^^^^ мой, см. ниже
A=_uux - -r -a$f -gC $h!rmail ($u)
2. Сделать /usr/local/bin/_uux из трех строк:
#!/bin/sh
PATH=:/usr/bin:/usr/local/bin:/usr/ucb:/bin:
Введение в системное администрирование UnixМ.Е. Мошков
152

/usr/local/bin/iso-koi | /usr/bin/uux $*
(iso-koi - понятно какой фильтр)
Это все, на самом деле, весьма грязный hack - вряд ли стоит его
включать в учебник. Оно, конечно, работает, но вот надо по
крайней мере еще и правильный код возврата как-то обеспечить с проверкой ошибок и прочими фенечками.
Чтобы принимаемая почта из KOI превращалась в ISO, достаточно:
1. Переименовать rmail в /usr/local/bin/__rmail;
2. Сделать свой rmail, тоже из трех строчек:
#!/bin/sh
PATH=:/usr/bin:/usr/local/bin:/usr/ucb:/bin:
/usr/local/bin/koi-iso | /usr/local/bin/__rmail $*
Вышеуказанную экзекуцию надо производить именно над rmail, потому что rbmail проверяет контрольные суммы.
А вот rbmail в SVR4/88 совсем нет. Надо искать исходники, собирать... А RelCom (по крайней мере мой провайдер) именно его
пользует. Это третья причина (после отсутствия Taylor-uucp и
удобного Mail-user агентa), по которой я не стал поднимать
uucp/e-mail на Motorolе.
-Dmitry Mayorov Compulsory Health Insurance Fund
Phone: +7 (812) 112-3517 St. Petersburg, Russia
-- Конец цитаты --
Пример 8.2.
################_конец_"мелкого
шрифта"_#######################
Solaris: настройка uucp по direct line
Введение в системное администрирование UnixМ.Е. Мошков
153

В файле Systems на Солярке удаленная машина описывается так:
ranisi Any dirt06 9600 unused ""
P_ZERO ""
\n\c ogin:-\n\c-ogin: uuintra\n\c ssword: parolf9f10\n\c ""
P_ZERO
По сравнению с нормальным tailor-uucp престарелый соляркин по
прямому кабелю выкинул несколько фортелей:
Не захотел идти наружу с 38400, пришлось ставить 9600
Посылаемый ^M в конце каждой строки chat-а принимающий
Linux понимать отказался, пришлось делать в конце \n\c
Работать стал только с насильственно взведенным P_ZERO - "no
parity" - без этого на приеме вместо латиницы получалась 8битная русица.
В uucp-овый crontab ставим раз в 5 минут вызов uucico
0,5,10,15,18,20,25,30,35,40,45,50,55 * * * * (\
/usr/lib/uucp/uucico -r1 -f -s ranisi ; sleep 30 ; \
/usr/lib/sendmail -q ) > /dev/null 2>&1
У солярного uucico не оказалось ключа "force" redial (-f - совсем не тот
форце, которого хотелось мне)
Чтоб заставить uucico ходить на телнетовский порт
> в логах наблюдается откровенный мусор: \177}\030\177} \177}#\177}
port type pipe
port command /bin/telnet -8E hostname
Secure uucp по tcp
Вариант 1. port type tcp with ssh-port forwarding
Введение в системное администрирование UnixМ.Е. Мошков
154

НА СЕРВЕРЕ: конфигурите uucp-tcp-сервер с localhost
/etc/inetd.conf :
uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/sbin/uucico -l
/etc/hosts.allow :
uucico: 127.0.0.1
# uucico желает его читать, а работает он с uid uucp - приходится дать read
chmod og+r /etc/hosts.allow
/etc/uucp/passwd : propisatx uu-логин, пароль _нешифрованный_
uuyourlogin yourpasswd
НА КЛИЕНТЕ: коннект будете делать на localhost, а ssh делает его
проброс
/etc/inetd.conf :
uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/sbin/uucico -l
/etc/hosts.allow :
uucico: 127.0.0.1
/etc/uucp/port : описать порт tcp-connect
port tcp-connect
type tcp
service 540
/etc/uucp/sys : добавить тип порта
. . .
port tcp-connect
address 127.0.0.1
chat ogin: \L ssword: \P
alternate
. . .
"Перед употреблением" запускаем из под root ssh с
активизированным forward
Введение в системное администрирование UnixМ.Е. Мошков
155

ssh1 -C -L 540:127.0.0.1:540 193.232.173.6
Конфигурирование DHCP
DHCPD: Сервер DHCP
touch /var/lib/dhcpd/dhcpd.leases
записываем в файл /etc/dhcpd.conf
#########################################################
#########################################################
# временные параметры
max-lease-time 604800;
default-lease-time 86400;
allow unknown-clients;
# сетевые параметры локальной сети для настройки клиентов
option routers 195.0.0.1;
option broadcast-address 195.0.0.255;
option domain-name-servers 195.0.0.2;
option domain-name "your.domain.ru";
# раздавать блок адресов
subnet 195.0.0.0 netmask 255.255.255.0 {
range 195.0.0.4 195.0.0.7;
}
# группа хостов с фиксированными адресами и именами
group { use-host-decl-names true;
host min { hardware-ethernet 0:0:39:8c:26:9e;
fixed-address 195.0.0.3; }
host lada { hardware-ethernet 0:0:39:8c:26:9a;
fixed-address 195.0.0.2; }
}
#########################################################
#########################################################
Введение в системное администрирование UnixМ.Е. Мошков
156

#########################################################
# для запуска dhcpd
#########################################################
dhcpd eth1 # запускаем сервер на eth1 интерфейс. Все
## эта команда скорее всего не понадобится (ибо исполняется при загрузке)
# route add -hosts 255.255.255.255 dev eth1
Пример 8.3.
Клиент DHCP
Вписать в файл /etc/sysconfig/network-scripts/ifcfg-
eth0
BOOTPROTO=dhcp
И исполнить команду /etc/rc3.d/S10network restart скрипт
сам проведет всю работу, обратится к клиентскому демону dhcpcd, и
сохранит полученныые от dhcpd данные в каталоге
/etc/dhcpc:
-rw------- 1 root root 265 Apr 1 10:22 dhcpcd-eth0.cache
-rw-r--r-- 1 root sys 507 Apr 1 10:22 dhcpcd-eth0.info
-rw-r--r-- 1 root sys 5 Apr 1 10:22 dhcpcd-eth0.pid
DHCP клиент pump, если он, конечно, установлен
pump -i eth0 # получить адрес
pump -i eth0 --status # посмотреть статус
True64: DHCP Join daemon
В True64 dhcp обеспечивает демон joind.
Введение в системное администрирование UnixМ.Е. Мошков
157

cjoin # Конфигурационный GUI
jdbdump > tmpfile # выгрузить конфиг в текстовый файл
vi tmpfile
jdbmod -e tmpfile # применить новый конфиг join-демона
Настройка времени, сервер синхронизации времени
XNTPD
Настройка временной зоны: Linux
Каталог файлов с описаниями временных зон
/usr/share/zoneinfo/
Список кратких описаний доступных временных зон
/usr/share/zoneinfo/zone.tab
Компилятор временных зон zic filename
Декомпилятор временных зон отсутствует
Временная зона записана в /etc/timezone
echo Europe/Moscow > /etc/timezone
и одновременно залинкована на /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Установка времени вручную
date 082816452003 # MMDDhhmm[YYYY]
hwclock -w # прописать текущее время в HW-clock
FILES
/etc/adjtime /usr/lib/zoneinfo/ /dev/rtc
Введение в системное администрирование UnixМ.Е. Мошков
158

Сервер со своими часами
/etc/ntp.conf
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
driftfile /etc/ntp/drift
broadcastdelay 0.008
# права доступа: всем - ничего, localhost - все, клиентам - readonly
restrict default ignore
restrict 127.0.0.1
restrict 195.0.0.0 mask 255.255.255.0 notrust nomodify notrap
Клиент
1 вариант: берем время несколько раз в день, с запуском через crontab:
1 1/4 * * * ntpdate -b ntp.server1.name ntp.server2.name
2 вариант: берем время из бродкастов
/etc/ntp.conf :
broadcast yes
driftfile /etc/ntp/drift
3 вариант: берем время с сервера, через XNTPD
/etc/ntp.conf :
server ntp.server.name
driftfile /etc/ntp/drift
# Проследить, чтоб при начальной загрузке запускался xntpd
Введение в системное администрирование UnixМ.Е. Мошков
159

Система печати в Unix. LP spoolling
(описана система печати в System V)
Печатать, конечно, можно и так: cat file > /dev/lp. Но в
многопользовательской системе такой фокус не всегда пройдет. Поэтому
печатаемый файл ставят в очередь на печать.
Имеем принтер. У принтера есть
ИМЯ_ПРИНТЕРА - придумывается администратором.
ПОРТ_ПРИНТЕРА - специальный файл в который надо
выталкивать данные для печати.
ИНТЕРФЕЙСНАЯ_ПРОГРАММА - программа, которая как раз и
будет этим заниматься.
Если у нас нормально сконфигурирована система печати, то печататься
можно так:
lp -d ИМЯ_ПРИНТЕРА file
или, если мы хотим напечатать на "default" принтере
cat file | lp
lpstat Посмотреть в каком состоянии очередь печати
cancel [идентификатор_запроса ...] [принтер ...]
Срубить запрос на печать
lp просто складывает файл в SPOOL КАТАЛОГ. ДЕМОН ПЕЧАТИ
lpsched обнаруживает вновь поступивший файл, ставит его в очередь
на печать, и, когда очередь доходит, запускает наконец
ИНТЕРФЕЙСНУЮ ПРОГРАММУ, вход которой берется из печатаемого
файла, а ее вывод перенаправляется на ПОРТ_ПРИНТЕРА.
Подключить к системе новый принтер
---------------------------------------------------------------
Введение в системное администрирование UnixМ.Е. Мошков
160
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
