Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в системное администрирование Unix. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
# А еще бывает, что 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]