Inetd супер-сервер

Часто, услуги  предоставляются  так  называемыми  daemons. Daemon   является программой, которая открывает некоторый порт, и связь. Если это   происходит, это создает дочерний процесс, который  принимает  связь,  в  то   время  как основной продолжает ждать дальнейших запросов.

Таким образом, почти вся  Un*x  инсталляция  запускает  "  супер  сервер  ", который создает гнезда для ряда услуг, и слушает на  них   одновременно  при использовании  отобранного  системного  вызова  (2).   Когда  отдаленный  хост запрашивает одну из услуг, супер-сервер замечает   этот  и  порождает  другой сервер, точно установленный для этого порта.   
Супер-сервер, обычно используемый - inetd, Internet Daemon. Это   начинается при начальной  загрузке  системы,  и  берет  список  услуг,  к   которым  он обращается из файла запуска, именованной /etc/inetd.conf.  В   дополнение  к тем вызываемым серверам, там есть ряд тривиальных услуг,   которые  являются на сформировавшимся inetd, неппсрежственно  вызываемым   внутренние  услуги. Они включают chargen  который  просто  генерирует  ряд
знаков,  и  daytime который возвращают system's idea   
Запись в  этой  картотеке  состоит  из  единственной  линии,   сделанной  из следующей области:
service type protocol wait user server cmdline
Значение каждой области следующие:
Service дает сервисное имя. Service name должно быть  переведено  к   номеру порта, просматривая в файле services.

  • type  определяет  тип  гнезда,  любой  поток    (для    связь-   ориентируемых протоколов) или  dgram  (для  датаграмных  протоколов).  TCP   основанна  на услугах,  которые  должны  всегда  использовать  поток,  в   то  время   как UDP-основанные услуги должны всегда использовать dgram.   
  •   Protocol называется протоколом переноса,  используемым   обслуживанием.  Это  олжно быть подходящим названием протокола, найденное в   файле  протоколов, также  объяснено ниже.
  •   wait эта опция применяется только на dgram гнездах. Это  может  быть   также wait или nowait. Если wait определен, то inetd только выполнит один   сервер для точно  установленного  порта  в  любое  время.  Иначе,  это   немедленно продолжит слушать на порте после извлечения сервера.   Это полезно для "единственно - связнных  "  серверов,  которые   читают  все входящие датаграммы, и затем выходят. Большинство RPC серверов имеет  этот тип и должны следовательно  точно  определить  wait.   Противоположный  тип, "многопоточные " серверы, позволяет  безграничному   числу  образцов,  чтобы быть запущенными одновременно; но это редко когда   используется. Эти серверы должны точно определить nowait.

    Гнезда потока должны всегда использовать nowait.
  • User это является идентичностью входа в систему  пользователя,   объясненный ниже. Это будет часто root user, но  некотпрые" услуги  могут   использовать различные  account.  Это  -  очень  хорошая  идея  к   применению   принципа наименьшего количества привилегии здесь, который   заявляет что Вы не  должны запускать команду ниже привилегированного   account если программа не требует этого для присущего функционирования. Для   примера,  NNTP  сервер  новостей будет запускать новости, пока ус риск   защиты (типа tftp, или finger)  будут управляться как nobody.
  •   server дает полный путь программы сервера, которая будет выполнена.
  •   cmdline это- командная строка, которую  нужно  запустить  на   сервере.  Она включает аргумент 0, который является названием  команды.   Обычно,  это  не будет названием программы сервера, если программа  ведет   себя  по-другому, когда вызывается с различным именем.

Эта область пуста для внутренних услуг.

Это  часто   выполняется из соображений безопасности, потому что  может  использоваться
нападавшими для того, чтобы получить имя пользовател и на вашей системе.   
Tftp имзображено прокомментированным также. Tftp  осуществляет   Примитивный Протокол Передачи файла, который  позволяет  передавать  любые   всемирно  - читаемые файлы из вашей системы без пароля. Это особенно вредно   для  файла  /etc/passwd, даже более того, когда Вы не используйте теневой   пароль.

TFTP обычно используется клиентурой без диска и X терминалами при   загрузке их кода из сервера при начальной загрузке. Если Вы должны   запустить  tftpd для этой проблемы, удостоверитесь,  что  ограниченная  область  действия  к директориям клиентов будет восстановлена из файлов,   добавляя  те  названия каталогов к команде tftpd's линии. Это показано  во   второй  tftp  линии  в примере.