Страница:
muncher поле определяет команду, используемую для сжатия. Обычно, это -
compcun, команда, которая производит сжатый пакет. В качестве
альтернативы, Вы могли бы обеспечивать muncher, который использует gzip,
скажем gzipcun (чтобы быть чистым: Вы должны запись это непосредственно).
Вы должны удостовериться, что распаковщик на отдаленном пункте
исправлен, чтобы распознать файлы, сжатые с gzip.
Если отдаленный пункт не имеет команды распаковки, Вы можете
определить nocomp, который не делает никакое сжатие.
Последнее поле, transport, описывает транспорт, который нужно
использовать. Доступно несколько стандартных команд для различных
transports, чьи имена начинаются с via. Sendbatches передает им имя пункта
адресата в командной строке. Если batchparms вход не был /default/, он получает
имя пункта из поля site, удаляя все последующее, включая первую точку или
- 322 -
наклонную черту вправо. Если вход был /default/, используются имена каталога
в out.going.
Имеются две команды, которые используют uux, чтобы выполнить rnews на
отдаленной системе; viauux и viauuxz. Последняя устанавливает -z флаг для
(более старые версии) uux, чтобы отменить сообщения успеха для каждой
переданной статьи. Другая команда, viamail, посылает пакеты статей
пользователю rnews на отдаленной системе через почту.
Все команды из последних трех полей нужно расположть или в
out.going/site или в /usr/lib/news/bin/batch. Большинство их - команды, так, чтобы
Вы могли легко приспосабливать новые инструментальные средства для
ваших персональных потребностей. Они вызываются как трубопровод.
Список статей подается дозатору на стандартном вводе, который производит
пакет на стандартном выводе. Это канально передается в muncher, и так далее.
Типовой файл дан ниже.
# batchparms file for the brewery
# site | size |max |batcher |muncher |transport
#-------------+--------+-------+---------+-----------+-----------
/default/ 100000 22 batcher compcun viauux
swim 10000 10 batcher nocomp viauux
18.6 Устаревшие Новости
В Bnews, устаревание выполняться программой называемой expire, которая
принимает список newsgroups как аргументы, наряду с спецификацией времени
после которого статьи должны устареть.
Иногда, Вы можете хотеть сохранять статьи из некоторых групп даже после
того, как они устарели; например, Вы могли бы хотеть сохранить программы,
зарегистрированные в comp.sources.unix. Это называется архивирование. Explist
разрешает Вам отмечать группы для архивирования.
Вход в explist похож на это:
grouplist perm times archive
Grouplist - отделенный запятой список newsgroups, к которым вход
применяется. Иерархии могут быть определены префиксом имени группы,
необязательно конкатенированным ко всем. Например, для входа,
обращающегося к всем группам ниже comp.os, Вы могли бы вводить comp.os
- 323 -
или comp.os.all в grouplist.
При устаревании новости из группы, имя будет проверено против всех
входов в explist в данном порядке. Первый соответствующий вход
применяется. Например, чтобы отбросить большую часть comp после четырех
дней, кроме comp.os.linux.announce, который Вы хотите хранить в течение
недели, Вы просто должны иметь вход для последнего, который определяет
семи-дневный период окончания, сопровождаемый входом для comp, который
определяет четыре дня.
Поле perm детализирует, если вход применяется к уменьшенной, или
любой группе. Оно может принимать значения m, u, или x, которые
обозначают уменьшенный, неуменьшенный, или любой тип.
Третье поле, times, обычно содержит только одиночное число. Это - число
дней после которых статьи будут устаревать, если они не были назначены,
искусственная дата окончания в поле Expires в заголовке статьи. Обратите
внимание, что это - число дней подсчитывается с поступления в ваш пункт, а
не с даты регистрации.
Поле times может, однако, быть более сложно. Это может быть комбинация
до трех чисел, отделяемых от друг друга черточкой. Первое обозначает число
дней, которые должны пройти прежде, чем статья рассматривается
кандидатом на окончание. Редко полезно использовать значение отличное от
нуля. Второе поле - вышеупомянутое заданное по умолчанию число дней
после, которых оно будет устаревать. Третья часть - число дней после которых
статья будет устаревать безоговорочно, независимо от того, имеет ли она поле
Expires или нет. Если только среднее число дано, другие два берут значения по
умолчанию. Они могут быть определены, используя специальный /bounds/
входа, который описан ниже.
Четвертое поле, archive, обозначает, должен ли newsgroup быть
заархивирован, и где. Если никакого архивирования не предназначено,
должна использоваться черточка. Иначе, Вы либо используете полное имя
пути (указывающее на каталог), или знак (@). Знак обозначает заданный по
умолчанию каталог архивов, который должен то быть дан doexpire, используя
-a флаг в командной строке. Каталог архивов должен принадлежать news.
Когда doexpire архивирует статью из, скажем comp.sources.unix, он сохраняет ее
в каталоге comp/sources/unix ниже каталога архивов, создавая его если он не
существует. Каталог архивов непосредственно, однако, не будет создан.
Имеются два специальных входа в вашем explist файле, на который doexpire
полагается. Вместо списка newsgroups, они имеют ключевые слова /bounds/ и
/expired/. Вход /bounds/ содержит значения по умолчанию для трех значений
- 324 -
поля времен, описанного выше.
Поле /expired/ определяет, как долго C News будет содержать строки в
файле хронологии. Это необходимо, потому что C News не будет удалять
строку из файла хронологии, если соответствующая статья устарела, но будет
содержать ее в случае, если дубликат должен прибыть после этой даты.
Простой explist файл с довольно плотными интервалами истечения
воспроизведен ниже:
# keep history lines for two weeks. Nobody gets more than three months
/expired/ x 14 -
/bounds/ x 0-1-90 -
# groups we want to keep longer than the rest
comp.os.linux.announce m 10 -
comp.os.linux x 5 -
alt.folklore.computers u 10 -
rec.humor.oracle m 10 -
soc.feminism m 10 -
# Archive *.sources groups
comp.sources,alt.sources x 5 @
# defaults for tech groups
comp,sci x 7 -
# enough for a long weekend
misc,talk x 4 -
# throw away junk quickly
junk x 1 -
# control messages are of scant interest, too
control x 1 -
# catch-all entry for the rest of it
all x 2 -
С устареванием в C News, имеется ряд потенциальных проблем при
чистке. Например, ваш newsreader мог бы полагаться на третье поле файла
active, который содержит число самой низкой интерактивной статьи. При
истечении статьи, C News не модифицирует это поле. Если Вы хотите чтобы
это поле, представляло реальную ситуацию, Вы должны выполнить
программу, называемую updatemiin после каждого выполнения doexpire.
18.7 Разнообразные Файлы
- 325 -
Имеется ряд файлов, которые управляют поведением C News, но не
существенны для функционирования. Все они постоянно находятся в
/usr/lib/news. Мы опишем их кратко.
newsgroups Это - файл дополняющий active, который содержит список имен
newsgroup, наряду с кратким описанием основного предмета. Этот файл
автоматически модифицируется, когда C News получает сообщение
управления checknews (см. раздел 18.8).
localgroups если Вы имеете ряд локальных групп, таких что Вы не хотите,
чтобы C News жаловался относительно них, каждый раз когда Вы получаете
checknews сообщение, поместите их имена и описания в этом файле, точно так
же как они появились бы в newsgroups.
mailpaths Этот файл содержит адрес регулятора для каждой уменьшенной
группы. Каждая строка содержит имя группы, сопровождаемое адресом email
регулятора (отделеные меткой табуляции).
Два специальных входа обеспечиваются как значение по умолчанию. Они
базовые и межсетевые. Оба обеспечиваются --- в записи bang-path --- путем к
самому близкому базовому пункту, и пункту, который понимает RFC 822
адреса (user@host).
Вы не будете должны изменять межсетевой вход, если Вы имеете smail или
sendmail, потому что они понимают RFC 822 - адресацию.
Базовый вход используется всякий раз, когда пользователь отправляет по
почте к уменьшенной группе, чей регулятор не перечислен явно. Если имя
newsgroup -- alt.sewer, и базовый вход содержит path!%s, C News отправит по
почте статью к path!alt-sewer, надеясь, что базовая машина способна передать
статью. Чтобы выяснить который путь использовать, спросите
администрацию новостей в пункте, который передает Вам. Вы можете также
использовать uunet.uu.net!%s.
distributions Этот файл не файл C News, но он используются некоторыми
newsreaders, и nntpd. Он содержит список распределений, распознанных вашим
пунктом, и описанием (встроенных) возможностей. Например, Виртуальный
Пивоваренный завод имеет следующий файл:
world everywhere in the world
- 326 -
local Only local to this site
nl Netherlands only
mugnet MUGNET only
fr France only
de Germany only
brewery Virtual Brewery only
log Этот файл, содержит файл регистрации всех действий C News. Он
вызывается регулярно, выполняя newsdaily; копии старых регистрационных
файлов сохраняются в log.o, log.oo, и т.д.
errlog Это - файл регистрации всех сообщений об ошибках, созданных C News.
Он не включают плохие статьи, и т.д. Этот файл будет отправлен по почте к
newsmaster (usenet по умолчанию) автоматически newsdaily, если он не-пуст.
Errlog очищается newsdaily. Старые копии сохраняются в errlog.o и т. д.
batchlog Он регистрирует все выполнения sendbatches. Он обычно мало
интересен. Он также зависит от newsdaily.
watchtime Это - пустой файл, создаваемый каждый раз при выполнении
newswatch.
18.8 Сообщения Управления
Usenet протокол новостей знает специальный класс статей, которые
вызывают некоторые ответы или действия системы новостей. Они
называются сообщениями управления. Они распознаются присутствием поля
Control в заголовке статьи, которое содержит имя операции управления,
которую нужно выполнить. Имеются отдельные типы этих операций, которые
обрабатываются командами оболочки, расположенными в /usr/lib/news/ctl.
Большинство из них выполнит их действие автоматически во время
обработки статьи C News, без того, чтобы уведомить newsmaster. По
умолчанию, только checkgroups сообщения будут вручены newsmaster, но Вы
можете изменять это, редактируя команды.
18.8.1 Сообщение Отмена
Наиболее широко известное сообщение - отмена, которой пользователь
- 327 -
может отменять статью, посланную ранее. Оно действительно удаляет статью
из каталогов spool, если она существует. Сообщение отмены будет послано к
всем абонентам, которые получают новости из таких групп, независимо от
того, была ли статья замечена уже или нет. Нужно принять во внимание
возможность того, что первоначальная статья была отсрочена несмотря на
сообщение сокращения. Некоторые системы новостей позволяют
пользователям отменять сообщения другого человека; это - конечно
определенный минус.
18.8.2 Newgroup и rmgroup
Два сообщения имеют дело с созданием или удалением newsgroups - это
newgroup и rmgroup. Newsgroups ниже " обычной " иерархии могут быть
созданы только после того, как обсуждение и утверждение было проведено
среди Usenet читателей. Правила, обращающиеся к alt иерархии учитывают что
кое-что близко к анархии. Для подробной информации см. регулярные
регистрации в news.announce.newusers и news.announce.newgroups. Никогда не
посылайте newgroup или rmgroup сообщение самостоятельно, если Вы
определенно не знаете, что Вам позволено.
18.8.3 Checkgroups Сообщение
Checkgroups сообщения посылаются администраторами новостей, чтобы
для всех абонентов внутри сети синхронизировать их файлы active с фактами
Usenet. Например, коммерческие поставщики услуг Internet могли бы выпускать
такое сообщение к абоненту их заказчиков. Один раз в месяц "оффициальное"
checkgroups сообщение для главных иерархий зарегистрировано в
comp.announce.newgroups их регулятором. Однако, оно зарегистрировано, как
обычная статья, а не как управляющее сообщение. Чтобы выполнить
операцию checkgroups, сохраните эту статью в файл, скажем /tmp/check, удалите
все до начала сообщения управления непосредственно, и передайте это к
checkgroups команде, используя следующую команду:
# su news -c "/usr/lib/news/bin/ctl/checkgroups" < /tmp/check
Это модифицирует ваш newsgroups файл, добавляя группы, перечисленные
в localgroups. Старый newsgroups файл будет перемещаться в newsgroups.bac.
Обратите внимание, что регистрация сообщения локально редко будет
- 328 -
работать, потому что inews отказывается принимать это как статью.
Если C News находит несоответствия между списком checkgroups и файлом
active, это произведет список команд, которые модернизируют ваш пункт, и
сообщат это администратору новостей. Вывод обычно походит на это:
From news Sun Jan 30 16:18:11 1994
Date: Sun, 30 Jan 94 16:18 MET
From: news (News Subsystem)
To: usenet
Subject: Problems with your active file
Следующие newsgroups не допустимы и должны быть удалены.
alt.ascii-art
bionet.molbio.gene-org
comp.windows.x.intrisics
de.answers
Вы можете делать это, выполняя команды:
/usr/lib/news/bin/maint/delgroup alt.ascii-art
/usr/lib/news/bin/maint/delgroup bionet.molbio.gene-org
/usr/lib/news/bin/maint/delgroup comp.windows.x.intrisics
/usr/lib/news/bin/maint/delgroup de.answers
Следующие newsgroups отсутствовали.
comp.binaries.cbm
comp.databases.rdb
comp.os.geos
comp.os.qnx
comp.unix.user-friendly
misc.legal.moderated
news.newsites
soc.culture.scientists
talk.politics.crypto
talk.politics.tibet
- 329 -
Когда Вы получаете такое сообщение от вашей системы новостей, не
отбрасывайте его вслепую. В зависимости от того, кто послал checkgroups
сообщение, оно может испытывать недостаток нескольких групп или даже
всех иерархий; так что Вы должны быть осторожны относительно удаления
любых групп. Если Вы находите группы, перечисленные как отсутствующие и
Вы хотите иметь их в вашем пункте, Вы должны добавить их, используя
addgroup команду. Сохраните список отсутствующих групп в файле и
передайте его следующей небольшой команде:
#!/bin/sh
cd /usr/lib/news
while read group; do
if grep -si "^$group[[:space:]].*moderated" newsgroup; then
mod=m
else
mod=y
fi
/usr/lib/news/bin/maint/addgroup $group $mod
done
18.8.4 sendsys, version, и senduuname
В заключение, имеются три сообщения, которые могут использоваться,
чтобы выяснить относительно топологии сети. Это - sendsys, version, и senduu-
имя. Они заставляют C News возвращать отправителю файл sys, версию
программного обеспечения, и вывод uuname (1), соответственно. C News -
очень лаконично относительно сообщения version; оно возвращает просто
неукрашенное "C".
Снова, Вы никогда не должны выдавать такое сообщение, если Вы не
уверенны, что это не может повредить вашей (региональной) сети. Ответы
sendsys сообщениям могут быстро положить сеть UUCP.
18.9 C News в NFS Среде
Простой способ распределять новости внутри локальной сети состоит в
том, чтобы хранить все новости на центральном host, и экспортировать
релевантные каталоги через NFS, так, чтобы newsreader мог просматривать
- 330 -
статьи непосредственно. Преимущество этого метода над NNTP - то, что
непроизводительные затраты, заключаемые в поиске и продевании нитки
статей являются значительно ниже. NNTP, с другой стороны, побеждает в
разнородной сети, где оборудование изменяется широко среди главных ЭВМ,
или где пользователи не имеют эквивалентных прав на машине сервера.
При использовании NFS, статьи, зарегистрированные на локальном host
должны быть посланы к центральной машине. Также, Вы могли бы хотеть
защищать вашу область spool новостей, экспортируя их только для чтения, что
требует пересылки к центральной машине, также.
C News обрабатывает это очевидно. Когда Вы отправляете по почте
статью, ваш newsreader обычно вызывает inews, чтобы ввести статью в систему
новостей. Эта команда выполняет ряд проверок на статье, завершает
заголовок, и проверяет файловый сервер в /usr/lib/news. Если этот файл
существует и содержит hostname отличный от имени локального host, inews
вызывается на тот host сервер через rsh. Так как inews команда использует ряд
двоичных команд и файлов поддержки от C News, Вы должны также иметь C
News, установленный локально, или устанавливать программное обеспечение
новостей из сервера.
Чтобы rsh вызов работал правильно, каждый пользователь должен иметь
эквивалентный вход на систему сервера, то есть вход котороый она может
регистрировать без запроса о пароле.
Удостоверитесь, что hostname, данный в сервере буквально соответствует
выводу команды hostname (1) на машине сервера, иначе C News будет
зацикливаться навсегда при попытке получить статью.
18.10 Инструментальные средства Сопровождения и Задачи
Несмотря на сложность C News, жизнь администратора новостей может
быть довольно проста, потому что C News обеспечивает Вас расширенным
разнообразием инструментальных средств сопровождения. Некоторые из них
предназначены, чтобы быть выполненными регулярно из cron, подобно
newsdaily. Использование этих команд значительно уменьшает ежедневную
заботу и подачу требований вашей установки C News.
Если не установлено иначе, эти команды расположены в
/usr/lib/news/bin/maint. Обратите внимание, что Вы должны стать пользователем
перед вызовом этих команд. При выполнении их как супер-пользователь эти
файлы могут стать недоступными C News.
- 331 -
newsdaily Имя уже говорит: это выполняется один раз в день. Это - важная
команда, которая помогает Вам хранить регистрационные файлы малыми,
сохраняя копии каждого из последних трех выполнявшихся. Она также
пробует считывать любые аномалии, подобно несвежим пакетам во входящих
и исходящих каталогах, регистрации в неизветных группах, и т.д.
Возникающие в результате сообщения об ошибках будут отправлены по почте
к newsmaster.
newswatch Это - команда, которая должна быть выполнена регулярно, чтобы
искать аномалии в системе новостей, один раз в час или около этого. Она
предназначена обнаруживать проблемы, которые будут иметь
непосредственный эффект на оперативности вашей системы новостей и
отправлять по почте отчет проблемы к newsmaster. Отмечаемые вещи
включают несвежие файлы блокировки, которые не удалены, автоматические
входные пакеты, и недостаток дискового пространства.
addgroup Добавляет группу к вашему пункту локально. Соответствующий
вызов
addgroup groupname y|n|m|=realgroup
Второй аргумент имеет то же самое значение как флаг в файле active, что
любой может отправить по почте к группе (y), что никто не может отправить
по почте (n), что она уменьшена (m), или что она является специальной для
другой группы (=realgroup).
Вы могли бы также использовать addgroup, когда первые статьи в недавно
созданной группе прибывают раньше чем сообщение управления newgroup,
которое предназначено, чтобы создать ее.
delgroup nозволяет Вам удалять группу локально. Вызовите это как
delgroup groupname
Вы все еще должны удалить статьи, которые остаются в каталоге spool. В
качестве альтернативы, Вы могли бы оставлять это натуральному ходу
событий (a.k.a. Expire) чтобы удалять их.
addmissing Добавляет отсутствующие статьи к файлу хронологии. Выполните
- 332 -
эту команду, когда имеются статьи, которые, кажется, зависают навсегда.
newsboot Эта команда должна быть выполнена при начальной загрузке
системы. Она удаляет любые файлы блокировки, оставленные, когда
обработчики новостей уничтожались при закрытии системы, и закрывает и
выполняет любые пакеты, оставленные из NNTP соединений, которые были
завершены при закрытии системы.
newsrunning Это постоянно находится в /usr/lib/news/bin/input, и может
использоваться, чтобы отключить непакетирование входящих новостей,
например в течение работы. Вы можете выключить непакетирование вызовом
/usr/lib/news/bin/input/newsrunning off
Оно включается, используя on вместо off.
19. Описание NNTP
19.1 Введение
Из-за различного сетевого используемого транспорта, NNTP
обеспечивает(предусматривает) значительно отличные подходы к обмену
новостей C News. NNTP замещает " Сетевой Протокол передачи Новостей '', и
неспецифический пакет программ.
Различные команды позволяют клиентуре отыскивать, посылать и
отправлять по почте статьи. Различие между посылкой и регистрацией - то,
что последний может включать статьи с незавершенной информацией
заголовка. Поиск статьи может использоваться клиентурой передачи новостей
также как newsreaders. Это делает NNTP превосходным средством для
обеспечения доступа к новостям для клиентуры в локальной сети.
NNTP также обеспечивает активый и пассивный способы передачи
новостей, которые называются " pushing " и " pulling ". Выталкивание (pushing) - в
основном тоже что C News ihave/sendme протокол. Клиент предлагает статью
серверу через " IHAVE ", и сервер возвращает код ответа, который
указывает, имеет ли он уже статью, или если она требуется. Если так, клиент
посылает статью, завершенную одиночной точкой в отдельной строке.
Выталкивание новостей имеет один недостаток - это вызывает тяжелую
загрузку в системе сервера, так как она должна искать в базе данных
- 333 -
хронологий каждую одиночную статью.
Противоположная методика - перемещать(pulling) новости. Клиент
запрашивает список всех доступных статей из группы, которые прибыли после
заданной даты. Этот запрос выполняется командой NEWNEWS. Из
возвращенного списка идентичности сообщения, клиент выбирает те статьи,
которые он еще не имеет, используя команду ARTICLE для каждой из них по
очереди.
Проблема с перемещением новостей состоит в том, что требуется плотное
управление сервером, которое позволяет клиенту запрашивать группы и
распределения. Например, оно должно удостовериться, что никакой
конфиденциальный материал из локальных newsgroups не послан
несанкционированной клиентуре.
Имеется также ряд команд удобства для newsreaders, которые разрешают им
отыскивать заголовок статьи и тело отдельно, или даже одиночные строки
заголовка из промежутка статей. Это допускает Вам, хранить все новости
относительно центрального host, со всеми пользователями сетьи, используя
nntp-основанные клиентские программы для чтения и регистрации. Это -
альтернатива к экспорту каталогов новостей через NFS, который описан в
главе 18 ..
Полная проблема NNTP состоит в том, что она позволяет хорошо
осведомленному специалисту вставлять статьи в поток новостей с ложной
спецификацией отправителя. Это называется новостями faking. Расширение к
NNTP позволяет требовать установления подлинности пользователя для
некоторых команд.
Имеется ряд доступных NNTP пакетов. Один из наиболее широко
известных - NNTP daemon, также известный как реализация ссылки.
Первоначально, он написан Stan Barber и Phil Lapsley, чтобы иллюстрировать
подробности RFC 977. Самая современная версия - nntpd-1.5.11, описана
ниже. Вы можете также получить исходники и компилировать ее
непосредственно.
Nntpd пакет состоит из сервера и двух клиентов для перемещения и
выталкивания новостей, соответственно, также как inews замены. Они живут в
Bnews среде, но с небольшими дополнениями, они будут счастливы с C news,
также. Однако, если Вы планируете использовать NNTP для больше чем
предложения newsreaders доступа к вашему серверу новостей, реализация
ссылки не есть действительно опция. Мы следовательно обсудим только
NNTP daemon содержащийся в nntpd пакете, и не учтем клиентские программы.
- 334 -
19.2 Установка NNTP сервера
NNTP сервер называется nntpd, и может компилироваться двумя
способами, в зависимости от ожидаемой загрузки на системе новостей. Не
имеется никаких откомпилированных версий, из-за некоторых пункт-
специфических значений по умолчанию, которые являются жестко
закодированными в выполнимую программу. Вся конфигурация выполнена
через макркоманду definines в common/conf.h.
Nntpd может быть конфигурирован или как автономный сервер, который
запускается при начальной загрузке системы из rc.inet2, или как daemon
управляемый inetd. В последнем случае Вы должны иметь следующий вход в
/etc/inetd.conf:
nntp stream tcp nowait news /usr/etc/in.nntpd nntpd
Если Вы конфигурируете nntpd как автономный, удостовертеь, что любая
такая строка в inetd.conf прокомментирована. В любом случае, Вы должны
удостовериться, что имеется следующая строка в /etc/services:
nntp 119/tcp readnews untp # Network News Transfer Protocol
Чтобы временно сохранять любые входящие статьи, и т.д, nntpd также
нуждается в a каталоге .tmp в вашем spool новостей. Вы должны создать его
используя
# mkdir /var/spool/news/.tmp
# chown news.news /var/spool/news/.tmp
19.3 Ограничение NNTP Доступа
Доступ к NNTP ресурсам управляется файлом nntp access в /usr/lib/news.
Строки в файле описывают права доступа, предоставленные иностранным
главным ЭВМ. Каждая строка имеет следующий формат:
site read|xfer|both|no post|no [!exceptgroups]
Если клиент соединяется с NNTP портом, nntpd, пытается получать
полностью квалифицированное имя области из адреса IP обратным поиском.
- 335 -
Hostname клиента и адрес IP проверены против поля site каждого входа
в порядке, в котором они появляются в файле. Соответствия могут быть или
частичные или точные. Если вход соответствует точно, он применяется; если
соответствие частично, он применяется, только если не имеется никакого
другого соответствия. Пункт может быть определен одним из следующих
способов:
hostname Это - полностью квалифицированное имя области host. Если оно
соответствует каноническиому hostname клиента буквально, вход применяется,
и все последующие входы игнорируются.
IP address Это - адрес IP в точечной записи четверки. Если адрес IP клиента
соответствует этому, вход применяется, а все последующие входы
игнорируются.
domain name Это - имя области, заданное как *.domain. Если hostname клиента
соответствует имени области, вход соответствует.
network name Это - имя сети как определено в /etc/networks. Если сетевое число
адреса IP клиента соответствует сетевому числу, связанному с сетевым
именем, вход соответствует.
default Значение по умолчанию соответствует любому клиенту.
Входы с более общей спецификацией пункта должны быть определены
ранее.
Второе и третье поле описывают права доступа, предоставленные клиенту.
Второе детализирует права, чтобы отыскать новости, перемещая (read), и
передавать новости, выталкивая (xfer). Третье поле предоставляет клиенту
право отправить по почте статьи, то есть статьи с незавершенной
информацией заголовка, которая завершена программным обеспечением
новостей. Если второе поле содержит No, третье поле, игнорируется.
Четвертое поле необязательно, и содержит отделенный запятой список
групп, с отклоненным доступом для клиента.
Пример nntp файла доступа показывается ниже:
#
# by default, anyone may transfer news, but not read or post
compcun, команда, которая производит сжатый пакет. В качестве
альтернативы, Вы могли бы обеспечивать muncher, который использует gzip,
скажем gzipcun (чтобы быть чистым: Вы должны запись это непосредственно).
Вы должны удостовериться, что распаковщик на отдаленном пункте
исправлен, чтобы распознать файлы, сжатые с gzip.
Если отдаленный пункт не имеет команды распаковки, Вы можете
определить nocomp, который не делает никакое сжатие.
Последнее поле, transport, описывает транспорт, который нужно
использовать. Доступно несколько стандартных команд для различных
transports, чьи имена начинаются с via. Sendbatches передает им имя пункта
адресата в командной строке. Если batchparms вход не был /default/, он получает
имя пункта из поля site, удаляя все последующее, включая первую точку или
- 322 -
наклонную черту вправо. Если вход был /default/, используются имена каталога
в out.going.
Имеются две команды, которые используют uux, чтобы выполнить rnews на
отдаленной системе; viauux и viauuxz. Последняя устанавливает -z флаг для
(более старые версии) uux, чтобы отменить сообщения успеха для каждой
переданной статьи. Другая команда, viamail, посылает пакеты статей
пользователю rnews на отдаленной системе через почту.
Все команды из последних трех полей нужно расположть или в
out.going/site или в /usr/lib/news/bin/batch. Большинство их - команды, так, чтобы
Вы могли легко приспосабливать новые инструментальные средства для
ваших персональных потребностей. Они вызываются как трубопровод.
Список статей подается дозатору на стандартном вводе, который производит
пакет на стандартном выводе. Это канально передается в muncher, и так далее.
Типовой файл дан ниже.
# batchparms file for the brewery
# site | size |max |batcher |muncher |transport
#-------------+--------+-------+---------+-----------+-----------
/default/ 100000 22 batcher compcun viauux
swim 10000 10 batcher nocomp viauux
18.6 Устаревшие Новости
В Bnews, устаревание выполняться программой называемой expire, которая
принимает список newsgroups как аргументы, наряду с спецификацией времени
после которого статьи должны устареть.
Иногда, Вы можете хотеть сохранять статьи из некоторых групп даже после
того, как они устарели; например, Вы могли бы хотеть сохранить программы,
зарегистрированные в comp.sources.unix. Это называется архивирование. Explist
разрешает Вам отмечать группы для архивирования.
Вход в explist похож на это:
grouplist perm times archive
Grouplist - отделенный запятой список newsgroups, к которым вход
применяется. Иерархии могут быть определены префиксом имени группы,
необязательно конкатенированным ко всем. Например, для входа,
обращающегося к всем группам ниже comp.os, Вы могли бы вводить comp.os
- 323 -
или comp.os.all в grouplist.
При устаревании новости из группы, имя будет проверено против всех
входов в explist в данном порядке. Первый соответствующий вход
применяется. Например, чтобы отбросить большую часть comp после четырех
дней, кроме comp.os.linux.announce, который Вы хотите хранить в течение
недели, Вы просто должны иметь вход для последнего, который определяет
семи-дневный период окончания, сопровождаемый входом для comp, который
определяет четыре дня.
Поле perm детализирует, если вход применяется к уменьшенной, или
любой группе. Оно может принимать значения m, u, или x, которые
обозначают уменьшенный, неуменьшенный, или любой тип.
Третье поле, times, обычно содержит только одиночное число. Это - число
дней после которых статьи будут устаревать, если они не были назначены,
искусственная дата окончания в поле Expires в заголовке статьи. Обратите
внимание, что это - число дней подсчитывается с поступления в ваш пункт, а
не с даты регистрации.
Поле times может, однако, быть более сложно. Это может быть комбинация
до трех чисел, отделяемых от друг друга черточкой. Первое обозначает число
дней, которые должны пройти прежде, чем статья рассматривается
кандидатом на окончание. Редко полезно использовать значение отличное от
нуля. Второе поле - вышеупомянутое заданное по умолчанию число дней
после, которых оно будет устаревать. Третья часть - число дней после которых
статья будет устаревать безоговорочно, независимо от того, имеет ли она поле
Expires или нет. Если только среднее число дано, другие два берут значения по
умолчанию. Они могут быть определены, используя специальный /bounds/
входа, который описан ниже.
Четвертое поле, archive, обозначает, должен ли newsgroup быть
заархивирован, и где. Если никакого архивирования не предназначено,
должна использоваться черточка. Иначе, Вы либо используете полное имя
пути (указывающее на каталог), или знак (@). Знак обозначает заданный по
умолчанию каталог архивов, который должен то быть дан doexpire, используя
-a флаг в командной строке. Каталог архивов должен принадлежать news.
Когда doexpire архивирует статью из, скажем comp.sources.unix, он сохраняет ее
в каталоге comp/sources/unix ниже каталога архивов, создавая его если он не
существует. Каталог архивов непосредственно, однако, не будет создан.
Имеются два специальных входа в вашем explist файле, на который doexpire
полагается. Вместо списка newsgroups, они имеют ключевые слова /bounds/ и
/expired/. Вход /bounds/ содержит значения по умолчанию для трех значений
- 324 -
поля времен, описанного выше.
Поле /expired/ определяет, как долго C News будет содержать строки в
файле хронологии. Это необходимо, потому что C News не будет удалять
строку из файла хронологии, если соответствующая статья устарела, но будет
содержать ее в случае, если дубликат должен прибыть после этой даты.
Простой explist файл с довольно плотными интервалами истечения
воспроизведен ниже:
# keep history lines for two weeks. Nobody gets more than three months
/expired/ x 14 -
/bounds/ x 0-1-90 -
# groups we want to keep longer than the rest
comp.os.linux.announce m 10 -
comp.os.linux x 5 -
alt.folklore.computers u 10 -
rec.humor.oracle m 10 -
soc.feminism m 10 -
# Archive *.sources groups
comp.sources,alt.sources x 5 @
# defaults for tech groups
comp,sci x 7 -
# enough for a long weekend
misc,talk x 4 -
# throw away junk quickly
junk x 1 -
# control messages are of scant interest, too
control x 1 -
# catch-all entry for the rest of it
all x 2 -
С устареванием в C News, имеется ряд потенциальных проблем при
чистке. Например, ваш newsreader мог бы полагаться на третье поле файла
active, который содержит число самой низкой интерактивной статьи. При
истечении статьи, C News не модифицирует это поле. Если Вы хотите чтобы
это поле, представляло реальную ситуацию, Вы должны выполнить
программу, называемую updatemiin после каждого выполнения doexpire.
18.7 Разнообразные Файлы
- 325 -
Имеется ряд файлов, которые управляют поведением C News, но не
существенны для функционирования. Все они постоянно находятся в
/usr/lib/news. Мы опишем их кратко.
newsgroups Это - файл дополняющий active, который содержит список имен
newsgroup, наряду с кратким описанием основного предмета. Этот файл
автоматически модифицируется, когда C News получает сообщение
управления checknews (см. раздел 18.8).
localgroups если Вы имеете ряд локальных групп, таких что Вы не хотите,
чтобы C News жаловался относительно них, каждый раз когда Вы получаете
checknews сообщение, поместите их имена и описания в этом файле, точно так
же как они появились бы в newsgroups.
mailpaths Этот файл содержит адрес регулятора для каждой уменьшенной
группы. Каждая строка содержит имя группы, сопровождаемое адресом email
регулятора (отделеные меткой табуляции).
Два специальных входа обеспечиваются как значение по умолчанию. Они
базовые и межсетевые. Оба обеспечиваются --- в записи bang-path --- путем к
самому близкому базовому пункту, и пункту, который понимает RFC 822
адреса (user@host).
Вы не будете должны изменять межсетевой вход, если Вы имеете smail или
sendmail, потому что они понимают RFC 822 - адресацию.
Базовый вход используется всякий раз, когда пользователь отправляет по
почте к уменьшенной группе, чей регулятор не перечислен явно. Если имя
newsgroup -- alt.sewer, и базовый вход содержит path!%s, C News отправит по
почте статью к path!alt-sewer, надеясь, что базовая машина способна передать
статью. Чтобы выяснить который путь использовать, спросите
администрацию новостей в пункте, который передает Вам. Вы можете также
использовать uunet.uu.net!%s.
distributions Этот файл не файл C News, но он используются некоторыми
newsreaders, и nntpd. Он содержит список распределений, распознанных вашим
пунктом, и описанием (встроенных) возможностей. Например, Виртуальный
Пивоваренный завод имеет следующий файл:
world everywhere in the world
- 326 -
local Only local to this site
nl Netherlands only
mugnet MUGNET only
fr France only
de Germany only
brewery Virtual Brewery only
log Этот файл, содержит файл регистрации всех действий C News. Он
вызывается регулярно, выполняя newsdaily; копии старых регистрационных
файлов сохраняются в log.o, log.oo, и т.д.
errlog Это - файл регистрации всех сообщений об ошибках, созданных C News.
Он не включают плохие статьи, и т.д. Этот файл будет отправлен по почте к
newsmaster (usenet по умолчанию) автоматически newsdaily, если он не-пуст.
Errlog очищается newsdaily. Старые копии сохраняются в errlog.o и т. д.
batchlog Он регистрирует все выполнения sendbatches. Он обычно мало
интересен. Он также зависит от newsdaily.
watchtime Это - пустой файл, создаваемый каждый раз при выполнении
newswatch.
18.8 Сообщения Управления
Usenet протокол новостей знает специальный класс статей, которые
вызывают некоторые ответы или действия системы новостей. Они
называются сообщениями управления. Они распознаются присутствием поля
Control в заголовке статьи, которое содержит имя операции управления,
которую нужно выполнить. Имеются отдельные типы этих операций, которые
обрабатываются командами оболочки, расположенными в /usr/lib/news/ctl.
Большинство из них выполнит их действие автоматически во время
обработки статьи C News, без того, чтобы уведомить newsmaster. По
умолчанию, только checkgroups сообщения будут вручены newsmaster, но Вы
можете изменять это, редактируя команды.
18.8.1 Сообщение Отмена
Наиболее широко известное сообщение - отмена, которой пользователь
- 327 -
может отменять статью, посланную ранее. Оно действительно удаляет статью
из каталогов spool, если она существует. Сообщение отмены будет послано к
всем абонентам, которые получают новости из таких групп, независимо от
того, была ли статья замечена уже или нет. Нужно принять во внимание
возможность того, что первоначальная статья была отсрочена несмотря на
сообщение сокращения. Некоторые системы новостей позволяют
пользователям отменять сообщения другого человека; это - конечно
определенный минус.
18.8.2 Newgroup и rmgroup
Два сообщения имеют дело с созданием или удалением newsgroups - это
newgroup и rmgroup. Newsgroups ниже " обычной " иерархии могут быть
созданы только после того, как обсуждение и утверждение было проведено
среди Usenet читателей. Правила, обращающиеся к alt иерархии учитывают что
кое-что близко к анархии. Для подробной информации см. регулярные
регистрации в news.announce.newusers и news.announce.newgroups. Никогда не
посылайте newgroup или rmgroup сообщение самостоятельно, если Вы
определенно не знаете, что Вам позволено.
18.8.3 Checkgroups Сообщение
Checkgroups сообщения посылаются администраторами новостей, чтобы
для всех абонентов внутри сети синхронизировать их файлы active с фактами
Usenet. Например, коммерческие поставщики услуг Internet могли бы выпускать
такое сообщение к абоненту их заказчиков. Один раз в месяц "оффициальное"
checkgroups сообщение для главных иерархий зарегистрировано в
comp.announce.newgroups их регулятором. Однако, оно зарегистрировано, как
обычная статья, а не как управляющее сообщение. Чтобы выполнить
операцию checkgroups, сохраните эту статью в файл, скажем /tmp/check, удалите
все до начала сообщения управления непосредственно, и передайте это к
checkgroups команде, используя следующую команду:
# su news -c "/usr/lib/news/bin/ctl/checkgroups" < /tmp/check
Это модифицирует ваш newsgroups файл, добавляя группы, перечисленные
в localgroups. Старый newsgroups файл будет перемещаться в newsgroups.bac.
Обратите внимание, что регистрация сообщения локально редко будет
- 328 -
работать, потому что inews отказывается принимать это как статью.
Если C News находит несоответствия между списком checkgroups и файлом
active, это произведет список команд, которые модернизируют ваш пункт, и
сообщат это администратору новостей. Вывод обычно походит на это:
From news Sun Jan 30 16:18:11 1994
Date: Sun, 30 Jan 94 16:18 MET
From: news (News Subsystem)
To: usenet
Subject: Problems with your active file
Следующие newsgroups не допустимы и должны быть удалены.
alt.ascii-art
bionet.molbio.gene-org
comp.windows.x.intrisics
de.answers
Вы можете делать это, выполняя команды:
/usr/lib/news/bin/maint/delgroup alt.ascii-art
/usr/lib/news/bin/maint/delgroup bionet.molbio.gene-org
/usr/lib/news/bin/maint/delgroup comp.windows.x.intrisics
/usr/lib/news/bin/maint/delgroup de.answers
Следующие newsgroups отсутствовали.
comp.binaries.cbm
comp.databases.rdb
comp.os.geos
comp.os.qnx
comp.unix.user-friendly
misc.legal.moderated
news.newsites
soc.culture.scientists
talk.politics.crypto
talk.politics.tibet
- 329 -
Когда Вы получаете такое сообщение от вашей системы новостей, не
отбрасывайте его вслепую. В зависимости от того, кто послал checkgroups
сообщение, оно может испытывать недостаток нескольких групп или даже
всех иерархий; так что Вы должны быть осторожны относительно удаления
любых групп. Если Вы находите группы, перечисленные как отсутствующие и
Вы хотите иметь их в вашем пункте, Вы должны добавить их, используя
addgroup команду. Сохраните список отсутствующих групп в файле и
передайте его следующей небольшой команде:
#!/bin/sh
cd /usr/lib/news
while read group; do
if grep -si "^$group[[:space:]].*moderated" newsgroup; then
mod=m
else
mod=y
fi
/usr/lib/news/bin/maint/addgroup $group $mod
done
18.8.4 sendsys, version, и senduuname
В заключение, имеются три сообщения, которые могут использоваться,
чтобы выяснить относительно топологии сети. Это - sendsys, version, и senduu-
имя. Они заставляют C News возвращать отправителю файл sys, версию
программного обеспечения, и вывод uuname (1), соответственно. C News -
очень лаконично относительно сообщения version; оно возвращает просто
неукрашенное "C".
Снова, Вы никогда не должны выдавать такое сообщение, если Вы не
уверенны, что это не может повредить вашей (региональной) сети. Ответы
sendsys сообщениям могут быстро положить сеть UUCP.
18.9 C News в NFS Среде
Простой способ распределять новости внутри локальной сети состоит в
том, чтобы хранить все новости на центральном host, и экспортировать
релевантные каталоги через NFS, так, чтобы newsreader мог просматривать
- 330 -
статьи непосредственно. Преимущество этого метода над NNTP - то, что
непроизводительные затраты, заключаемые в поиске и продевании нитки
статей являются значительно ниже. NNTP, с другой стороны, побеждает в
разнородной сети, где оборудование изменяется широко среди главных ЭВМ,
или где пользователи не имеют эквивалентных прав на машине сервера.
При использовании NFS, статьи, зарегистрированные на локальном host
должны быть посланы к центральной машине. Также, Вы могли бы хотеть
защищать вашу область spool новостей, экспортируя их только для чтения, что
требует пересылки к центральной машине, также.
C News обрабатывает это очевидно. Когда Вы отправляете по почте
статью, ваш newsreader обычно вызывает inews, чтобы ввести статью в систему
новостей. Эта команда выполняет ряд проверок на статье, завершает
заголовок, и проверяет файловый сервер в /usr/lib/news. Если этот файл
существует и содержит hostname отличный от имени локального host, inews
вызывается на тот host сервер через rsh. Так как inews команда использует ряд
двоичных команд и файлов поддержки от C News, Вы должны также иметь C
News, установленный локально, или устанавливать программное обеспечение
новостей из сервера.
Чтобы rsh вызов работал правильно, каждый пользователь должен иметь
эквивалентный вход на систему сервера, то есть вход котороый она может
регистрировать без запроса о пароле.
Удостоверитесь, что hostname, данный в сервере буквально соответствует
выводу команды hostname (1) на машине сервера, иначе C News будет
зацикливаться навсегда при попытке получить статью.
18.10 Инструментальные средства Сопровождения и Задачи
Несмотря на сложность C News, жизнь администратора новостей может
быть довольно проста, потому что C News обеспечивает Вас расширенным
разнообразием инструментальных средств сопровождения. Некоторые из них
предназначены, чтобы быть выполненными регулярно из cron, подобно
newsdaily. Использование этих команд значительно уменьшает ежедневную
заботу и подачу требований вашей установки C News.
Если не установлено иначе, эти команды расположены в
/usr/lib/news/bin/maint. Обратите внимание, что Вы должны стать пользователем
перед вызовом этих команд. При выполнении их как супер-пользователь эти
файлы могут стать недоступными C News.
- 331 -
newsdaily Имя уже говорит: это выполняется один раз в день. Это - важная
команда, которая помогает Вам хранить регистрационные файлы малыми,
сохраняя копии каждого из последних трех выполнявшихся. Она также
пробует считывать любые аномалии, подобно несвежим пакетам во входящих
и исходящих каталогах, регистрации в неизветных группах, и т.д.
Возникающие в результате сообщения об ошибках будут отправлены по почте
к newsmaster.
newswatch Это - команда, которая должна быть выполнена регулярно, чтобы
искать аномалии в системе новостей, один раз в час или около этого. Она
предназначена обнаруживать проблемы, которые будут иметь
непосредственный эффект на оперативности вашей системы новостей и
отправлять по почте отчет проблемы к newsmaster. Отмечаемые вещи
включают несвежие файлы блокировки, которые не удалены, автоматические
входные пакеты, и недостаток дискового пространства.
addgroup Добавляет группу к вашему пункту локально. Соответствующий
вызов
addgroup groupname y|n|m|=realgroup
Второй аргумент имеет то же самое значение как флаг в файле active, что
любой может отправить по почте к группе (y), что никто не может отправить
по почте (n), что она уменьшена (m), или что она является специальной для
другой группы (=realgroup).
Вы могли бы также использовать addgroup, когда первые статьи в недавно
созданной группе прибывают раньше чем сообщение управления newgroup,
которое предназначено, чтобы создать ее.
delgroup nозволяет Вам удалять группу локально. Вызовите это как
delgroup groupname
Вы все еще должны удалить статьи, которые остаются в каталоге spool. В
качестве альтернативы, Вы могли бы оставлять это натуральному ходу
событий (a.k.a. Expire) чтобы удалять их.
addmissing Добавляет отсутствующие статьи к файлу хронологии. Выполните
- 332 -
эту команду, когда имеются статьи, которые, кажется, зависают навсегда.
newsboot Эта команда должна быть выполнена при начальной загрузке
системы. Она удаляет любые файлы блокировки, оставленные, когда
обработчики новостей уничтожались при закрытии системы, и закрывает и
выполняет любые пакеты, оставленные из NNTP соединений, которые были
завершены при закрытии системы.
newsrunning Это постоянно находится в /usr/lib/news/bin/input, и может
использоваться, чтобы отключить непакетирование входящих новостей,
например в течение работы. Вы можете выключить непакетирование вызовом
/usr/lib/news/bin/input/newsrunning off
Оно включается, используя on вместо off.
19. Описание NNTP
19.1 Введение
Из-за различного сетевого используемого транспорта, NNTP
обеспечивает(предусматривает) значительно отличные подходы к обмену
новостей C News. NNTP замещает " Сетевой Протокол передачи Новостей '', и
неспецифический пакет программ.
Различные команды позволяют клиентуре отыскивать, посылать и
отправлять по почте статьи. Различие между посылкой и регистрацией - то,
что последний может включать статьи с незавершенной информацией
заголовка. Поиск статьи может использоваться клиентурой передачи новостей
также как newsreaders. Это делает NNTP превосходным средством для
обеспечения доступа к новостям для клиентуры в локальной сети.
NNTP также обеспечивает активый и пассивный способы передачи
новостей, которые называются " pushing " и " pulling ". Выталкивание (pushing) - в
основном тоже что C News ihave/sendme протокол. Клиент предлагает статью
серверу через " IHAVE
указывает, имеет ли он уже статью, или если она требуется. Если так, клиент
посылает статью, завершенную одиночной точкой в отдельной строке.
Выталкивание новостей имеет один недостаток - это вызывает тяжелую
загрузку в системе сервера, так как она должна искать в базе данных
- 333 -
хронологий каждую одиночную статью.
Противоположная методика - перемещать(pulling) новости. Клиент
запрашивает список всех доступных статей из группы, которые прибыли после
заданной даты. Этот запрос выполняется командой NEWNEWS. Из
возвращенного списка идентичности сообщения, клиент выбирает те статьи,
которые он еще не имеет, используя команду ARTICLE для каждой из них по
очереди.
Проблема с перемещением новостей состоит в том, что требуется плотное
управление сервером, которое позволяет клиенту запрашивать группы и
распределения. Например, оно должно удостовериться, что никакой
конфиденциальный материал из локальных newsgroups не послан
несанкционированной клиентуре.
Имеется также ряд команд удобства для newsreaders, которые разрешают им
отыскивать заголовок статьи и тело отдельно, или даже одиночные строки
заголовка из промежутка статей. Это допускает Вам, хранить все новости
относительно центрального host, со всеми пользователями сетьи, используя
nntp-основанные клиентские программы для чтения и регистрации. Это -
альтернатива к экспорту каталогов новостей через NFS, который описан в
главе 18 ..
Полная проблема NNTP состоит в том, что она позволяет хорошо
осведомленному специалисту вставлять статьи в поток новостей с ложной
спецификацией отправителя. Это называется новостями faking. Расширение к
NNTP позволяет требовать установления подлинности пользователя для
некоторых команд.
Имеется ряд доступных NNTP пакетов. Один из наиболее широко
известных - NNTP daemon, также известный как реализация ссылки.
Первоначально, он написан Stan Barber и Phil Lapsley, чтобы иллюстрировать
подробности RFC 977. Самая современная версия - nntpd-1.5.11, описана
ниже. Вы можете также получить исходники и компилировать ее
непосредственно.
Nntpd пакет состоит из сервера и двух клиентов для перемещения и
выталкивания новостей, соответственно, также как inews замены. Они живут в
Bnews среде, но с небольшими дополнениями, они будут счастливы с C news,
также. Однако, если Вы планируете использовать NNTP для больше чем
предложения newsreaders доступа к вашему серверу новостей, реализация
ссылки не есть действительно опция. Мы следовательно обсудим только
NNTP daemon содержащийся в nntpd пакете, и не учтем клиентские программы.
- 334 -
19.2 Установка NNTP сервера
NNTP сервер называется nntpd, и может компилироваться двумя
способами, в зависимости от ожидаемой загрузки на системе новостей. Не
имеется никаких откомпилированных версий, из-за некоторых пункт-
специфических значений по умолчанию, которые являются жестко
закодированными в выполнимую программу. Вся конфигурация выполнена
через макркоманду definines в common/conf.h.
Nntpd может быть конфигурирован или как автономный сервер, который
запускается при начальной загрузке системы из rc.inet2, или как daemon
управляемый inetd. В последнем случае Вы должны иметь следующий вход в
/etc/inetd.conf:
nntp stream tcp nowait news /usr/etc/in.nntpd nntpd
Если Вы конфигурируете nntpd как автономный, удостовертеь, что любая
такая строка в inetd.conf прокомментирована. В любом случае, Вы должны
удостовериться, что имеется следующая строка в /etc/services:
nntp 119/tcp readnews untp # Network News Transfer Protocol
Чтобы временно сохранять любые входящие статьи, и т.д, nntpd также
нуждается в a каталоге .tmp в вашем spool новостей. Вы должны создать его
используя
# mkdir /var/spool/news/.tmp
# chown news.news /var/spool/news/.tmp
19.3 Ограничение NNTP Доступа
Доступ к NNTP ресурсам управляется файлом nntp access в /usr/lib/news.
Строки в файле описывают права доступа, предоставленные иностранным
главным ЭВМ. Каждая строка имеет следующий формат:
site read|xfer|both|no post|no [!exceptgroups]
Если клиент соединяется с NNTP портом, nntpd, пытается получать
полностью квалифицированное имя области из адреса IP обратным поиском.
- 335 -
Hostname клиента и адрес IP проверены против поля site каждого входа
в порядке, в котором они появляются в файле. Соответствия могут быть или
частичные или точные. Если вход соответствует точно, он применяется; если
соответствие частично, он применяется, только если не имеется никакого
другого соответствия. Пункт может быть определен одним из следующих
способов:
hostname Это - полностью квалифицированное имя области host. Если оно
соответствует каноническиому hostname клиента буквально, вход применяется,
и все последующие входы игнорируются.
IP address Это - адрес IP в точечной записи четверки. Если адрес IP клиента
соответствует этому, вход применяется, а все последующие входы
игнорируются.
domain name Это - имя области, заданное как *.domain. Если hostname клиента
соответствует имени области, вход соответствует.
network name Это - имя сети как определено в /etc/networks. Если сетевое число
адреса IP клиента соответствует сетевому числу, связанному с сетевым
именем, вход соответствует.
default Значение по умолчанию соответствует любому клиенту.
Входы с более общей спецификацией пункта должны быть определены
ранее.
Второе и третье поле описывают права доступа, предоставленные клиенту.
Второе детализирует права, чтобы отыскать новости, перемещая (read), и
передавать новости, выталкивая (xfer). Третье поле предоставляет клиенту
право отправить по почте статьи, то есть статьи с незавершенной
информацией заголовка, которая завершена программным обеспечением
новостей. Если второе поле содержит No, третье поле, игнорируется.
Четвертое поле необязательно, и содержит отделенный запятой список
групп, с отклоненным доступом для клиента.
Пример nntp файла доступа показывается ниже:
#
# by default, anyone may transfer news, but not read or post