АЛЬТ ЛИНУКС СПТ 6.0 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 2010

advertisement
УТВЕРЖДЕН
АЛЬТ ЛИНУКС СПТ 6.0
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
Инв. № подл.
Подп. И дата
Взам. инв. №
Инв. № дубл.
Подп. и дата
Листов 136
2010
Литера
2
1. АННОТАЦИЯ
Данное руководство содержит инструкции по установке и эксплуатации операционной системы
Альт Линукс СПТ 6.0. Рассматриваются вопросы настройки и использования операционной системы
и входящих в неё компонентов.
3
Содержание
Аннотация..........................................................................................................................................................2
1. Общие сведения об ОС Альт Линукс СПТ 6.0...........................................................................................7
1.1. Описание и область применения операционной системы.................................................................7
1.2. Основные функции ОС Альт Линукс СПТ 6.0....................................................................................7
1.3. Дополнительные возможности операционной системы (виртуализация).......................................7
1.3.1. Виртуализация в операционных системах...................................................................................7
1.3.2. Виртуализация сервисов................................................................................................................8
1.3.3. Высокая надёжность и гарантированное обслуживание............................................................8
1.3.4. Ограничение ресурсов...................................................................................................................9
1.3.5. Гарантированные ресурсы.............................................................................................................9
1.3.6. Изоляция ergo защищённость (default deny)..............................................................................10
1.3.7. Программные и аппаратные средства ограничения ресурсов.................................................10
1.3.8. Защита интерфейса управления..................................................................................................11
1.3.9. Консолидация серверов...............................................................................................................11
1.3.10. Динамическое перераспределение ресурсов...........................................................................12
1.4. Программный комплекс проверки целостности системы Osec.......................................................12
1.5. Характеристики операционной системы...........................................................................................12
1.5.1. Основные свойства операционной системы..............................................................................12
1.5.2. Основные характеристики ОС....................................................................................................13
1.5.3. Основные параметры для нормального функционирования ОС.............................................13
1.5.4. Технические требования к конфигурации компьютера............................................................13
1.6. Состав ОС Альт Линукс СПТ 6.0.......................................................................................................14
1.6.1. Операционная среда.....................................................................................................................14
1.6.2. Операционная система................................................................................................................15
1.6.3. Ядро ОС........................................................................................................................................15
1.6.4. Системные библиотеки................................................................................................................15
1.6.5. Встроенные средства защиты информации (КСЗ)....................................................................15
1.7. Системные приложения......................................................................................................................15
1.7.1. Программные серверы.................................................................................................................15
1.7.2. Web-серверы.................................................................................................................................15
1.7.3. Системы управления базами данных.........................................................................................16
1.7.4. Прочие серверные приложения и программы...........................................................................16
1.7.5. Интерактивные рабочие среды...................................................................................................16
1.8. Прочие системные приложения..........................................................................................................16
1.9. Документация в составе......................................................................................................................17
1.10. Состав дистрибутива изделия...........................................................................................................17
2. Общие принципы работы ОС.....................................................................................................................18
2.1. Процессы и файлы...............................................................................................................................19
2.1.1. Процессы функционирования ОС..............................................................................................19
2.1.2. Файловая система ОС..................................................................................................................19
2.1.3. Организация файловой структуры.............................................................................................20
2.1.4. Иерархическая организация файловой системы.......................................................................20
2.1.5. Имена дисков и разделов.............................................................................................................21
2.1.6. Разделы, необходимые для работы ОС......................................................................................22
2.1.7. Утилиты для работы с файловой системой...............................................................................22
2.1.7.1. mkfs........................................................................................................................................22
4
2.1.7.2. fsck.........................................................................................................................................24
2.1.7.3. df.............................................................................................................................................35
2.1.7.4. du............................................................................................................................................35
2.1.7.5. find..........................................................................................................................................36
2.1.7.6. locate......................................................................................................................................39
2.1.7.7. which......................................................................................................................................39
2.1.7.8. cd............................................................................................................................................39
2.1.7.9. pwd.........................................................................................................................................40
2.1.7.10. mkdir....................................................................................................................................40
2.1.7.11. ls...........................................................................................................................................41
2.1.7.12. cp..........................................................................................................................................45
2.1.7.13. mv.........................................................................................................................................45
2.1.7.14. rm..........................................................................................................................................46
2.1.7.15. cat.........................................................................................................................................47
2.1.7.16. more......................................................................................................................................48
2.1.7.17. ln...........................................................................................................................................52
2.1.7.18. file.........................................................................................................................................52
2.1.7.19. chmod...................................................................................................................................53
2.1.7.20. chown...................................................................................................................................55
2.1.7.21. umask....................................................................................................................................56
2.1.7.22. chattr.....................................................................................................................................56
2.1.7.23. lsattr......................................................................................................................................58
2.2. Общие принципы защиты данных и программ................................................................................58
2.2.1. Модель защиты ОС Альт Линукс СПТ 6.0................................................................................58
2.2.2. Функции КСЗ ОС Альт Линукс СПТ 6.0...................................................................................60
2.2.3. Secure Shell (SSH).........................................................................................................................60
2.3. Варианты создания АРМ на основе ОС Альт Линукс СПТ 6.0.......................................................61
2.4. Дополнительная документация к ОС Альт Линукс СПТ 6.0...........................................................61
3. Установка OC Альт Линукс СПТ 6.0.........................................................................................................62
3.1. Начало установки: загрузка системы.................................................................................................62
3.2. Альтернативные способы установки.................................................................................................63
3.2.1. Способы первоначальной загрузки............................................................................................63
3.2.1.1. Создание загрузочного flash-диска.....................................................................................63
3.2.2. Источники установки...................................................................................................................64
3.2.2.1. Запуск сетевой установки....................................................................................................64
3.2.2.2. Установка с жёсткого диска.................................................................................................65
3.3. Последовательность установки..........................................................................................................65
3.4. Язык.......................................................................................................................................................66
3.5. Лицензионный договор.......................................................................................................................67
3.6. Дата и время.........................................................................................................................................68
3.7. Подготовка диска.................................................................................................................................70
3.7.1. Выбор профиля разбиения диска................................................................................................70
3.7.2. Автоматические профили разбиения диска...............................................................................71
3.7.3. Ручной профиль разбиения диска..............................................................................................71
3.8. Установка системы...............................................................................................................................72
3.9. Сохранение настроек...........................................................................................................................74
3.10. Установка загрузчика.........................................................................................................................75
3.11. Настройка сети...................................................................................................................................76
3.12. Администратор системы...................................................................................................................77
5
3.13. Системный пользователь...................................................................................................................78
3.14. Завершение установки.......................................................................................................................79
4. Загрузка операционной системы................................................................................................................80
4.1. Настройка загрузки..............................................................................................................................80
4.2. Загрузка нескольких операционных систем......................................................................................80
4.3. Настройка загрузчика..........................................................................................................................81
4.4. Стартовые сценарии............................................................................................................................81
4.5. Загрузка операционной системы........................................................................................................83
4.6. Завершение работы ОС.......................................................................................................................83
4.6.1. Команда shutdown.........................................................................................................................83
4.6.2. Команда poweroff..........................................................................................................................84
5. Система управления пакетами APT...........................................................................................................85
5.1. Введение: пакеты, зависимости и репозитории................................................................................85
5.2. Источники программ (репозитории)..................................................................................................86
5.2.1. Репозитории..................................................................................................................................86
5.2.2. Репозитории Sisyphus..................................................................................................................88
5.3. Поиск пакетов.......................................................................................................................................88
5.4. Установка или обновление пакета......................................................................................................89
5.5. Удаление установленного пакета.......................................................................................................90
5.6. Обновление всех установленных пакетов.........................................................................................91
6. Работа с наиболее часто используемыми компонентами........................................................................92
6.1. Командные оболочки (интерпретаторы)............................................................................................92
6.1.1. Командная оболочка Bash............................................................................................................92
6.1.2. Базовые команды оболочки Bash................................................................................................93
6.2. Текстовый редактор Vi.........................................................................................................................95
6.2.1. Открыть/создать файл..................................................................................................................95
6.2.2. Перемещение по файлу...............................................................................................................96
6.2.3. Редактирование файла.................................................................................................................96
6.2.4. Запись/выход.................................................................................................................................97
6.2.5. Коэффициент повторения............................................................................................................97
6.3. Редактор VIM.......................................................................................................................................98
6.3.1. Режимы работы............................................................................................................................98
6.3.2. Основные возможности...............................................................................................................98
6.3.3. Конфигурация.............................................................................................................................100
6.4. xinetd...................................................................................................................................................100
6.4.1. Параметры..................................................................................................................................101
6.4.2. Управление xinetd.......................................................................................................................102
6.4.3. Файлы..........................................................................................................................................103
6.5. Crontab.................................................................................................................................................103
6.5.1. Примеры......................................................................................................................................105
6.5.2. Нестандартные возможности....................................................................................................106
7. Общие правила эксплуатации..................................................................................................................107
7.1. Включение компьютера.....................................................................................................................107
7.2. Выключение компьютера..................................................................................................................107
8. Лицензии....................................................................................................................................................108
8.1. Стандартная Общественная Лицензия Ограниченного Применения (GNU LGPL) в переводе на
русский язык..............................................................................................................................................108
8.2. Стандартная Общественная Лицензия Ограниченного Применения (GNU LGPL) на английском
языке (оригинал).......................................................................................................................................118
6
8.3. Лицензия на свободную документацию (GNU FDL) в переводе на русский язык.....................125
8.4. Лицензия на свободную документацию (GNU FDL) на английском языке (оригинал).............131
7
2. ОБЩИЕ СВЕДЕНИЯ ОБ ОС АЛЬТ ЛИНУКС СПТ 6.0
2.1. Описание и область применения операционной системы
ОС Альт Линукс СПТ 6.0, далее по тексту ОС, представляет собой совокупность интегрированных
программных продуктов, созданных на основе операционной системы Linux, и является на данный
момент мощнейшим альтернативным средством замены серверных продуктов компании Microsoft.
Основой интеграции изделия является дистрибутив ALT Linux 6.0 фирмы Альт Линукс, созданного
на основе открытых исходных кодов в соответствии с лицензией GNU GPL (GNU General Public License).
ОС Альт Линукс СПТ 6.0 предназначена для обеспечения выполнения программ в защищённой
среде и представляет собой совокупность программных средств и эксплуатационной документации.
ОС предназначена для группового и корпоративного использования, автоматизации информационных, конструкторских и производственных процессов предприятий (организаций, учреждений) всех
возможных типов и направлений.
2.2. Основные функции ОС Альт Линукс СПТ 6.0
ОС обеспечивает обработку, хранение и передачу информации в круглосуточном режиме эксплуатации.
В зависимости от конфигурации, сервер на основе ОС Альт Линукс СПТ 6.0, может обслуживать
процессы в пределах одной компьютерной системы или процессы на других машинах через каналы
передачи данных или сетевые соединения.
Встроенные средства защиты информации (СЗИ) изделия обеспечивают выполнение функций защиты информации в объёме требований 5 класса защищённости документа «РД. СВТ. Защита от НСД
к информации» (Гостехкомиссия России, 1992), что даёт возможность использования ОС для защиты
конфиденциальной информации и программ служебного назначения.
2.3. Дополнительные
(виртуализация)
2.3.1.
возможности
операционной
системы
Виртуализация в операционных системах
Виртуализация в операционных системах понимается широко и разнообразно. Если пробовать выделить общее, то речь всегда идёт о запуске в той или иной степени полноценной операционной системы (далее ОС), работающей в рамках другой ОС (или в гипервизоре: специализированной ОС, которая только и умеет, что обеспечивать работу других ОС внутри себя). Такую виртуализованную ОС
называют чаще всего гостевая ОС (а также виртуальное окружение и др.), а ОС, внутри которой выполняется гостевая, – хост-системой (также аппаратный узел, Hardware Node). Виртуальное окружение, внутри которого выполняется программа, обычно неотличимо для нее от невиртуализованной
ОС. Здесь мы не будем подробно рассматривать разные технологии виртуализации, для этого лучше
обращаться к специальным источникам.
В контексте системного администрирования наиболее существенны два свойства любой технологии виртуализации. Первое состоит в том, что виртуализация вводит промежуточный уровень между
оборудованием (аппаратным обеспечением) и программным обеспечением. Использование этого
8
уровня даёт администратору возможность гибко управлять распределением аппаратных ресурсов
между параллельно выполняющимися программами. Второе – помещение программ в виртуальное
окружение довольно надёжно изолирует их от всех прочих программ, исполняющихся на этом же физическом оборудовании вне данного окружения. Тем самым радикально снижается вероятность побочного влияния работы одних программ на работу других, в том числе снижается вероятность атак,
построенных на подобных побочных взаимодействиях.
2.3.2.
Виртуализация сервисов
Традиционный подход к размещению сервисов состоит в том, что на одном физическом сервере работает одна операционная система, в рамках которой выполняются несколько системных служб,
предоставляющих те или иные сервисы.
У нескольких задач, выполняющихся в рамках одной ОС (иначе говоря, в разделяемой среде), всегда есть возможности для взаимодействия, поскольку ОС именно для организации такого взаимодействия и предназначена. Кроме того, в разделяемой среде задачи совместно пользуются общими интерфейсами (файловая система, структуры ядра) и в конечном итоге общими аппаратными ресурсами,
что открывает дорогу побочным взаимодействиям. В случае независимых сервисов подобное взаимодействие равнозначно помехам и нарушению работы.
В UNIX-системах, при разработке которых многозадачность являлась одним из важнейших приоритетов, уже присутствует комплекс средств для решения задач изоляции и контроля. К подобным средствам относятся, например, системный вызов chroot(), обеспечивающий изоляцию на уровне файловой системы, во FreeBSD существует также технология jail, дополнительно к этому ограничивающая
доступ к структурам ядра. В последних версиях ядра Linux реализована поддержка аппаратной паравиртуализации kvm (применимо в том случае, если ее поддерживает процессор). Однако стандартные
средства UNIX-систем не решают всех проблем совместного размещения сервисов.
Примечание: Проще говоря, в разделяемой среде работает логика: «кто успел, тот и съел». Поэтому в ситуации, когда критически важна работа нескольких сервисов, в особенности требовательных к
аппаратным ресурсам, работа в рамках одной разделяемой среды (ОС) может быть нежелательна.
Путь разрешения обозначенных проблем – использовать средства виртуализации, чтобы исключить
возможности побочного взаимодействия и получить дополнительную к средствам ОС точку контроля
за потреблением аппаратных ресурсов. Так, в последнее время нормой постепенно становится размещение нескольких сервисов в рамках одного сервера не в одной и той же ОС, а в отдельных виртуальных окружениях. Далее мы будем называть такое виртуальное окружение с работающей в нём системной службой виртуальным контейнером.
С точки зрения задачи виртуализации сервисов не принципиально, какая конкретно технология
виртуализации выбрана для создания контейнера. При большой вычислительной нагрузке это вряд ли
может быть виртуальная машина, эмулирующая все оборудование компьютера, но вполне может использоваться одна из систем с гипервизором. Для UNIX-систем может быть весьма удобно применять
одну из технологий виртуализации на уровне ОС, доводящих средства изоляции и контроля UNIX до
уровня, достаточного для организации полноценных виртуальных окружений.
2.3.3.
Высокая надёжность и гарантированное обслуживание
Во многих областях обслуживания абонентов критически важно обеспечивать постоянную работу
сервиса, минимизировать простои из-за неполадок или управляться с большим потоком запросов, чтобы они не приводили к нарушению работы сервиса. Системы, обладающие техническими характеристиками для выполнения этих условий, называют системами высокой надёжности (high availability
9
systems). Помещение сервиса в виртуальный контейнер можно использовать для повышения надёжности его работы.
2.3.4.
Ограничение ресурсов
Примечание: Аппаратные ресурсы, доступные виртуальным контейнерам, должны быть всегда
меньше аппаратных ресурсов всей системы.
Бывают ситуации, особенно при работе под большой нагрузкой, когда затребованные сервисом ресурсы настолько велики, что могут привести к неработоспособности самой операционной системы.
Средствами виртуального окружения можно ограничить верхний предел ресурсов системы, выделяемых сервису в рамках виртуального контейнера.
Т. е. технология виртуализации применяется в данном случае как средство контроля ресурсов, потребляемых отдельной задачей, и обеспечивает не превышение этих ресурсов (поскольку задача не
имеет прямого доступа к оборудованию). Эту задачу большинство средств виртуализации решает
весьма надёжно.
Такой подход повышает надёжность системы, поскольку гарантирует операционную систему от неработоспособности по причине превышения ресурсов со стороны сервиса. Однако этот метод, естественно, не может гарантировать от сбоев самого сервиса, вызванных, например, большим потоком
запросов.
Помещение сервиса в виртуальный контейнер позволяет минимизировать время простоя даже в ситуации сбоя виртуального контейнера из-за превышения ресурсов, поскольку потребуется только
восстановить виртуальный контекст, что в среднем быстрее, чем перезагрузка всего сервера.
Таким образом, даже в случае размещения на сервере только одного сервиса, оправдано его помещение в виртуальный контейнер.
2.3.5.
Гарантированные ресурсы
Примечание: Аппаратные ресурсы, доступные виртуальному контейнеру, должны быть гарантированно больше некоторого минимального значения.
В ряде случаев необходимо предоставить клиентам сервиса некоторые гарантии качества обслуживанияш (QoS, quality of service). Примером такой ситуации может служить телефонный разговор: после соединения клиент получает гарантию, что во время разговора не закончатся ресурсы канала связи и разговор не прервётся. Другой пример, уже из области системного администрирования: весьма
желательно гарантировать, что даже при максимальной нагрузке на сервере (в том числе в ситуации
DoS-атак), у сервиса SSH будет достаточно ресурсов, чтобы обеспечить удалённый вход на сервер системного администратора, который мог бы принять срочные меры.
Чтобы обеспечить качество обслуживания для сервиса, администратору необходимо гарантировать
достаточный объем аппаратных ресурсов для этого сервиса, т. е. исключить ситуации сбоя сервиса изза физической нехватки ресурсов в системе.
И здесь можно использовать виртуализацию сервисов. Если сервис работает в виртуальном контейнере, то гарантия минимального уровня ресурсов сводится к тому, что процессы, выполняемые вне
данного контейнера, в сумме не затребуют больше ресурсов, чем разность между объемом ресурсов
системы и ресурсами данного контейнера.
Так, если в системе параллельно выполняется несколько сервисов, каждый из которых помещён в
отдельном виртуальном контейнере, то задача администратора – ограничить ресурсы каждого контей-
10
нера таким образом, чтобы сумма выделенных им ресурсов не превышала всех ресурсов системы, и
при этом выделенные каждому сервису ресурсы были достаточны для его нормальной работы.
В случае, если сервисы не помещены в виртуальные контейнеры, добиться гарантированной нижней границы доступных ресурсов можно только в том случае, если на одном физическом сервере выполняется только один сервис. В противном случае работает правило «кто первый встал, того и
тапки», т.е. любой из сервисов может в какой-то момент занять большой объём свободных ресурсов,
так что оставшегося не хватит другому сервису для нормальной работы.
Иначе говоря, в разделяемой среде невозможно гарантировать отдельному сервису нижнюю границу доступных ресурсов, и, следовательно, невозможно дать гарантии клиентам по качеству обслуживания.
2.3.6.
Изоляция ergo защищённость (default deny)
Примечание: Важнейший принцип информационной безопасности: всякое взаимодействие, которое не является заведомо необходимым, должно быть по умолчанию запрещено.
Сервис, принимающий запросы от внешних клиентов, является одним из классических источников
для разного рода уязвимостей в безопасности системы. Зачастую несанкционированный доступ к ОС
осуществляется именно через эксплуатацию уязвимостей некоторого сервиса. Если подвергшийся
атаке сервис помещён в виртуальный контейнер, последствия взлома могут быть значительно менее
разрушительными, чем в случае, когда сервис выполняется непосредственно в операционной системе
сервера. В последнем случае ОС сервера может быть взломана через один из сервисов, а под удар
подставляются все выполняющиеся сервисы.
В случае виртуализованного сервиса, взломщик может получить доступ только в рамках виртуального контейнера, так что даже если на сервере параллельно выполняются другие сервисы (в других
виртуальных контейнерах), то их работе данный инцидент угрожать не будет. Попытки взломщика исчерпать все физические ресурсы приведут только к исчерпанию ресурсов данного контейнера. Таким
образом, взломщик не сможет затруднить удалённый доступ администратора на сервер, исчерпав все
доступные ресурсы. Кроме того, изнутри контейнера у взломщика нет возможности перезаписать загрузчик сервера и получить какой-либо прямой контроль над оборудованием.
При подобном инциденте администратор может просто целиком уничтожить скомпрометированный виртуальный контекст и восстановить его и данные из резервной копии, не перезагружая сервер и
не останавливая работу прочих выполняющихся на нём сервисов.
2.3.7.
Программные и аппаратные средства ограничения ресурсов
Из предыдущих разделов становится понятно, что при использовании виртуальных контейнеров на
сервере работоспособность как виртуализованных сервисов, так и основной ОС сервера весьма существенно зависит от надёжности работы механизмов ограничения и изоляции, заложенных в технологии виртуализации.
Такие механизмы ограничения могут быть двух родов: аппаратные и программные. Если используется платформа, поддерживающая виртуализацию на аппаратном уровне, то алгоритмы изоляции
контекстов реализованы непосредственно в оборудовании, подвести здесь может только ошибка в микросхеме. Во всех остальных технологиях виртуализации механизмы ограничения реализованы так
или иначе программно, и, как показывает практика, в программных реализациях ошибки встречаются.
Производители программного обеспечения, выполняющего те или иные серверные функции (т.е.
предоставляющие некоторый сервис), могут встраивать в свои продукты собственные средства
11
контроля ресурсов, предоставляющие примерно ту же функциональность, что и ограничение средствами виртуального контейнера. Однако как в любой программной реализации в этих механизмах
возможны ошибки, дающие возможность при определённых условиях обходить установленные ограничения.
Однако вероятность ошибок в механизмах ограничения тем выше, чем больше разных механизмов
использовано в системе. Поэтому в случае размещения на сервере нескольких виртуальных контейнеров с сервисами правильнее использовать один общий механизм контроля, предоставляемый средством виртуализации. Кроме того, если используется стандартное для дистрибутива средство виртуализации, то возможные ошибки, критичные для безопасности, будут быстрее обнаружены и исправлены.
2.3.8.
Защита интерфейса управления
При организации сервера с использованием виртуализованных сервисов критически важной точкой
для безопасности системы становится интерфейс управления самими виртуальными контейнерами.
Доступ к этому интерфейсу должен быть наиболее обстоятельно защищён.
Возможные варианты защиты доступа к интерфейсу управления:
–
запретить удалённый доступ по сети, разрешить только доступ с локальной консоли (виртуальная консоль, последовательный порт);
–
физически изолировать сетевое подключение для интерфейса управления (отдельный сетевой
адаптер);
–
логически изолировать сетевое подключение для интерфейса управления (отдельный VLANинтерфейс);
–
использовать защищённые сетевые соединения для удалённого доступа к интерфейсу управления (защищённый туннель ipsec, openvpn, pptp или ssh-туннели).
2.3.9.
Консолидация серверов
Примечание: Консолидация сервисов на одном сервере ведет к экономии на затратах на обслуживание оборудования.
Выше уже говорилось о том, что современное оборудование позволяет одновременно выполнять
значительно больше одного сервиса на одном сервере. При использовании некоторых технологий виртуализации вычислительных ресурсов сегодня хватает на организацию множества виртуальных
контекстов на сервере, даже с учётом дополнительных вычислительных расходов на виртуализацию.
Технологии виртуализации на уровне операционной системы (для UNIX-систем) позволяют одновременно эксплуатировать сотни виртуальных контекстов на одном достаточно мощном сервере.
Типичная сфера применения подобных решений – хостинг-провайдеры: при использовании виртуальных контекстов каждому клиенту можно выдать независимое окружение с правами суперпользователя, предоставив администрирование внутри контекста на его полное усмотрение.
Выгоды от малой и до массовой консолидации сервисов на одном сервере в первую очередь лежат
в сфере снижения затрат на приобретение, размещение и обслуживание оборудования. Традиционно
подобная консолидация сдерживалась соображениями безопасности и качества обслуживания, которые также обеспечиваются средствами виртуальных контейнеров.
12
2.3.10.
Динамическое перераспределение ресурсов
Примечание: Виртуализация сервисов даёт возможность простого и без ущербного внедрения,
перемещения и выведения из строя любого из сервисов без ущерба общей инфраструктуре и без простоя.
Еще одна не очевидная, но немаловажная выгода, представляемая помещением сервисов в виртуальные контейнеры происходит от того, что виртуальные контексты, с одной стороны, самодостаточны, а с другой – отчуждаемы от оборудования. Благодаря этому, администратор имеет возможность
манипулировать виртуальными контейнерами как целостными объектами, в том числе переносить с
одного сервера на другой. Так, для большинства технологий виртуализации есть средства для «заморозки» контейнера в текущем состоянии, с возможностью последующей разморозки, в том числе на
другом сервере, при том что выполняемые внутри контейнера процессы даже не заметят происшедшей перемены.
Такие возможности позволяют даже в процессе работы мигрировать виртуализованные сервисы,
например, по разным узлам сети, гибко перераспределяя вычислительную нагрузку, в том числе среди
узлов кластера. Кроме того, можно уничтожить ставший ненужным виртуальный контейнер, при этом
не возникнет необходимости продавать высвободившийся сервер: просто остальные контейнеры смогут разделить высвободившиеся мощности.
2.4. Программный комплекс проверки целостности системы Osec
Osec является легковесным программным комплексом проверки целостности системы, который вы
можете использовать, чтобы обнаружить различия между двумя её состояниями. Osec также предоставляет возможность выполнить проверку системы на наличие опасных файлов, например, с установленными битами прав смены идентификаторов пользователя (suid), группы (sgid) и с общедоступной записью.
В случае запуска osec из-под учетной записи root, программа продолжит работу под непривилегированным пользователем – будет оставлена только одна дополнительная возможность (capability) –
'dac_read_search', поэтому osec не сможет повредить ваши системные файлы по какой-нибудь внутренней ошибке.
Osec разделена на две части:
–
osec – программа сбора данных. Результаты работы подаются в неформатированном виде на
стандартный вывод (stdout);
–
osec_reporter – программа-фильтр для создания отчетов. Вы можете передать неформатированный вывод из osec к osec_reporter для того чтобы представить данные в виде удобном для чтения.
Результаты работы osec_reporter также подаются на стандартный вывод (stdout). Таким образом, вы
можете использовать их для подачи на вход другой программе. К примеру, вы можете послать письмо
с полученным отчетом системному администратору.
2.5. Характеристики операционной системы
2.5.1.
–
Основные свойства операционной системы
обеспечивает мультизадачность процессов;
13
–
обладает масштабируемостью системы (установка изделия как на одном компьютере, так и в
сетях ЭВМ различной архитектуры);
–
обеспечивает многопользовательский режим эксплуатации;
–
обеспечивает поддержку мультипроцессорных систем;
–
обеспечивает поддержку виртуальной памяти;
–
обеспечивает сетевую обработку данных;
–
обладает устойчивостью к вирусам;
–
обеспечивает выполнение функций защиты информации в объеме требований 5 класса защищённости документа РД СВТ от НСД;
–
обладает устойчивостью работы.
2.5.2.
Основные характеристики ОС
Основные параметры функционирования изделия:
Наименование параметра
(характеристики)
Значение параметра
(характеристики)
Операционная среда (ALT Linux 6.0)
32-х или 64-х разрядная, UNIX-подобная
Поддержка стандартов
IEEE POSIX.1, UNIX System V, Berkley System
Distribution UNIX
Класс защищённости
5
2.5.3.
Основные параметры для нормального функционирования ОС
Параметр
Значение параметра
Диапазон рабочих температур, ºС
15-40
Допустимый диапазон влажности воздуха, %
45-95
Допустимый диапазон давления, кПа
84-107
2.5.4.
Технические требования к конфигурации компьютера
Наименование параметра
(требования)
Технические средства
Процессор
RAM (оперативная память)
Значение параметра
(требования)
компьютер типа IBM PC
Intel или совместимый с ним, включая AMD.
Для 32-битной версии процессор должен поддерживать технологию PAE.
минимум 256 Мб (рекомендуется от 1 Гб и бо-
14
Наименование параметра
Значение параметра
(требования)
(требования)
лее)
Наличие свободного места на HDD (жёстком
диске)
Наличие DVD-ROM (привода dvd дисков)
не менее 1 Гб (рекомендуется 12 Гб и более)
Наличие DVD-ROM, необходимо для инсталляции дистрибутива
2.6. Состав ОС Альт Линукс СПТ 6.0
ОС Альт Линукс СПТ 6.0 состоит из набора компонентов предназначенных для реализации функциональных задач необходимых пользователям (должностным лицам для выполнения определённых,
должностными инструкциями, повседневных действий) и поставляется в виде дистрибутива и
комплекта эксплуатационной документации.
В структуре ОС Альт Линукс СПТ 6.0 можно выделить следующие функциональные элементы:
–
Операционная среда изделия (ОСр)
–
Операционная система изделия (ОС)
–
Ядро ОС
–
Системные библиотеки
–
Встроенные средства защиты информации (КСЗ)
–
Системные приложения
–
Программные серверы
–
Web-серверы
–
Системы управления базами данных (СУБД)
–
Прочие серверные программы
–
Интерактивные рабочие среды
–
Командные интерпретаторы
–
Прочие системные приложения
Комплекс встроенных средств защиты информации (КСЗ), является принадлежностью операционной среды Альт Линукс СПТ 6.0 и неотъемлемой частью ядра ОС и системных библиотек.
2.6.1.
Операционная среда
Операционная среда изделия (ОСр) – совокупность пакетов программ и специальных приложений,
предназначенных для обеспечения функционирования изделия и реализации пользовательских задач
различного назначения.
Операционная среда изделия (ОСр), включает в свой состав операционную систему, системные
приложения и комплекс встроенных средств защиты информации.
15
2.6.2.
Операционная система
Операционная система (ОС) – совокупность программных средств, организующих согласованную
работу ОСр с аппаратными устройствами компьютера (процессор, память, устройства ввода-вывода и
т.д.).
Операционная система изделия (ОС) состоит из ядра ОС и системных библиотек.
2.6.3.
Ядро ОС
Ядро ОС – программа (набор программ), выполняющая функции управления ОС и взаимодействия
ОС с аппаратными средствами.
2.6.4.
Системные библиотеки
Системные библиотеки – наборы программ (пакетов программ), выполняющие различные функциональные задачи и предназначенные для их динамического подключения к работающим программам,
которым необходимо выполнение этих задач.
2.6.5.
Встроенные средства защиты информации (КСЗ)
Встроенные средства защиты информации (КСЗ) – специальные пакеты программ ОСр, входящие
в состав ядра ОС и системных библиотек, предназначенные для защиты ОСр от несанкционированного доступа к обрабатываемой (хранящейся) информации на ЭВМ.
2.7. Системные приложения
Системные приложения – это приложения (программы, набор программ), предназначенные для
выполнения (оказания) системных услуг пользователю при решении им определенных функциональных задач в работе с операционной средой и обеспечивающие их выполнение.
Системные приложения включают в себя такие элементы как:
–
Программные серверы;
–
Средства разработки;
–
Средства антивирусной защиты;
–
Интерактивные рабочие среды;
–
Прочие приложения.
2.7.1.
Программные серверы
Программные серверы – специальные приложения, предназначенные для предоставления пользователю определенных услуг и обеспечивающие их выполнение.
2.7.2.
Web-серверы
Web-серверы – программы (набор программ), предназначенные для предоставления пользователю
услуг доступа к глобальной сети Internet.
В состав изделия включен Web-сервер Apache версии 2.2.
16
2.7.3.
Системы управления базами данных
Системы управления базами данных (СУБД) – приложения, предназначенные для работы с данными, представленными в виде набора записей, позволяющее осуществлять их поиск, обработку и хранение в виде специальных таблиц.
В состав ОС включены:
–
СУБД MySQL;
–
Набор GNU-драйверов доступа к базам данных;
–
Драйвера доступа к базам данных ODBC.
2.7.4.
Прочие серверные приложения и программы
К прочим серверным программам относятся программы, предоставляющие пользователю различные услуги по обработке, передаче, хранению информации (серверы протоколов, почтовые серверы,
серверы приложений, серверы печати и прочие).
В состав изделия включены:
–
Сетевой протокол DHCP (Dynamic Host Configuration Protocol);
–
Сервер системы обмена сообщениями Jabber;
–
Протокол LDAP (Lightweight Directory Access Protocol);
–
SMB-сервер;
–
Почтовый сервер Postfix;
–
Прокси сервер squid;
–
Сервер файлового обмена;
–
Серверы протоколов FTP, SFTP, SSHD;
–
Протокол PPP (Point-to-Point Protocol);
–
Linux-порт ftp-сервера BSD.
2.7.5.
Интерактивные рабочие среды
Интерактивные рабочие среды (ИРС) – программы (пакеты программ), предназначенные для работы пользователя в ОС и предоставляющие ему удобный интерфейс для общения с ней.Командные рабочие среды включают в свой состав командные интерпретаторы.
Командные интерпретаторы - специальные программы (терминалы), предназначенные для выполнения различных команд подаваемых пользователем при работе с ОС.
2.8. Прочие системные приложения
Прочие системные приложения – приложения (программы), оказывающие пользователю дополнительные системные услуги при работе с ОС.
В состав ОС включены такие дополнительные системные приложения, как:
–
Архиваторы;
17
–
Приложения для управления RPM-пакетами;
–
Приложения резервного копирования;
–
Приложения мониторинга системы;
–
Приложения для работы с файлами;
–
Приложения для настройки системы;
–
Настройка параметров загрузки;
–
Настройка оборудования;
–
Настройка сети.
2.9. Документация в составе
–
HOWTOs;
–
Электронные справочники (man).
2.10.
Состав дистрибутива изделия
Дистрибутив изделия поставляется на 1 DVD (для одной архитектуры). Дополнительно прилагается диск с исходные кодами программ.
18
3. ОБЩИЕ ПРИНЦИПЫ РАБОТЫ ОС
В ОС используется операционная среда ALT Linux 6.0.
Как было описано выше, она защищена встроенными средствами защиты информации от несанкционированного доступа по 5 классу защищённости, что позволяет использовать её в качестве серверных приложений, обеспечивающих доступ к конфиденциальной информации. К конфиденциальной
информации относится до 70 – 80% всей информации, циркулирующей в информационных системах
различных государственных, коммерческих, а также физических лиц. Согласно утвержденному Указу
Президента России №188 от 6 марта 1997 г. к сведениям конфиденциального характера относятся:
–
персональные данные гражданина;
–
тайна следствия и судопроизводства;
–
служебная тайна;
–
врачебная, нотариальная, адвокатская тайна;
–
тайна переписки, телефонных переговоров, почтовых отправлений, телеграфных или иных сообщений и т.д.;
–
коммерческая тайна;
–
сведения о сущности изобретения, полезной модели или промышленного образца до официальной публикации информации о них.
Работа с операционной средой заключается в вводе определенных команд (запросов) к операционной среде и получению на них ответов в виде текстового отображения.
Основой операционной среды является операционная система.
Операционная система (ОС) – совокупность программных средств, организующих согласованную
работу ОСр с аппаратными устройствами компьютера (процессор, память, устройства ввода-вывода и
т.д.).
Диалог с ОС осуществляется посредством командных интерпретаторов с системных библиотек.
Каждая системная библиотека представляет собой набор программ, динамически вызываемых операционной системой.
Командные интерпретаторы – особый род специализированных программ, позволяющих осуществлять диалог с ОС посредством команд.
Для удобства пользователей при работе с командными интерпретаторами используются интерактивные рабочие среды (ИРС), предоставляющие пользователю удобный интерфейс для работы с ОС.
В самом центре ОС изделия находится управляющая программа, называемая ядром. В ОС изделия
используется новейшая модификация «устойчивого» ядра Linux – версия 2.6.
Ядро взаимодействует с компьютером и периферией (дисками, принтерами и т.д.), распределяет ресурсы и выполняет фоновое планирование заданий.
Другими словами ядро ОС изолирует вас от сложностей аппаратуры компьютера, командный интерпретатор от ядра, а ИРС от командного интерпретатора.
Защита ОСр осуществляется с помощью комплекса встроенных средств защиты информации
(КСЗ).
19
3.1. Процессы и файлы
ОС Альт Линукс СПТ 6.0 является многопользовательской интегрированной системой. Это значит,
что она разработана в расчете на одновременную работу нескольких пользователей.
Пользователь может либо сам работать в системе, выполняя некоторую последовательность команд, либо от его имени могут выполняться прикладные процессы.
Пользователь взаимодействует с системой через командный интерпретатор, который представляет
собой, как было сказано выше, прикладную программу, которая принимает от пользователя команды
или набор команд и транслирует их в системные вызовы к ядру системы. Интерпретатор позволяет
пользователю просматривать файлы, передвигаться по дереву файловой системы, запускать прикладные процессы. Все командные интерпретаторы UNIX имеют развитый командный язык и позволяют
писать достаточно сложные программы, упрощающие процесс администрирования системы и работы
с ней.
3.1.1.
Процессы функционирования ОС
Все программы, которые выполняются в текущий момент времени, называются процессами. Процессы можно разделить на два основных класса: системные процессы и пользовательские процессы.
Системные процессы – программы, решающие внутренние задачи ОС, например организацию виртуальной памяти на диске или предоставляющие пользователям те или иные сервисы (процессы-службы).
Пользовательские процессы – процессы, запускаемые пользователем из командного интерпретатора для решения задач пользователя или управления системными процессами. Linux изначально разрабатывался как многозадачная система. Он использует технологии, опробованные и отработанные другими реализациями UNIX, которые существовали ранее.
Фоновый режим работы процесса – режим, когда программа может работать без взаимодействия с
пользователем. В случае необходимости интерактивной работы с пользователем (в общем случае)
процесс будет «остановлен» ядром и работа его продолжается только после переведения его в «нормальный» режим работы.
3.1.2.
Файловая система ОС
В ОС использована файловая система Linux, которая в отличие от файловых систем DOS и
Windows(™) является единым деревом. Корень этого дерева – каталог, называемый root (рут), и
обозначаемый «/». Части дерева файловой системы могут физически располагаться в разных разделах
разных дисков или вообще на других компьютерах, – для пользователя это прозрачно. Процесс присоединения файловой системы раздела к дереву называется монтированием, удаление – размонтированием. Например, файловая система CD-ROM в изделии монтируется по умолчанию в каталог /media/
cdrom (путь в изделии обозначается с использованием «/», а не «\», как в DOS/Windows). Текущий каталог обозначается «./».
Файловая система изделия содержит каталоги первого уровня:
/bin (командные оболочки (shell), основные утилиты),
/boot (содержит ядро системы),
/dev (псевдофайлы устройств, позволяющие работать с ними напрямую),
/etc (файлы конфигурации),
20
/home (личные каталоги пользователей),
/lib (системные библиотеки, модули ядра),
/media (каталоги для монтирования файловых систем сменных устройств)
/mnt (каталоги для монтирования файловых систем сменных устройств и внешних файловых систем),
/proc (файловая система на виртуальном устройстве, ее файлы содержат информацию о текущем
состоянии системы),
/root (личный каталог администратора системы),
/sbin (системные утилиты),
/sys (файловая система, содержащая информацию о текущем состоянии системы)
/usr (программы и библиотеки, доступные пользователю),
/var (рабочие файлы программ, очереди, журналы),
/tmp (временные файлы).
3.1.3.
Организация файловой структуры
Система домашних каталогов пользователей помогает организовывать безопасную работу пользователей в многопользовательской системе. Вне своего домашнего каталога пользователь обладает минимальными правами (обычно чтение и выполнение файлов) и не может нанести ущерб системе,
например, удалив или изменив файл.
Кроме файлов созданных пользователем, в его домашнем каталоге обычно содержатся персональные конфигурационные файлы некоторых программ.
Маршрут (путь) – это последовательность имён каталогов, представляющий собой путь в файловой системе к данному файлу, где каждое следующее имя отделяется от предыдущего наклонной чертой (слэшем). Если название маршрута начинается со слэша, то путь в искомый файл начинается от
корневого каталога всего дерева системы. В обратном случае, если название маршрута начинается непосредственно с имени файла, то путь к искомому файлу должен начаться от текущего каталога (рабочего каталога).
Имя файла может содержать любые символы за исключением косой черты (/). Однако следует избегать применения в именах файлов большинства знаков препинания и непечатаемых символов. При
выборе имен файлов рекомендуем ограничиться следующими символам:
–
строчные и ПРОПИСНЫЕ буквы. Следует обратить внимание на то, что регистр всегда имеет
значение;
–
символ подчеркивания ( _ );
–
точка ( . ).
Для удобства работы можно использовать для отделения имени файла от расширения файла. Данная возможность может быть необходима пользователям или некоторым программам, но не имеет значение для shell.
3.1.4.
Иерархическая организация файловой системы
Каталог / :
21
/boot – место где хранятся файлы необходимые для загрузки ядра системы
/lib – здесь располагаются файлы динамических библиотек, необходимых для работы большей части приложений и подгружаемые модули ядра
/bin – минимальный набор программ необходимых для работы в системе
/sbin – набор программ для административной работы с системой (программы необходимые только
суперпользователю)
/home – здесь располагаются домашний каталоги пользователей
/etc – в данном каталоге обычно хранятся общесистемные конфигурационные файлы для
большинства программ в системе
/etc/rc?.d,/etc/init.d,/etc/rc.boot,/etc/rc.d – директории, где расположены командные файлы, выполняемые при запуске системы или при смене ее режима работы
/etc/passwd – база данных пользователей, в которой содержится информация об имени пользователя, его настоящем имени, личном каталоге, зашифрованный пароль и другие данные
/etc/shadow – теневая база данных пользователей. При этом информация из файла /etc/passwd
перемещается в /etc/shadow, который недоступен по чтению всем, кроме пользователя root. В случае
использования альтернативной схемы управления теневыми паролями (TCB) все теневые пароли для
каждого пользователя располагаются в директории /etc/tcb/<имя пользователя>/shadow
/dev – в этом каталоге находятся файлы устройств. Файлы в /dev создаются сервисом udev.
/usr – обычно файловая система /usr достаточно большая по объему, так как все программы установлены именно здесь. Вся информация в каталоге /usr помещается туда во время установки системы. Отдельно устанавливаемые пакеты программ и другие файлы размещаются в каталоге
/usr/local. Некоторые подкаталоги системы /usr рассмотрены ниже.
/usr/bin – практически все команды, хотя некоторые находятся в /bin или в /usr/local/bin
/usr/sbin – команды, используемые при администрировании системы и не предназначенные для
размещения в файловой системе root
/usr/local – здесь рекомендуется размещать файлы установленные без использования пакетных менеджеров, внутренняя организация каталогов практически такая же как и корневого каталога
/usr/man – каталог где хранятся файлы справочного руководства man
/usr/share – каталог для размещения общедоступных файлов большей части приложений
Каталог /var:
/var/log – место, где хранятся файлы аудита работы системы и приложений
/var/spool – каталог для хранения файлов находящих в очереди на обработку для того или иного
процесса (очередь на печать, отправку почты и т.д.)
/tmp – временный каталог необходимый некоторым приложениям
/proc – файловая система /proc является виртуальной и в действительности она не существует на
диске. Ядро создает её в памяти компьютера. Система /proc предоставляет информацию о системе.
3.1.5.
Имена дисков и разделов
Все физические устройства вашего компьютера отображаются в каталог /dev файловой системы
22
изделия (об этом – ниже). Диски (в том числе IDE/SATA/SCSI жёсткие диски, USB-диски имеют имена:
–
/dev/sda – первый диск;
–
/dev/sdb – второй диск;
–
и т.д.
Диски обозначаются /dev/sdX, где X – a,b,c,d,e,... в зависимости от порядкового номера диска на
шине.
Раздел диска обозначается числом после его имени. Например, /dev/sdb4 – четвертый раздел второго диска.
3.1.6.
Разделы, необходимые для работы ОС
Для работы ОС необходимо создать на жестком диске (дисках) по крайней мере два раздела : корневой (то есть тот, который будет содержать каталог / ) и раздел подкачки (swap). Размер последнего,
как правило, составляет от однократной до двукратной величины оперативной памяти компьютера.
Если у вас много свободного места на диске, то можно создать отдельные разделы для каталогов /usr,
/home, /var.
3.1.7.
Утилиты для работы с файловой системой
3.1.7.1. mkfs
mkfs – формирует файловую систему
Синтаксис:
/etc/mkfs [-y] [-n] special blocks[:inodes] [gap inblocks]
/etc/mkfs [-y] [-n] special proto [gap inblocks]
[-s blocks [:inode]]
Описание:
mkfs формирует файловую систему, записывая данные в специальный файл special в соответствии с
указаниями, заданными в остальной части командной строки.
Если оказывается, что этот специальный файл содержит файловую систему, то, прежде чем переписывать в нем информацию, потребуется подтверждение от оператора. Выбор опции -y ("да") перебивает эту установку и задет перезапись информации без всяких вопросов. Опция -n заставляет mkfs прекратить работу без всяких вопросов, если в назначенном файле содержится существующая файловая
система. Выполняемая проверка заключается в том, что читается блок номер 1 (суперблок) и производится сравнение байтов. Если сравнение не проходит, то предполагается, что изменения несут значащую информацию и требуется подтверждение оператора..
Если второй аргумент задается в виде строки цифр, то mkfs строит файловую систему с единственным пустым каталогом в ней. Размер этой файловой системы определяется значением blocks, интерпретируемым как десятичное число. Загрузочная программа остается неинициализированной. Если
задано количество inodes индексных дескрипторов, тогда это число должно совпадать с оценочным
числом количества файлов в файловой системе. Если этот необязательный аргумент не задается, тогда
количество индексных дескрипторов вычисляется как функция размера файловой системы..
23
Если второй аргумент представляет собой имя файла, который может быть открыт, mkfs предполагает, что это - файл прототипов proto, и черпает из него необходимые инструкции. Файл прототипов
содержит лексемы, разделенные пробелами или символами перевода на новую строку. Первая лексема
– имя файла, который копируется в блок 0 в качестве программы-загрузчика. Заголовок программы-загрузчика должен быть отсечен (см. strip(1)). Если же это не сделано, то mkfs выдаст предупреждение. Вторая лексема задает размер созданной файловой системы. Обычно это - количество блоков на
устройстве, возможно, уменьшенное за счет пространства свопинга. Следующая лексема – это размер
индексного списка (i-list) в блоках. Следующие лексемы задают спецификации корневого файла (root
file). Спецификации файла состоят из лексем, задающих режим доступа, пользовательский идентификатор, групповой идентификатор и исходное содержание файла. Синтаксис поля содержания зависит
от режима доступа к файлу.
Режим доступа к файлу задается строкой из 6 символов. Первый символ задает тип файла. (Символы -bcd задают соответственно файл регулярного типа, специальный файл блочно-ориентированного
устройства и файл каталога.) Второй символ может быть либо "u", либо "-", определяя тип пользовательского режима. Третий символ может быть либо "g", либо "-", определяя режим групповых установок. Остальные символы режима доступа представляют собой трехзначное восьмиричное число, задающее разрешения на запись, чтение и выполнение в отношении владельца, группы и прочих пользователей; см. chmod(1).
После лексемы режима доступа идут два десятичных числа, которые задают пользовательский и
групповой идентификаторы владельца файла.
Если файл является регулярным файлом, то следующая лексема представляет собой полное имя
файла, размер и содержимое которого копируются. Если файл является специальным файлом блочного или символьного устройства, то далее следуют два десятичных числа, которые представляют главное (большее) и малое (меньшее) числа устройства. Если файл является файлом каталога, то mkfs
формирует структуры "." и ".." и затем считывает список имен и (рекурсивным образом) спецификации файлов для входных структур этого каталога. Сканирование прерывается лексемой $.
Ниже приведен пример спецификации прототипа:
/stand/diskboot
4872 110
d--777 3 1
usr d --773 3 1
sh ---755 3 1 /bin/sh
ken d --755 6 1
$
b0 b--644 3 1 0 0
c0 c--644 3 1 0 0
$
$
Во второй версии данной команды опция -s перебивает размер и количество индексных дескрипторов в файле proto.
В обоих вариантах этой команды могут быть заданы факторы чередования для диска gap и inblocks.
Примечания:
24
При использовании файла прототипов не существует способа задать количество связей. И если в
командной строке задается количество индексных дескрипторов, то максимальное их количество в
файловой системе может быть 65500.
3.1.7.2. fsck
fsck – проверяет и восстанавливает файловые системы.
Синтаксис:
/bin/fsck [option] [filesystem]
Описание:
fsck проверяет и восстанавливает в интерактивном режиме несогласующиеся места файловых систем XENIX. Если файловая система внутренне согласованна, то выдается сообщение о количестве
файлов, количестве занятых и свободных блоков. Если же файловая система содержит внутренние
противоречия, то оператор получает подсказки по согласованию перед каждой корректировкой. Следует отметить, что большинство корректировок приводит к какой-либо потере информации. Уровень и
объем потерь может быть определен по диагностической выдаче. (Опытный оператор может снять
противоречия вручную с помощью отладчика файловых систем fsdb(8).) По умолчанию во всех случаях согласующих корректировок ожидается ответ оператора "yes" (да) или "no" (нет). Если оператор не
имеет разрешения на запись fsck активизирует по умолчанию действие опции -n.
fsck воспринимает следующие аргументы:
-y
Предполагает ответ "yes" на все вопросы fsck.
-n
Предполагает ответ "no" на все вопросы fsck; открытие файловой системы для записи не допускается.
-sb:c
Игнорирует существующий список свободных блоков и (безусловно) создает новый, перезаписывая супер-блок файловой системы. В этот период файловая система должна быть демонтирована.
Опция -sb:c позволяет сформировать оптимальную организацию списка свободных блоков. Поддерживаются следующие варианты:
-s
-sБлок/цилиндр:Пропускаемые блоки (interleave-фактор фактор прослаивания, чередования считываемых и пропускаемых блоков).
Если b:c не задается, то используются величины, которые использовались во время создания
файловой системы. Если они тоже не заданы, тогда по умолчанию устанавливаются некоторые разумные значения.
-S
Перестраивает список свободных блоков по условию. Эта опция аналогична опции sb:c за исключением того, что список свободных блоков перестраивается только в том случае, когда в файловой системе противоречий не обнаружено. Использование опции -S принудительно определяет ответ "no" на
все вопросы, задаваемые fsck. Эта опция полезна для принудительной реорганизации списка свободных блоков у неиспорченных файловых систем.
25
-t
Если fsck не может получить достаточный объем памяти для хранения своих таблиц, она использует временный файл. При использовании опции -t в следующем аргументе задается имя временного
файла, если это необходимо. Следите, чтобы между -t и этим именем был пробел, иначе fsck будет использовать в качестве этого файла всю файловую систему и затрет весь диск. Если во время инсталляции вы создали временную файловую систему, то тогда вы можете использовать в качестве имени этого файла /dev/scratch, при устовии, что временная файловая система - не больше корневой файловой системы. В отсутствие аргумента -t fsck выводит подсказку для ввода имени временного файла.
Выбранный файл не должен находиться в проверяемой файловой системе, и если этот файл не является специальным или уже существующим, то по завершении работы fsck он удаляется. Если система
занимает большой жесткий диск, то в другой файловой системе может не оказаться достаточного пространства для этого временного файла. В таких случаях при наличии дисковода гибких дисков используйте в качестве временного файла, к примеру, /dev/fd0 на чистой отформатированной дискете.
-q
fsck в режиме без сообщений. На этапе 1 сообщения о проверке размеров не выводятся. Неадресуемые файлы fif05 выборочно удаляются. Если fsck потребует этого, значения в суперблоке автоматически фиксируются, а список свободных блоков сохраняется.
-D
Каталоги сканируются в поисках плохих блоков. Опция полезна после системного сбоя.
-f
Быстрая проверка. Проверяются блоки и размеры (этап 1) и список свободных блоков (этап 5). При
необходимости список свободных блоков будет перестроен (этап 6).
-rr
Восстанавливает корневую файловую систему. Требуемый аргумент filesystem должен относиться к
корневой файловой системе и предпочтительно к устройству блочного типа (обычно /dev/root). При
этом устанавливается опция -y и перебивается -n. Если требуются какие-либо изменения файловой системы, система автоматически разгружается для обеспечения целостности данной файловой системы.
-c
Вызывает преобразование любой поддерживаемой файловой системы к типу текущей файловой системы. Пользователю предлагается подтвердить запрос на каждую файловую систему, требующию
преобразования, если только не задана опция -y. Рекомендуется проверка с помощью этой опции каждой файловой системы в демонтированном состоянии, если она будет использоваться в текущей версии системы XENIX. Для модификации активной корневой файловой системы, последюю следует
проверить следующим образом:
fsck -c -rr /dev/root
Если значение fylesystem не задано, fsck читает список устанавливаемых по умолчанию файловых
систем в файле /etc/checklist.
Выполняется проверка следующих возможных рассогласований:
–
Несколько индексных дескрипторов, включая список свободных блоков, указывают на один и
тот же блок.
–
Индексные дескрипторы или список свободных блоков указывают на блок за пределами
файловой системы.
26
–
Неправильная адресация в цепи блоков.
–
Контроль размеров:
–
Неправильное количество блоков.
–
Отсутствует выравнивание размера каталога по модулю 16-ти байтов.
–
Неправильный формат индексного дескриптора.
–
Проверка каталогов:
–
–
Файл указывает на незарезервированный индексный дескриптор.
–
Номер индексного дескриптора за пределами допустимого диапазона.
Проверка суперблока:
–
Наличие более, чем 65536 индексных дескрипторов.
–
На индексные дескрипторы приходится больше блоков, чем есть в файловой системе.
–
Неверный формат списка свободных блоков.
–
Неверное значение общего количества свободных блоков или свободных индексных дескрипторов.
Беспризорные файлы и каталоги (зарезервированные, но не адресуемые) с согласия оператора
присоединяются к каталогу lost+found. При этом им присваивается в качестве имени номер индексного дескриптора. Единственным ограничением является то, что каталог lost+found должен предварительно существовать в проверенной корневой файловой системе и должен иметь свободные поля для
записи входных структур. Это достигается созданием lost+found, копированием в него некоторого количества файлов и их последующего удаления (перед выполнением fsck).
Файлы:
/etc/checklist
Содержит список файловых систем, задаваемых для проверки по умолчанию.
/etc/default/boot
Автоматическое управление загрузкой.
fsck может быть запущена для смонтированной вторичной файловой системы только, если эта
файловая система является корневой, или задана опция -n и не будет записи за пределами этой файловой системы. Если подобная попытка будет иметь место, то будет высвечено предупреждение, и для
заданного устройства обработка будет прекращена.
Хотя проверка первичного устройства почти всегда осуществляется быстрее, не существует способа определить, является ли данная файловая система смонтированной. Любая чистка смонтированной
файловой системы почти наверняка приводит к рассогласованиям в суперблоке.
Предупреждение:
Файловые системы, созданные под управлением XENIX-86 версии 3.0, не поддерживаются системой XENIX System V, потому что организация слова в типе переменных long изменена. fsck способна
проверять и восстанавливать файловые системы XENIX версии 3.0, если организация слова - правильная.
Для корневой файловой системы следует запускать "fsck -rr /dev/root". Для всех прочих файловых систем следует использовать "fsck /dev/??" на несмонтированном устройстве блочного типа.
27
Диагностика:
Этап инициализации
Проверяется синтаксис команды. Перед выполнением проверки файловой системы fsck устанавливает некоторые таблицы и открывает некоторые файлы. При возникновении ошибок инициализации
fsck прекращает работу.
Общие ошибки
На любом этапе могут появляться три типа сообщений. В то время, как они предлагают выбрать
некоторую опцию для продолжения, в принципе лучше считать эти сообщения фатальными, закончить выполнение программы и выяснить причину затруднений.
CAN NOT SEEK: BLK B (CONTINUE?)
Попытка переместить заданный блок с номером B не удалась. Возникновение такой ошибки указывает на наличие серьезной проблемы (вероятно, аппаратной поломки), которая может потребовать дополнительной помощи.
CAN NOT READ: BLK B (CONTINUE?)
Попытка прочесть заданный блок с номером B не удалась. Возникновение такой ошибки указывает
на наличие серьезной проблемы (вероятно, аппаратной поломки), которая может потребовать дополнительной помощи.
CAN NOT WRITE: BLK B (CONTINUE?)
Попытка записать в заданный блок с номером B не удалась. Возможно, что диск защищен от записи.
Значение ответов Yes/No
Подсказка
CONTINUE?
n(no)
y(yes)
Прерывает программу.(Это реко- Попытка продолжения выполнемендуемый ответ.)
ния проверки Состояние ошибки
не позволяет осуществить полную проверку файловой системы. Для перепроверки файловой
системы следует запустить fsck
повторно.
Этап 1: Проверка блоков и размеров
На этом этапе проверяется список индексных дескрипторов.
Значение ответов Yes/No - Этап 1
Подсказка
CONTINUE?
n(no)
y(yes)
Прерывает программу. (Это
Попытка продолжения выполнения програмрекомендуемый ответ.)
мы. Эта ошибка означает, что полная проверка
файловой системы невозможна. Для перепроверки файловой системы следует запустить fsck
повторно.
28
Подсказка
CLEAR?
n(no)
y(yes)
Состояние ошибки игнорируется. Ответ NO допустим
только в том случае, когда
пользователь намерен предпринять другие меры для выяснения причин ошибки.
Индексный дескриптор I освобождается обнулением его содержимого. Это может повлечь
ошибку UNALLOCATED (свободного состояния) на этапе 2 для каждой входной структуры
каталога, указывающей на этот дескриптор.
Сообщения об ошибках на этапе 1
UNKNOWN FILE TYPE I=I (CLEAR?)
Состояние слова индексного дескриптора I предполагает, что это дескриптор не является ни конвейером, ни специальным дескриптором символьного типа, ни регулярным дескриптором, ни
дескриптором каталога.
LINK COUNT TABLE OVERFLOW (CONTINUE?)
Внутренняя таблица fsck, содержащая резервные дескрипторы с нулевым значением адресации звеньев, переполнена.
B BAD I=I
Индексный дескриптор I содержит блок с номером B, меньшим, чем номер первого блока данных
файловой системы, или большим, чем последний блок этой файловой системы. Эта ошибка может вызвать состояние EXCESSIVE BAD BLKS на этапе 1, если индексный дескриптор I имеет слишком
много блоков за пределами файловой системы. Это состояние вызывает ошибку BAD/DUP на этапах 2
и 4.
EXCESSIVE BAD BLOCKS I=I (CONTINUE?)
Индексный дескриптор I содержит больше допустимого (обычно 10) блоков с номерами меньше
номера первого блока данных или больше номера последнего блока файловой системы.
B DUP I=I
Индексный дескриптор I содержит блок с номером B, принадлежащий другому дескриптору. Эта
ошибка может повлечь состояние EXCESSIVE DUP BLKS на этапе 1, если дескриптор I содержит
слишком много таких блоков. Это состояние вызывает аналогичную ошибку на этапе 1B и ошибку
BAD/DUP на этапах 2 и 4.
EXCESSIVE DUP BLKS I=I (CONTINUE?)
Дескриптору I принадлежит больше допустимого (обычно 10) блоков, принадлежащих также другим дескрипторам.
DUP TABLE OVERFLOW (CONTINUE?)
Внутренняя таблица fsck, содержащая номера двойных блоков, переполнена.
POSSIBLE FILE SIZE ERROR I=I
Размер дескриптора I не соответствует действительному количеству используемых им блоков. Это лишь предупреждение. Если используется опция -q, то это сообщение не выводится.
DIRECTORY MISALIGNED I=I
Размер каталога дескриптора I не кратен 16 байтам. Это - лишь предупреждение. Если используется опция -q, то это сообщение не выводится.
29
PARTIALLY ALLOCATED INODE I=I (CLEAR?)
Дескриптор I не является ни свободным, ни зарезервированным.
Этап 1B: Повторный поиск двойных блоков
Если в файловой системе обнаруживается двойной блок, то эта файловая система сканируется повторно в поисках дескриптора, владевшего этим блоком раньше. При обнаружении двойного блока
выводится следующее сообщение:
B DUP I=I
Дескриптор I содержит блок с номером B, на который указывает другой дескриптор. Эта ошибка
вызывает состояние BAD/DUP на этапе 2. Индексные дескрипторы с перекрывающими блоками могут быть определены поиском этого состояния и состояния DUP на этапе 1.
Этап 2: Проверка наименований путей
На этом этапе удаляются испорченные индексные дескрипторы, выявленные на этапах 1 и 1B.
Значение ответов Yes/No - Этап 2
Подсказка
n(no)
y(yes)
FIX?
Прерывает программу, так как fsck На этапе 2 ответ этот ответ на подсказку
не способна продолжать работу.
FIX? возвращает: Change the root i-node type
to "directory." (Измените тип дескриптора на
тип "каталог") Если блоки данных корневого
дескриптора не являются блоками каталога,
то генерируется огромное количество состояний ошибок.
CONTINUE?
Прерывает программу.
Игнорирует состояние DUPS/DUP для корневого дескриптора и пытается продолжить
выполнение проверки файловой системы.
Ошибка в корневом дескрипторе может повлечь массу других ошибочных состояний.
REMOVE?
Состояние ошибки игнорируется. Удаляет двойные и свободные блоки.
Ответ NO допустим только в том
случае, когда пользователь намерен
предпринять другие меры для выяснения причин ошибки.
Сообщения об ошибках на этапе 2
ROOT INODE UNALLOCATED. TERMINATING
Корневой индексный дескриптор (всегда дескриптор с номером 2) не имеет битов режима резевирования. Возникновение этой ошибки указывает на наличие серьезной проблемы. Программа останавливается.
ROOT INODE NOT DIRECTORY (FIX?)
Корневой индексный дескриптор (всегда дескриптор с номером 2) не является дескриптором каталога.
DUPS/BAD IN ROOT INODE (CONTINUE?)
30
В корневом дескрипторе (всегла дескриптор с номером 2) файловой системы на этапах 1 или 1B обнаружены двойные или дефектные блоки.
I OUT OF RANGE I=I NAME=F (REMOVE?)
Входная структура F католога содержит индексный дескриптор с номером I, выходящим за пределы
списка дескрипторов.
UNALLOCATED I=I OWNER=O MODE=M SIZE=S MTIME=T NAME=F (REMOVE?)
Входная структура F католога содержит индексный дескриптор I без битов режима резервирования.
Выводятся имя файла и имя его владельца, а также значения режима, размера, времени модификации
этого файла. Если файловая система не смонтирована, и опция -n не задана, то данная входная структура удаляется автоматически при условии, что дескриптор, на который она указывает, имеет нулевой
размер.
DUP/BAD I=I OWNER=O MODE=M SIZE=S MTIME=T DIR=F (REMOVE?)
На этапах 1 или 1B обнаружены двойные или дефектные блоки, связанные со входной структурой
F дескриптора I каталога. Выводятся имя файла и имя его владельца, а также значения режима, размера, времени модификации этого файла.
P/BAD I=I OWNER=O MODE=M SIZE=S MTIME=T FILE=F (REMOVE?)
На этапах 1 или 1B обнаружены двойные или дефектные блоки, связанные со входной структурой
F файлового дескриптора I. Выводятся имя файла и имя его владельца, а также значения режима, размера, времени модификации этого файла.
BAD BLK B IN DIR I=I OWNER=O MODE=M SIZE=S MTIME=T
Это сообщение появляется лишь в случае использования опции -D. Сбойный блок обнаружен в
дескрипторе I каталога. Ищутся блоки каталога с ненулевыми фиктивными входными структурами,
противоречивыми структурами "." и "..", а также с вкраплениями косых черт в полях имен. Это сообщение означает, что пользователю следует в последующем либо удалить дескриптор каталога, если
блок полностью выглядит сбойным, или изменить (удалить) некорректный входные структуры этого
каталога.
Этап 3: Контроль связности
На этом этапе выполняются операции, касающиеся связности каталога, исследовавшейся на этапе
2.
Значение ответов Yes/No – Этап 3
Подсказка
RECONNECT?
n(no)
y(yes)
Игнорирует ошибку. На этапе 4
это влечет ошибку UNREF. Ответ
NO допустим только в том случае, когда пользователь намерен
предпринять другие меры для выяснения причины ошибки.
Восстанавливает дескриптор I каталога в каталоге для потерянных файлов (обычно lost+found) файловой системы. Если при соединении дескриптора I с каталогом
lost+found имеются проблемы, то это может
повлечь ошибку состояния lost+found. Если
соединение было успешным, то это может повлечь сообщение типа CONNECTED.
Сообщения об ошибках на этапе 3
UNREF DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (RECONNECT?)
31
Дескриптор I каталога при проверке файловой системы не был связан со входной структурой каталога. Выводятся значения режима, размера, времени модификации дескриптора I и владелец O. Программа fsck воссоединяет непустой каталог принудительно.
SORRY. NO lost+found DIRECTORY
В корневом каталоге файловой системы отсутствует каталог lost+found; fsck игнорирует запрос на
соединение каталога в lost+found. Это вызывает состояние ошибки UNREF на этапе 4. Возможно,
имеется проблема с режимом доступа для lost+found.
SORRY. NO SPACE IN lost+found DIRECTORY
В каталоге lost+found корневого каталога файловой системы нет места для добавления еще одной
входной структуры; fsck игнорирует запрос на соединение каталога в lost+found. Это вызывает состояние ошибки UNREF на этапе 4. Удалите из lost+found ненужные структуры или расширьте его (См.
Процедуру 5.2).
DIR I=I1 CONNECTED. PARENT WAS I=I2
Это – сообщение совещательного типа, указывающее на то, что дескриптор I1 каталога был успешно соединен с каталогом lost+found. Родительский дескриптор I2 дескриптора I1 замещается номером
дескриптора каталога lost+found.
Этап 4: Проверка адресации
На этом этапе осуществляется проверка адресации между звеньями, подготовленная на этапах 2 и
3.
Значение ответов Yes/No - Этап 3
Подсказка
n(no)
y(yes)
RECONNECT?
Игнорирует ошибку.
На этапе 4 это влечет ошибку
CLEAR.
Восстанавливает
дескриптор I каталога в каталоге
для потерянных файлов (обычно
lost+found) файловой системы.
Если при соединении дескриптора I с каталогом lost+found имеются проблемы, то это может повлечь
ошибку
состояния
lost+found.
CLEAR?
Состояние ошибки игнорируется. Ответ NO Освобождает дескриптор подопустим только в том случае, когда пользо- средством обнуления его содерватель намерен предпринять другие меры жимого.
для выяснения причин ошибки.
ADJUST?
Состояние ошибки игнорируется. Ответ NO Заменяет адресацию файлового
допустим только в том случае, когда пользо- индексного дескриптора I на Y.
ватель намерен предпринять другие меры
для выяснения причин ошибки.
32
Подсказка
FIX?
n(no)
y(yes)
Состояние ошибки игнорируется. Ответ NO Заменяет адресацию в суперблодопустим только в том случае, когда пользо- ке действительными значенияватель намерен предпринять другие меры ми.
для выяснения причин ошибки.
Сообщения об ошибках на этапе 4
UNREF DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (RECONNECT?)
Дескриптор I каталога при проверке файловой системы не был связан со входной структурой каталога. Выводятся значения режима, размера, времени модификации дескриптора I, а также имя владельца. Если опция -n опущена, и файловая система не смонтирована, то пустые файлы чистятся автоматически. Непустые файлы не чистятся.
SORRY. NO lost+found DIRECTORY
В корневом каталоге файловой системы отсутствует каталог lost+found; fsck игнорирует запрос на
соединение каталога в lost+found. Это вызывает состояние ошибки CLEAR на этапе 4. Возможно,
имеется проблема с режимом доступа для lost+found.
SORRY. NO SPACE IN lost+found DIRECTORY
В каталоге lost+found корневого каталога файловой системы нет места для добавления еще одной
входной структуры; fsck игнорирует запрос на соединение каталога в lost+found. Это вызывает состояние ошибки CLEAR на этапе 4. Проверьте размер и содержимое lost+found.
(CLEAR)
Только что упомянутый в сообщении UNREF дескриптор не может быть воссоединен.
LINK COUNT FILE I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y
(ADJUST?)
Значение указателя дескриптора I, представляющего собой файл, равняется X, но должно быть равно Y. Выводятся значения режима, размера, времени модификации и владелец O.
LINK COUNT DIR I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y
(ADJUST?)
Значение указателя дескриптора I, представляющего собой каталог, равняется X, но должно быть
равно Y. Выводятся значения режима, размера, времени модификации дескриптора каталога и владелец O.
LINK COUNT F I=I OWNER=O MODE=M SIZE=S MTIME=T COUNT=X SHOULD BE Y
(ADJUST?)
Значение указателя для имени F дескриптора I, равняется X, но должно быть равно Y. Выводятся
значения режима, размера, времени модификации дескриптора, имя файла F и его владелец O.
UNREF FILE I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR?)
Дескриптор I, представляющий собой файл, при проверке файловой системы не был связан со
входной структурой каталога. Выводятся значения режима, размера, времени модификации дескриптора I и владелец O. Если опция -n опущена, и файловая система не смонтирована, то пустые файлы
чистятся автоматически. Непустые файлы не чистятся.
UNREF DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR?)
33
Дескриптор I, представляющий собой каталог, при проверке файловой системы не был связан со
входной структурой каталога. Выводятся значения режима, размера, времени модификации дескриптора I и владелец O. Если опция -n опущена, и файловая система не смонтирована, то пустые каталоги
чистятся автоматически. Непустые каталоги не чистятся.
BAD/DUP FILE I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR?)
На этапах 1 или 1B обнаружены двойные или дефектные блоки, связанные с файловым дескриптором I. Выводятся имя владельца и значения режима, размера, времени модификации дескриптора.
BAD/DUP DIR I=I OWNER=O MODE=M SIZE=S MTIME=T (CLEAR?)
На этапах 1 или 1B обнаружены двойные или дефектные блоки, связанные с дескриптором I каталога. Выводятся имя владельца и значения режима, размера, времени модификации дескриптора.
FREE INODE COUNT WRONG IN SUPERBLK (FIX?)
Действительные значения указателей свободных инодов не согласуются со значениями в суперблоке файловой системы. Если задана опция -q, значение указателя в суперблоке будет исправлено автоматически.
Этап 5: Проверка списка свободных блоков
Значение ответов Yes/No - Этап 5
Подсказка
n(no)
y(yes)
CONTINUE?
Прерывает программу.
FIX?
Состояние ошибки игнорируется. От- Заменяет адресацию в суперблоке дейвет NO допустим только в том случае, ствительными значениями.
когда пользователь намерен предпринять другие меры для выяснения причин ошибки.
SALVAGE?
Состояние ошибки игнорируется. Ответ NO допустим только в том случае,
когда пользователь намерен предпринять другие меры для выяснения причин ошибки.
Сообщения об ошибках на этапе 5
Игнорирует остаток списка свободных
блоков и продолжает выполнение fsck. Эта
ошибка всегда вызывает состояние BAD
BLKS IN FREE LIST впоследствии на этапе 5.
Заменяет действующий список свободных
блоков новым списком. Новый список будет оптимизирован по времени ожидания
доворота диска в соответствии со спецификациями опций -s и -S.
EXCESSIVE BAD BLKS IN FREE LIST (CONTINUE?)
Список свободных блоков содержит больше допустимого (обычно 10) блоков с номерами меньше
номера первого блока данных или больше номера последнего блока файловой системы.
EXCESSIVE DUP BLKS IN FREE LIST (CONTINUE?)
Список свободных блоков содержит больше допустимого (обычно 10) блоков, упомянутых индексными дескрипторами или более ранними частями этого списка.
BAD FREEBLK COUNT
34
Указатель свободных блоков в списке свободных блоков больше 50 или меньше 0. Эта ошибка всегда влечет состояние BAD FREE LIST позже на этапе 5.
X BAD BLKS IN FREE LIST
X блоков в списке свободных блоков имеют номера меньше номера первого блока данных или
больше номера последнего блока файловой системы. Эта ошибка всегда влечет состояние BAD FREE
LIST позже на этапе 5.
X DUP BLKS IN FREE LIST
В списке свободных блоков обнаружено X блоков, упомянутых индексными дескрипторами или в
более ранних частях этого списка. Эта ошибка всегда влечет состояние BAD FREE LIST позже на этапе 5.
X BLK(S) MISSING
В списке свободных блоков обнаружено X блоков, неиспользующихся в файловой системе. Эта
ошибка всегда влечет состояние BAD FREE LIST позже на этапе 5.
FREE BLK COUNT WRONG IN SUPERBLK (FIX?)
Действительное количество свободных блоков не согласуются со значениями в суперблоке файловой системы.
BAD FREE LIST (SALVAGE?)
Этому сообщению всегда предшествует одно или несколько сообщений на этапе 5. Если задана опция -q, то список свободных блоков сохраняется автоматически.
Этап 6: Сохранение списка свободных блоков
На этом этапе реконструируется список свободных блоков. Эдесь возможно возникновение одной
ошибки, проистекающей из неверных установок величины щели и количества блоков на один цилиндр.
Сообщения об ошибках на этапе 6
DEFAULT FREE-BLOCK LIST SPACING ASSUMED
Это сообщение совещательного типа, указывающее на то, что количество пропускаемых блоков
(величина щели) больше, чем количество блоков в цилиндре, или меньше 1, или, что количество блоков в цилиндре – больше 500. При этом устанавливаются значения: 7 пропускаемых блоков и 400 блоков в цилиндре.
Этап чистки
После проверки файловой системы выполняется несколько функций очистки файловой системы.
На этом этапе выдаются сообщения совещательного типа о файловой системе и о ее статусе.
Сообщения на этапе чистки
X files blocks Z free
Это информационное сообщение, указывающее на то, что проверенная файловая система содержит
X файлов, используя Y блоков и оставив свободными Z блоков.
***** BOOT XENIX (NO SYNC!) *****
Это информационное сообщение указывает, что смонтированная файловая система или корневая
файловая система модифицировалась программой fsck. Если систему XENIX немедленно не переза-
35
грузить без использования sync, то работа, проделанная fsck, может быть сведена на нет с помощью
встроенных копий таблиц, которые хранит система XENIX. Если в команде fsck была задана опция -b,
и данная файловая система является корневой, то перезагрузка выполняется автоматически.
***** FILE SYSTEM WAS MODIFIED *****
Это информационное сообщение указывает, то текущая файловая система модифицировалась программой fsck.
3.1.7.3. df
df – сведения о числе свободных блоков и описателей файлов
Синтаксис:
df
[-t] [-f] [файловая_система ...] [каталог ...]
Описание:
Команда df выдает число свободных килобайтных блоков и незанятых описателей файлов в
смонтированных файловых системах, используя значения соответствующих счетчиков в суперблоках.
Файловая_система может быть задана либо именем устройства (например, /dev/dsk/hd0s0), либо
именем каталога, на который она смонтирована (например, /mnt).
Каталог задается полным именем. Будет выдана информация об устройстве, содержащем этот каталог.
Если аргументы не указаны, будет выдана информация о свободном пространстве для всех смонтированных файловых систем.
Команда df использует следующие опции:
-t
Наряду со сведениями о числе свободных блоков и незанятых описателей выдается также общее
число блоков и описателей файлов.
-f
Число свободных блоков определяется путем прямого подсчета по списку свободных блоков, а не
по значению счетчика в суперблоке (информация о незанятых описателях не выдается).
Примечания:
Если в команде задан список из нескольких файловых систем и/или каталогов, то при повторной
выдаче информации о некоторой файловой системе соответствующая строка будет помечена звездочкой.
Файлы:
/dev/dsk/*
/etc/mnttab
3.1.7.4. du
du – сводка использования дискового пространства
Синтаксис:
du
[-s] [-a] [-r] [файл ...]
36
Описание:
Команда du выдает количество килобайтных блоков, содержащихся во всех заданных файлах, среди
которых могут быть каталоги. Обход каталогов выполняется, начиная с указанных, рекурсивно на любую глубину. При подсчете учитываются косвенные блоки файлов. Если файлы не заданы, работа
идет с текущим каталогом.
Опции означают следующее:
-s
Выдается только общая сумма для каждого заданного файла (даже если он является каталогом).
-a
Для каждого файла, встретившегося при обходе, выдается строка, содержащая число блоков и имя
файла.
Если ни одна из этих опций не задана, выходные строки генерируются только для каталогов, встретившихся при обходе.
-r
Вызывает выдачу сообщений о каталогах, которые не могут быть прочитаны, о файлах, которые нельзя открыть и т.д., в отличие от режима без сообщений (по умолчанию).
Файл, на который имеется две и более ссылки, учитывается только один раз.
Примечания:
Если не используется опция -a или -s, сведения об указанных в командной строке файлах, не являющихся каталогами, не выдаются.
Если между каталогами, расположенными на различных ветвях файловой системы, имеются ссылки, du будет учитывать такие файлы более одного раза.
Для файлов с пустотами число блоков определяется неверно.
3.1.7.5. find
find - поиск файлов
Синтаксис:
find список_поиска выражение
Описание:
Команда find рекурсивно просматривает каждый из каталогов, перечисленных в списке_поиска,
отыскивая файлы, удовлетворяющие логическому выражению, построенному с помощью описанных
ниже средств. В список_поиска могут входить и обычные файлы. Далее n обозначает целое десятичное число, на месте которого могут также указываться комбинации +n, что означает "больше, чем n",
и -n, что означает "меньше, чем n". Элементарные логические выражения и их результаты:
-name шаблон_файлов
Истина, если текущий файл удовлетворяет шаблону_файлов. Символы шаблона, имеющие для
shell'а специальный смысл, должны быть экранированы.
[-perm] [-]восьмеричное_число
Истина, если режим доступа к текущему файлу в точности равен восьмеричному_числу [см.
37
chmod(1)]. Если перед восьмеричным_числом указан знак -, то для сравнения из режима файла берутся только биты, соответствующие битам восьмеричного_числа, равным единице.
-type c
Истина, если файл имеет тип c, где c есть b, c, d, p или f - блочный или символьный специальный
файл, каталог, именованный канал или обычный файл.
-links n
Истина, если на файл имеется n ссылок.
-user имя_пользователя
Истина, если файл принадлежит пользователю с данным именем. Если имя_пользователя является
числом и не встречается в файле /etc/passwd, оно рассматривается как идентификатор пользователя.
-group имя_группы
Истина, если файл принадлежит группе с данным именем. Если имя_группы является числом и не
встречается в файле /etc/group, оно рассматривается как идентификатор группы.
-size n[c]
Истина, если файл занимает n блоков (по 512 байт). Если указана буква c, то размер файла задается
в символах. Напомним, что с помощью комбинаций +n и -n можно проверять размер (и три указанные
ниже характеристики) не только на равенство, но и на неравенство.
-atime n
Истина, если последний доступ к файлу производился n дней назад. Сама команда find изменяет
время доступа к каталогам, входящим в список_поиска.
-mtime n
Истина, если файл последний раз модифицировался n дней назад.
-ctime n
Истина, если характеристики файла (размер, режим доступа) последний раз изменялись n дней назад.
-exec команда
Истина, если после выполнения команды возвращается нулевой код завершения. Запись команды
должна заканчиваться экранированной точкой с запятой. Аргумент команды { } заменяется текущим
маршрутным именем файла.
-ok команда
Эквивалентно -exec за исключением того, что перед выполнением команды запрашивается подтверждение (в виде сгенерированной командной строки со знаком вопроса в конце) и она выполняется
только при ответе y.
-print
Всегда истина; вызывает выдачу маршрутного имени текущего файла.
-cpio устройство
Всегда истина; вызывает вывод текущего файла на указанное устройство в формате cpio(1) (записями по 5120 байт).
38
-newer файл
Истина, если текущий файл был модифицирован позднее указанного файла.
-depth
Всегда истина; изменяет способ просмотра каталогов: сначала просматриваются входящие в каталог файлы, а затем уже сам каталог. Этот предикат полезен в сочетании с cpio(1) для переноса файлов
из каталогов, на запись в которые нет прав.
-mount
Всегда истина; ограничивает поиск файловой системой, содержащей указанный в списке_поиска
каталог. Если в списке_поиска не указан ни один каталог, используется текущий.
-local
Истина, если файл физически находится на локальной системе.
(выражение)
Истина, если истинно заключенное в скобки выражение (скобки должны быть экранированы от интерпретации shell'ом).
Элементарные логические выражения могут комбинироваться с помощью следующих операций (в
порядке уменьшения приоритета):
1. Унарная операция отрицания, обозначается !.
2. Логическое И, обозначается пробелом.
3. Логическое ИЛИ, обозначается -o.
Пример:
1. Удалить все файлы с именами a.out или *.o, доступ к которым не производился в течение недели:
find / \( -name a.out -o -name '*.o' \) \
-atime +7 -exec rm {} \;
2. Удалить из текущего каталога и его подкаталогов все файлы нулевого размера, запрашивая подтверждение:
find . -size 0c -ok rm {} \;
Файлы:
/etc/passwd
/etc/group
Примечания:
Команда
find / -depth
всегда завершается неудачей с сообщением
find: stat failed: : No such file or directory
Она исправно обходит все файлы, кроме корневого каталога.
39
3.1.7.6. locate
locate - поиск файлов
Синтаксис:
locate pattern
Описание:
locate ищет в базе данных информацию для указанного выражения в pattern и выдает все пути для
заданного имени файла. База данных переодически изменяется и содержит информацию о доступных
по чтению для всех путях и именах файлов.
Нет необходимости указывать спецсимволы ? и *, поскольку locate будет искать именно заданное
имя в строке pattern.
Фaйлы:
/var/db/locate.database
База данных
/usr/libexec/locate.updatedb
Скрипт для модернизирования базы данных
Примечание:
locate может ошибаться в поиске файлов, поскольку ищет информацию о них в базе данных. Если
файлы были удалены или переименованы, то locate может их не найти.
3.1.7.7. which
which - ищет программный файл.
Синтаксис:
which [-as] [command] ...
Описание:
Which выдает путь к указанному в аргументе command исполняемому файлу.
Опции:
-a
Список всех похожих исполнимых файлов.
-s
Не выводить путь. Возвращает 0, если файл найден и 1, если файл не найден.
3.1.7.8. cd
cd - смена текущего каталога
Синтаксис:
cd
[каталог]
Описание:
Команда cd применяется для того, чтобы сделать заданный каталог текущим. Если каталог не ука-
40
зан, используется значение переменной окружения $HOME (обычно это каталог, в который Вы попадаете сразу после входа в систему). Если каталог задан полным маршрутным именем, он становится
текущим. Если маршрутное имя не полное, команда cd пытается найти каталог по одному из маршрутов, заданных переменной окружения $CDPATH. Способ задания и семантика этой переменной такие
же, как у $PATH. По отношению к новому каталогу нужно иметь право на выполнение, которое в данном случае трактуется как разрешение на поиск.
Поскольку для выполнения каждой команды создается отдельный процесс, cd не может быть обычной командой; она распознается и выполняется shell'ом.
3.1.7.9. pwd
pwd - выдача имени текущего каталога
Синтаксис:
pwd
Описание:
Команда pwd выдает имя текущего (рабочего) каталога.
3.1.7.10.
mkdir
mkdir - создание каталога
Синтаксис:
mkdir
[-m режим_доступа] [-p] каталог ...
Описание:
По команде mkdir создается один или несколько каталогов с режимом доступа 0777 [возможно измененном с учетом umask(1) и опции -m]. Стандартные файлы (. - для самого каталога и .. - для вышележащего) создаются автоматически; их нельзя создать по имени. Для создания каталога необходимо
располагать правом записи в вышележащий каталог.
Идентификаторы владельца и группы новых директорий устанавливаются соответственно равными
реальным идентификаторам владельца и группы процесса.
Командой mkdir обрабатываются две опции:
-m режим_доступа
Явное задание режима_доступа для создаваемых каталогов.
-p
При указании этой опции перед созданием нового каталога предварительно создаются все несуществующие вышележащие каталоги.
Примеры:
Чтобы создать поддерево каталогов tmpdir/temp/dir, надо выполнить команду:
mkdir -p tmpdir/temp/dir
Коды завершения:
0
Все каталоги были успешно созданы.
41
3.1.7.11.
ls
ls - выдача информации о файлах или каталогах
Синтаксис:
ls
[-R] [-a] [-d] [-C] [-x] [-m] [-l] [-n] [-o] [-g] [-r] [-t] [-u] [-c
[-p] [-F] [-b] [-q] [-i] [-s] [-f] [имя ...]
Описание:
Команда ls для каждого имени каталога распечатывает список входящих в этот каталог файлов; для
файлов – повторяется имя файла и выводится дополнительная информация в соответствии с указанными флагами. По умолчанию имена файлов выводятся в алфавитном порядке. Если имена не заданы,
выдается содержимое текущего каталога. Если заданы несколько аргументов, то они сортируются по
алфавиту, однако сначала всегда идут файлы, а потом каталоги с их содержимым.
Существует три основных формата выдачи. По умолчанию выдается по одному файлу в строке;
флаги -C и -x позволяют выдавать информацию в несколько колонок, а флаг -m задает свободный формат. Для определения формата вывода при указании флагов -C, -x и -m используется переменная окружения COLUMNS, значение которой равно количеству символов в выходной строке. Если эта переменная не установлена, используется база данных terminfo и значение переменной окружения TERM.
Если эта информация недоступна, длина выходной строки берется равной 80.
Командой ls обрабатываются следующие флаги:
-R
Рекурсивно обойти встретившиеся подкаталоги.
-a
Вывести список всех файлов (обычно не выводятся файлы, имена которых начинаются с точки).
-d
Если аргумент является каталогом, то выводить только его имя, а не содержимое. Часто используется с флагом -l для получения сведений о состоянии каталога.
-C
Вывод в несколько колонок с сортировкой по колонкам.
-x
Вывод в несколько колонок с сортировкой по строкам.
-m
Вывод в свободном формате, имена файлов разделяются запятыми.
-l
Вывод в длинном формате: перед именами файлов выдается режим доступа, количество ссылок на
файл, имена владельца и группы, размер в байтах и время последней модификации (см. ниже). Если
файл является специальным, то в поле размера выводится старший и младший номера устройства.
-n
То же, что и -l, но идентификаторы владельца и группы выводятся в виде чисел, а не в виде имен.
-o
42
То же, что и -l, но идентификатор группы не выводится.
-g
То же, что и -l, но идентификатор владельца не выводится.
-r
Изменить порядок сортировки на обратный алфавитный или, при наличии флага -t, сначала выводить более старые файлы.
-t
Имена файлов сортируются не по алфавиту, а по времени (сначала идут самые свежие файлы). По
умолчанию используется время последнего изменения. См. также флаги -u и -c.
-u
Вместо времени последнего изменения использовать время последнего доступа для сортировки (с
флагом -t) или для вывода (с флагом -l).
-c
Вместо времени последнего изменения использовать время последней модификации описателя
файла (т.е. время создания файла, изменения режима доступа к нему и т.п.) для сортировки (с флагом t) или для вывода (с флагом -l).
-p
Если файл является каталогом, то выдавать после его имени символ /.
-F
Если файл является каталогом, то выдавать после его имени символ /; если файл является выполняемым, то выдавать после его имени символ *.
-b
Выдавать непечатные символы, входящие в имя файла, в восьмеричном виде (\ddd).
-q
Выдавать непечатные символы, входящие в имя файла, в виде символа ?.
-i
Выдавать в первой колонке номера описателей файлов.
-s
Выдавать размер файлов в блоках (включая косвенные блоки).
-f
Рассматривать каждый аргумент как каталог и выводить его содержимое. Этот флаг отменяет флаги
-l, -t, -s, -r и включает флаг -a. Сортировка имен файлов не производится; имена выдаются в таком порядке, в каком они перечислены в каталоге.
Режим доступа к файлу при указании флага -l выводится в виде 10 символов. Первый символ означает:
d
Файл является каталогом.
43
b
Файл является специальным блочным файлом.
c
Файл является специальным символьным файлом.
p
Файл является именованным каналом.
Обычный файл.
Остальные 9 символов делятся на три группы по три символа: права доступа владельца, других
пользователей из его группы, всех прочих пользователей. Внутри каждой группы используются три
символа, обозначающие права на чтение, запись и выполнение файла соответственно. Для каталога
под правом на выполнение подразумевается право на просмотр в поисках требуемого файла.
При использовании команды
ls -l /util/by
результат выглядит примерно так:
-rwxr-xr-x
1 root
sys
50 Jun 22 10:42 /util/by
Читая справа налево можно увидеть, что содержимое файла /util/by последний раз изменялось в 10
часов 42 минуты 22 января. Размер файла 50 байт. Владелец этого файла принадлежит группе sys, к
тому же он является суперпользователем (входное имя - root). Следующее число, в данном случае 1,
обозначает количество ссылок на файл /util/by. Наконец, последовательность минусов и букв указывает, что владелец, члены группы и прочие пользователи могут читать и выполнять файл, а владелец (и
только он) имеет право писать в файл.
Права обозначаются следующим образом:
r
Право на чтение.
w
Право на запись.
x
Право на выполнение (поиск в каталоге).
Данное право доступа отсутствует.
l
Учет блокировки доступа (бит переустановки идентификатора группы равен 1, бит права на выполнение членами группы равен 0). Располагается на месте права на выполнение для членов группы.
s
Право переустанавливать идентификатор группы или идентификатор владельца и право выполнения файла для членов группы или владельца.
44
S
Неопределенная комбинация бит: право переустанавливать идентификатор владельца есть, а право
выполнения файла для владельца отсутствует.
t
Установлен бит навязчивости у файла, который могут выполнять прочие пользователи. Располагается на месте права на выполнение для прочих пользователей.
T
Бит навязчивости установлен, а права на выполнение у прочих пользователей нет. Располагается на
месте права на выполнение для прочих пользователей.
Примеры:
1. Если файл имеет режим
-rwxr--r-
он доступен владельцу для чтения, записи и выполнения, а членам группы и прочим пользователям
только для чтения.
2. Режим
-rwsr-xr-x
свидетельствует о том, что файл доступен владельцу для чтения, записи и выполнения, а членам
группы и прочим пользователям только для чтения и выполнения. Разрешена переустановка при выполнении идентификатора пользователя на идентификатор владельца файла.
3. В случае режима
-rw-rwl--
файл доступен для чтения и записи только владельцу и членам группы; может быть блокирован
при доступе.
4. По команде
ls -a
будут выведены имена всех файлов в текущем каталоге, включая и те, которые начинаются с точки
и обычно не выдаются.
5. По команде
ls -aisn
будет выдана разнообразная информация: список всех файлов, включая те, которые обычно не выводятся (a); номера описателей файлов будут выведены в левой колонке (i); размеры файлов (в блоках)
выводятся во второй колонке (s); наконец, будут выданы числовые идентификаторы владельцев и
групп (n).
Файлы:
/etc/passwd
Идентификаторы
пользователей (для ls -l и ls -o).
/etc/group
Идентификаторы групп для (ls -l и ls -o).
45
/usr/lib/terminfo/?/*
Сведения о терминале.
3.1.7.12.
cp
cp – копирование файлов
Синтаксис:
cp
файл1 [файл2 ...] целевой_файл
Описание:
Команда cp копирует файл1 в целевой_файл. Файл1 не должен совпадать с целевым_файлом (будьте внимательны при использовании метасимволов shell'а). Если целевой_файл является каталогом, то
файл1, файл2,..., копируются в него под своими именами. Только в этом случае можно указывать
несколько исходных файлов.
Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Режим,
владелец и группа целевого_файла при этом не меняются.
Если целевой_файл не существует или является каталогом, новые файлы создаются с теми же режимами, что и исходные (кроме бита навязчивости, если Вы не суперпользователь). Время последней
модификации целевого_файла (и последнего доступа, если он не существовал), а также время последнего доступа к исходным файлам устанавливается равным времени, когда выполняется копирование.
Если целевой_файл был ссылкой на другой файл, все ссылки сохраняются, а содержимое файла изменяется.
3.1.7.13.
mv
mv - перемещение (переименование) файлов
Синтаксис:
mv
[-f] файл1 [файл2 ...] целевой_файл
Описание:
Команда mv перемещает (переименовывает) файл1 в целевой_файл. Файл1 не должен совпадать с
целевым_файлом (будьте внимательны при использовании метасимволов shell'а). Если целевой_файл
является каталогом, то файл1, файл2, ..., перемещаются в него под своими именами. Только в этом
случае можно указывать несколько исходных файлов.
Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Если при
этом обнаруживается, что в целевой_файл не разрешена запись, то выводится режим этого файла [см.
chmod(2)] и запрашивается строка со стандартного ввода. Если эта строка начинается с символа y, то
требуемые действия все же выполняются, при условии, что у пользователя достаточно прав для удаления целевого_файла. Если была указана опция -f или стандартный ввод назначен не на терминал, то
требуемые действия выполняются без всяких запросов. Вместе с содержимым целевой_файл наследует режим файла1.
Если файл1 является каталогом, то он переименовывается в целевой_файл, только если у этих двух
каталогов общий надкаталог; при этом все файлы, находившиеся в файле1, перемещаются под своими
именами в целевой_файл. Если файл1 является файлом, а целевой_файл - ссылкой, причем не
единственной, на другой файл, то все остальные ссылки сохраняются, а целевой_файл становится новым независимым файлом.
46
Примечание:
Если файл1 и целевой_файл лежат на разных файловых системах, то команда mv копирует файл1, а
затем удаляет оригинал; если файл1 был ссылкой, то целевой_файл ссылкой быть не сможет.
3.1.7.14.
rm
rm – удаление файлов или каталогов
Синтаксис:
rm
[-f] [-i] файл ...
rm
-r [-f] [-i] каталог ... [файл ...]
Описание:
Команда rm служит для удаления указанных имен файлов из каталога. Если заданное имя было последней ссылкой на файл, то файл уничтожается. Для удаления пользователь должен обладать правом
записи в каталог; иметь право на чтение или запись файла не обязательно.
Если нет права на запись в файл и стандартный ввод назначен на терминал, то выдается (в восьмеричном виде) режим доступа к файлу и запрашивается подтверждение; если оно начинается с буквы y,
то файл удаляется, иначе - нет. Если стандартный ввод назначен не на терминал, команда rm ведет
себя так же, как при наличии опции -f.
Допускаются следующие три опции:
-f
Команда не выдает сообщений, когда удаляемый файл не существует, не запрашивает подтверждения при удалении файлов, на запись в которые нет прав. Если нет права и на запись в каталог, файлы
не удаляются. Сообщение об ошибке выдается лишь при попытке удалить каталог, на запись в который нет прав (см. опцию -r).
-r
Происходит рекурсивное удаление всех каталогов и подкаталогов, перечисленных в списке аргументов. Сначала каталоги опустошаются, затем удаляются. Подтверждение при удалении файлов, на
запись в которые нет прав, не запрашивается, если задана опция -f или стандартный ввод не назначен
на терминал и не задана опция -i.
При удалении непустых каталогов команда rm -r предпочтительнее команды rmdir(1), так как последняя способна удалить только пустой каталог.
-i
Перед удалением каждого файла запрашивается подтверждение. Опция -i устраняет действие опции -f; она действует даже тогда, когда стандартный ввод не назначен на терминал.
Примеры:
Опция -i часто используется совместно с -r. По команде:
rm
-ir dirname
запрашивается подтверждение:
directory dirname: ?
При положительном ответе запрашиваются подтверждения на удаление всех содержащихся в каталоге файлов (для подкаталогов выполняются те же действия), а затем подтверждение на удаление
47
самого каталога.
Коды завершения:
0
Все файлы и каталоги были успешно удалены.
2
В противном случае.
Диагновстика:
Смысл всех сообщений самоочевиден.
Запрещено удалять файлы . и .., чтобы не нарушить целостность файловой системы. Команда
rm
-r .*
приведет к выдаче сообщений об ошибках.
3.1.7.15.
cat
cat - слияние и вывод файлов
Синтаксис:
cat
[-u] [-s] [-v] [-t] [-e] файл ...
Описание:
Команда cat по очереди читает указанные файлы и выдает их содержимое на стандартный вывод.
Так, например,
cat f
распечатывает содержимое файла f, а
cat f1 f2 > f3
сливает первые два файла и помещает результат в третий. Чтобы добавить файл f1 к файлу f2, надо
выполнить команду
cat f1 >> f2
Если не указан ни один файл или среди аргументов встретился -, команда cat читает данные со
стандартного ввода. Опции команды cat имеют следующий смысл:
-u
Вывод не буферизуется (по умолчанию буферизуется).
-s
Не сообщается о несуществующих файлах.
-v
Визуализация непечатных символов (кроме табуляций, переводов строк и переходов к новой странице). Управляющие символы изображаются в виде ^X (CTRL+X); символ DEL (восьмеричное 0177) в виде ^?. Символы, не входящие в набор ASCII (то есть со взведенным восьмым битом) выдаются в
виде M-x, где x - определяемый младшими семью битами символ.
С опцией -v можно использовать следующие опции:
48
-t
Визуализация символов табуляции в виде ^I.
-e
Визуализация символов перевода строки в виде $ (строка при этом все же переводится).
Если опция -v не указана, то опции -t и -e игнорируются.
Диагностика:
Команды типа
cat f1 f2 > f1
приводят к сообщению:
cat: input/output files 'f1' identical
3.1.7.16.
more
more - Осуществляет поэкранный просмотр текста файла.
Синтаксис:
more [ -cdflrsuw ] [-n ] [ +linenumber ] [ +/pattern ]
[ name... ]
Описание:
Этот фильтр позволяет осуществлять проверку текста, выведенного на один полный экран. После
каждого заполнения экрана команда делает паузу и выводит на нижней строке экрана сообщение типа:
--More--
(дальше). Если при этом пользователь нажимает клавишу carriage return (возврат каретки), то на
экран будет выведена следующая строка текста. Если пользователь нажимает клавишу SPACE (пробел), будет выведен следующий полный экран. Другие возможности описаны ниже.
Опции:
-n
Целое число, используемое в качестве размера окна (в строках) вместо принятого для команды
more по умолчанию.
-с
Команда more отображает в верхней части экрана каждую страницу с начала, стирая при этом предварительно выведенную там строку. Это исключает прокрутку экрана, облегчая чтение текста с помощью команды more. Эта опция игнорируется, если терминал не имеет возможности очищать строку
до конца.
-d
Команда more в конце каждого заполненного экрана высвечивает сообщение " Hit space to continue,
Rubout to abort" ("Нажмите пробел для продолжения, а Rubout -для прерывания"). Эта опция полезна,
если команда more используется в качестве фильтра в некоторых системах, таких как класс, где многие пользователи могут быть неопытными.
-f
49
Под действием этой опции команда more считает не экранные, а логические строки. То есть, длинные строки не заворачиваются. Рекомендуется использовать эту опцию, если вывод команды nroff
подключается в конвейер через команду ul, которая может генерировать escape последовательности.
Эти escape - последовательности содержат символы, которые обычно занимают экранные позиции, но
не печатаются при выводе на терминал в качестве части escape - последовательности. Таким образом,
команда more может решить, что строки длиннее, чем они есть на самом деле и ошибочно завернуть
их.
-l
Умышленно не обрабатывается команда Ctrl-L (form feed - переход на новую страницу). Если не задана эта опция, команда more останавливается после любой строки, содержащей Ctrl-L, до тех пор,
пока экран не заполнится до конца. Также, если некоторый файл начинается со знака form feed, экран
очищается прежде, чем распечатывается этот файл.
-u
Обычно команда more осуществляет такое же подчеркивание, как при команде nroff, в том виде, который соответствует данному терминалу: если терминал может делать подчеркивание или имеет режим выделения, то выходные данные команды more соответствуют escape последовательностям для
разрешения подчеркивания или режима выделения для подчеркнутого текста в исходном файле. Опция -u подавляет такую обработку.
-r
Обычно, команда more игнорирует управляющие символы, которые она не интерпретирует некоторым образом. Под действием опции -r эти символы отображаются как ^C, где стоит "С" для любого
такого символа.
-w
Обычно, команда more завершает работу при подходе к концу своих входных данных. А под действием опции w, однако, команда more запрашивает пользователя и ждет нажатия любой клавиши
перед завершением работы.
+linenumber
Команда more стартует со строки с номером linenumber (номер строки).
+/pattern
Команда more cтартует просмотр текста за две строки до той строки, в которой содержится регулярное выражение pattern (шаблон).
Команда more просматривает файл /etc/termcap для определения характеристик терминала и для
определения установленного по умолчанию размера окна. Для терминала, отображающего 24 строки,
размер окна по умолчанию составляет 22 строки.
Команда more просматривает переменную среды MORE для предварительной установки любых
желаемых флагов. Например, если вы предпочитаете просматривать файлы, используя режим работы
-с, то команда "МORE=-с" интерпретатора shell в файле .profile обеспечивает все обращения к команде more для реализации этого режима.
Если команда more считывается из файла, а не из программного канала, вслед за приглашением "-MORE--" высвечивается процентное соотношение. Оно показывает, какая часть данного файла (в символах, а не в строках) уже прочитана.
Другие последовательности, которые могут быть введены в паузах команды more, а также их дей-
50
ствия, приведены ниже (i - это необязательный целый аргумент, по умолчанию равен 1 ):
i<space>
Отображает еще i строк (или другой полный экран, если не задан аргумент). Ctrl-D Отображает
еще 11 строк ("scroll" - прокрутка экрана). Если аргумент i задан, то размер прокручиваемых строк
устанавливается равным i.
d
Тоже, что и под действием Ctrl-D.
iz
Тоже, что и при вводе space (пробел), при этом i, если оно указано, становится новым размером
окна.
is
Пропускает i строк и выводит полный экран строк.
if
Пропускает i полных экранов и выводит полный экран.
q или Q
Выходит из команды more.
=
Выводит номер текущей строки.
v
Стартует экранный редактор vi на текущей строке. Заметим, что vi может быть не доступен вашей
системе.
h или ?
Вспомогательная команда (help). Дает описание всех команд more.
i/expr
Отыскивает i-ое появление регулярного выражения expr. Если выражение expr встретилось менее i
раз, и входные данные представляют собой файл (а не программный канал), то позиция в файле остается без изменений. В противном случае, высвечивается полный экран, начиная на две строки выше
того места, где было найдено регулярное выражение. Можно использовать пользовательские символы
стирания и уничтожения для редактирования регулярного выражения. Стирание последней встретившейся первой колонки отменяет команду поиска.
in
Осуществляет поиск i-го появления последнего введенного регулярного выражения.
'
(Одиночная кавычка) Возвращается к точке, с которой был начат последний поиск. Если в текущем
файле поиск не проводился, эта команда возвращает вас к началу файла.
!commmand
Подключает интерпретатор shell с командой command. Символы % и ! в "command" заменяются на
51
текущее имя файла и предыдущую команду shell соответственно. Если текущее имя файла отсутствует, то знак % не раскрывается. Последовательности "\%" и "\!" заменяются на "%" и "!" соответственно.
i:n
Переходит к следующему i-му файлу, заданному в ко мандной строке (переходит к последнему
файлу, если i не указано).
i:p
Переходит к предыдущему i-му файлу , заданному в командной строке. Если эта команда задана в
середине распечатывания файла, команда more возвращается к началу файла. Если i не задано, команда more переходдит к первому файлу. Если команда more не считывается из файла, то звенит звонок и ничего больше не происходит.
:f
Высвечивает текущее имя файла и номер строки.
:q или :Q
Выходит из команды more ( также как q или Q).
.
Повторяет предыдущую команду.
Команды начинают действовать немедленно. Нет необходимости нажимать клавишу возврата каретки. До того момента, когда задан сам командный символ, пользователь может ввести символ уничтожения строки для отмены сформированного численного аргумента. Кроме того, пользователь может ввести символ стирания для повторной высветки сообщения "--More--(1xx0%)".
Этой программой терминал устанавливается в режим noecho (неотображаемая передача), так что
процесс вывода может быть непрерывным. За исключением команд (/) и (!), то, что вы вводите, не будет показано на терминале.
Если стандартное устройство вывода не является телетайпом, команда more действует почти также,
как команда cat, за исключением того, что заголовок печатается перед каждым файлом (если их
несколько).
В качестве примера использования команды more можно привести следующий вывод с предварительным просмотром посредством команды nroff:
nroff -ms +2 doc.n | more -s
Файлы:
/etc/termcap
База данных терминала
/usr/lib/more.help
Файл подсказки (help)
Примечания:
Опции vi и help могут быть не доступны.
Перед отображением файла команда more пытается определить, является ли файл двоичным, не
подлежащим распечатыванию, таким как каталог или выполняемое, двоичное отображение. Если ко-
52
манда more заключает, что файл не подлежит распечатыванию, она запрещает его печатать. Однако,
команда more не может распознать все возможные виды непечатаемых файлов.
3.1.7.17.
ln
ln - создание ссылки на файл
Синтаксис:
ln
[-f] файл1 [файл2 ...] целевой_файл
Описание:
Команда ln делает целевой_файл ссылкой на файл1. Файл1 не должен совпадать с целевым_файлом
(будьте внимательны при использовании метасимволов shell'а). Если целевой_файл является каталогом, то в нем создаются ссылки на файл1, файл2,... с теми же именами. Только в этом случае можно
указывать несколько исходных файлов.
Если целевой_файл существует и не является каталогом, его старое содержимое теряется. Если при
этом обнаруживается, что в целевой_файл не разрешена запись, то выводится режим доступа к этому
файлу [см. chmod(2)] и запрашивается строка со стандартного ввода. Если эта строка начинается с
символа y, то требуемые действия все же выполняются, при условии что у пользователя достаточно
прав для удаления целевого_файла. Если была указана опция -f или стандартный ввод назначен не на
терминал, то требуемые действия выполняются без всяких запросов. Целевой_файл наследует режим
доступа к файлу1.
Ограничения:
Команда ln не создает ссылок между разными файловыми системами, поскольку они (файловые системы) могут добавляться и удаляться.
3.1.7.18.
file
file – определение типа файла
Синтаксис:
file
[-c] [-f файл_имен] [-m магический_файл] файл ...
Описание:
Команда file проводит серию тестов, пытаясь классифицировать файлы, указанные в командной
строке. Если файл текстовый, команда пытается по первым 512 байтам угадать язык программирования. Для выполняемых файлов выдается также номер версии, если он больше 0 [см. ld(1)].
Опциям команды file приписан следующий смысл:
-c
Проверка правильности формата магического файла. По соображениям эффективности эта проверка обычно не делается. При наличии опции -c типы файлов не определяются.
-f файл_имен
Определяются типы файлов, имена которых заданы в файле_имен.
-m магический_файл
Задается магический_файл, отличный от стандартного, /etc/magic. Магический файл содержит список магических чисел, по которым и производится классификация. Комментарии в начале файла /etc/
53
magic об ясняют его формат.
Файлы:
/etc/magic
3.1.7.19.
chmod
chmod – изменение режима доступа к файлам
Синтаксис:
chmod
режим файл ...
Описание:
Права доступа к указанным файлам (среди которых могут быть каталоги) изменяются в соответствии с указанным режимом. Режим может быть задан в абсолютном или символьном виде.
Абсолютный вид - восьмеричное число, являющееся поразрядным ИЛИ следующих режимов:
04000
При выполнении переустановить действующий идентификатор пользователя.
020#0
При выполнении переустановить действующий идентификатор группы, если # есть 7, 5, 3 или 1;
учитывать блокировку доступа, если # есть 6, 4, 2 или 0.
01000
Бит навязчивости [см. chmod(2)].
00400
Доступен для чтения владельцем.
00200
Доступен для записи владельцем.
00100
Доступен для выполнения (в случае каталога - для просмотра) владельцем.
00040
Доступен для чтения членами группы.
00020
Доступен для записи членами группы.
00010
Доступен для выполнения (просмотра) членами группы.
00004
Доступен для чтения прочими пользователями.
00002
Доступен для записи прочими пользователями.
54
00001
Доступен для выполнения (просмотра) прочими пользователями.
Использование символьного вида основано на однобуквенных обозначениях, которые определяют
класс доступа и права доступа для членов данного класса. Права доступа к файлу зависят от идентификатора пользователя и идентификатора группы, в которую он входит. Режим в целом описывается в
терминах трех последовательностей, по три буквы в каждой:
Владелец
Группа
Прочие
(u)
(g)
(o)
rwx
rwx
rwx
Здесь владелец, члены группы и все прочие пользователи обладают правами чтения файла, записи в
него и его выполнения. В примере показаны обозначения как для класса доступа, так и для прав доступа внутри класса.
Для задания режима доступа в символьном виде используется следующий синтаксис:
[кому]
операция
права
Часть кому есть комбинация букв u, g и o (владелец, члены группы и прочие пользователи соответственно). Если часть кому опущена или указано a, то это эквивалентно ugo.
Операция может быть: + (добавить право), - (лишить права), = (в пределах данного класса присвоить права абсолютно, то есть добавить указанные права и отнять неуказанные).
Права - любая осмысленная комбинация следующих букв:
r
Право на чтение.
w
Право на запись.
x
Право на выполнение (поиск в каталоге).
s
При выполнении переустанавливать действующий идентификатор пользователя или группы.
t
После выполнения программы сохранять сегмент команд (бит навязчивости).
l
Учет блокировки доступа.
Опустить часть права можно только если операция есть = (для лишения всех прав).
Если надо сделать более одного указания об изменении прав, то при использовании символьного
вида в правах не должно быть пробелов, а указания должны разделяться запятыми. Например, команда
chmod u+w,go+x f1
добавит для владельца право писать в файл f1, а для членов группы и прочих пользователей - право
выполнять файл. Права устанавливаются в указанном порядке. Право s можно добавлять только для
55
пользователя и группы, право t - только для пользователя.
Учет блокировки доступа (l) к файлу и его частям означает возможность монопольного захвата сегментов файла на время их обработки. Нельзя, однако, разрешить выполнение файла для членов группы и одновременно учитывать блокировку файла. Нельзя также разрешить переустановить при выполнении действующий идентификатор группы и учитывать блокировку файла. Таким образом, следующие команды являются некорректными:
chmod g+x,+l f2
chmod g+s,+l f3
Попытка их выполнения вызовет соответствующую диагностику.
Изменить режим доступа к файлу может только его владелец или суперпользователь. Бит навязчивости может установить только суперпользователь. Чтобы добавить право переустановки идентификатора группы, надо быть членом этой группы; кроме того, для членов группы должно быть установлено право выполнения.
Для просмотра прав доступа и контроля при их изменении используется команда ls с флагом -l.
Права переустановки идентификаторов пользователя и группы отмечаются буквой s на месте соответствующей буквы x: малой s, если соответствующая категория пользователей имеет право x, и большой
S - если не имеет; право t отмечается на месте последней буквы x: малой t, если прочие пользователи
имеют право выполнять файл, и большой T - если не имеют. Право l отмечается на месте права x для
членов группы.
Примеры:
1. Чтобы установить права, позволяющие владельцу читать и писать в файл, а членам группы и
прочим пользователям только читать, надо сложить 0400, 0200, 0040 и 0004. Таким образом, команду
можно записать двумя способами:
chmod 644 f1
chmod u=rw,go=r f1
2. Позволить всем выполнять файл f2:
chmod +x f2
3. Учитывать блокировку доступа к файлу f3:
chmod +l f3
4. Дать всем права на чтение запись и выполнение, а также на переустановку идентификатора группы при выполнении файла f4:
chmod =rwx,g+s f4
chmod 2777 f4
3.1.7.20.
chown
chown – смена владельца файла
Синтаксис:
chown
владелец файл ...
Описание:
Команда chown дает файлу нового владельца, который может быть задан либо десятичным идентификатором пользователя, либо входным именем из файла /etc/passwd.
56
Изменить владельца может только владелец файла или суперпользователь.
Файлы:
/etc/passwd
/etc/group
3.1.7.21.
umask
umask – установка маски режима создания файлов
Синтаксис:
umask
[маска]
Описание:
Пользовательской маске режима создания файлов присваивается указанное восьмеричное значение.
Три восмеричные цифры соответствуют правам на чтение/запись/выполнение для владельца, членов
группы и прочих пользователей соответственно . Значение каждой заданной в маске цифры вычитается из соответствующей "цифры", определенной системой при создании файла . Например, umask 022
удаляет права на запись для членов группы и прочих пользователей (у файлов, создававшихся с режимом 777, он оказывается равным 755; а режим 666 преобразуется в 644).
Если маска не указана, выдается ее текущее значение.
Команда umask распознается и выполняется shell'ом.
Команду umask целесообразно включить в пользовательский профайл ; тогда она будет автоматически вызываться при входе в систему и установит нужный режим доступа к создаваемым файлам и каталогам.
3.1.7.22.
chattr
chattr - изменяет атрибуты файлов файловой системы ext2fs
Синтаксис:
chattr [ -Rv ] [ -v версия ] [ атрибуты ] файлы...
Описание:
chattr изменяет атрибуты файлов файловой системы ext2fs.
Формат символьного режима: +-=[ASacDdIijsTtu].
Оператор '+' означает добавление выбранных атрибутов к существующим атрибутам; '-' означает их снятие; '=' означает определение только этих указанных атрибутов для файлов.
Символы 'ASacDdijsTtu' указывают на новые атрибуты для файлов: не обновлять время последнего доступа (atime) к файлу (A), синхронное обновление (S), только добавление к файлу (a), сжатый (c), синхронное обновление директорий (D), не архивировать (d),неизменяемый (i), журналирование данных (j), безопасноое удаление (s), вершина иерархии директорий (T), нет tail-merging (t),
неудаляемый (u).
Опции:
-R
Рекурсивно изменять атрибуты каталогов и их содержимого. Символические ссылки игнориру-
57
ются.
-V
Выводит расширенную информацию и версиию программы.
-v версия
Установить номер версии/генерации файла.
Атрибуты:
Когда изменяется файл с атрибутом (A) время последнего доступа к нему не изменяется. Это позволяет избежать некоторого количества дисковых операций ввода/вывода на лаптопах.
Файл с атрибутом (a) можно открыть для записи только в режиме добавления. Только суперпользователь или процесс с возможностью CAP_LINUX_IMMUTABLE может устанавливать и снимать этот
атрубут.
Файл с атрибутом (c) автоматически сжимается на диске ядром. Чтение из такого файла возвращает несжатые данные. При записи в такой файл данные перед записью на диск сжимаются.
Когда изменяется директория с атрибутом (D) изменения синхронно записываются на диск. Это
эквивалентно опции монтирования `dirsync' примененной к подмножеству файлов.
Файл с атрибутом (d) не является кандидатом на архивирование при использовании команды dump.
Атрибут (E) используется экспериментальными сжимающими патчами для того, чтобы показать
что сжатый файл содержит ошибки сжатия. Он не может быть установлен или сброшен с помощью
chattr, хотя его можно просмотреть с помощью lsattr.
Атрибут (I) используется кодом htree для того, чтобы показать что директория индексируется с использованием хэширующих деревьев. Он не может быть установлен или сброшен с помощью chattr,
хотя его можно просмотреть с помощью lsattr.
Файл с атрибутом (i) не может быть изменен: он не может быть удален или переименован, к этому
файлу не могут быть созданы ссылки и никакие данные не могут быть записаны в этот файл. Только
суперпользователь или процесс с возможностью CAP_LINUX_IMMUTABLE может устанавливать и
снимать этот атрубут.
При записи в файл с атрибутом (j) все данные записываемые в такой файл записываются в журнале
ext3, прежде чем они будут записаны непосредственно в файл, если файловая система смонтиирована с опциями "data=ordered" или "data=writeback". Если файловая система смонтирована с опцией
"data=journalled", то все данные журналируются и этот атрибут не дает никакого эффекта. Только
суперпользователь или процесс с возможностью CAP_SYS_RESOURCE может устанавливать или
снимать этот атрибут.
Когда удаляется файл с атрибутом (s) все его блоки заполняются нулями.
Когда изменяется файл с атрибутом (S) все изменения синхронно записываются на диск; это эквивалентно опции монтирования 'sync' примененной к подмножеству файлов.
Директория с атрибутом (T) будет поднята на вершину иерархии каталогов для целей. Orlov
block allocator (который используется на системах с Linux 2.5.46 и выше).
У файла с атрибутом (t) в конце не будет partial block fragment соединенного с другими файлами
(для тех файловых систем, которые поддерживают tail-merging). Это необходимо для приложений, таких как LILO, которые читают файловую систему напрямую,и которые не понимают tail-merged
файлы.
58
Когда удаляется файл с атрибуттом (u) его содержимое сохраняется.Это позволяет пользователю
восстановить файл.
Атрибут (X) используется экспериментальными сжимающими патчами чтобы показать что исходное содержимое сжатых файлов доступно напрямую. В данное время он не может быть установлен
или переустановлен с помощью chattr(1), но может быть показан с помощью lsattr.
Атрибут (Z) используется экспериментальными сжимающими патчами чтобы показать что сжатый
файл не сохранен. Он не может быть установлен или переустановлен с помощью chattr, но может быть
показан с помощью lsattr.
3.1.7.23.
lsattr
lsattr - выдает список атрибутов файлов на Linux ext2fs.
Синтаксис:
lsattr [ -RVadv ] [ файлы... ]
Описание:
lsattr выдает список атрибутов файлов на ext2fs. В chattr(1) описаны все атрибуты и их назначение.
Опции:
-R
Рекурсивно выдает список атрибутов каталогов и их содержимого.
-V
Выводит верисю программы.
-a
просматривает все файлы в каталоге включая те, имена которых начинаются с '.'.
-d
Отображает каталоги также как и файлы вместо того, чтобы просматривать их содержимое.
-v
Просматривает номера версий/генераций файлов.
3.2. Общие принципы защиты данных и программ
3.2.1.
Модель защиты ОС Альт Линукс СПТ 6.0
Ниже представлена модель защиты ОС Альт Линукс СПТ 6.0 (Рисунок 1).
59
Рисунок 1
60
3.2.2.
Функции КСЗ ОС Альт Линукс СПТ 6.0
Перечислим функции КСЗ Альт Линукс СПТ 6.0 обеспечивающие защиту данных:
–
реализация Механизма Идентификации и Аутентификации (МИА) пользователей (парольный
вход пользователей в систему);
–
объединение пользователей в группы с общими файлами и каталогами;
–
реализация дискреционного метода защиты файлов (чтение, запись, удаление, переименование,
изменение системного атрибута, создание с тем же именем);
–
изменения ПРД (установка/изменение атрибутов защиты);
–
регистрация событий в системных журналах (события МИА, запросы на доступ к защищаемым ресурсам, создание и уничтожение объектов, изменения ПРД);
–
автоматическая установка атрибутов защиты и владения на новые создаваемые пользователем
файлы и каталоги;
–
скрытие служебной информации:
–
персональной, регистрационной и конфигурационной;
–
очистка памяти RAM для новых процессов;
–
очистка памяти HDD (безопасное удаление файлов).
Наряду с этим ОС Альт Линукс СПТ 6.0 включает в себя дополнительные функции защиты данных, реализуемые на уровне системных приложений и прикладных программ, например: СУБД,
брандмауэры, proxy-серверы.
3.2.3.
Secure Shell (SSH)
Одна из самых распространенных задач, возникающих при работе в сети – удаленный доступ к
другим компьютерам и предоставление такого доступа.
Для решения этой задачи используется ставший уже традиционным протокол SSH (Secure Shell). В
отличие от устаревших протоколов, таких как telnet и rsh/rlogin/rcp, которые передают данные прямым
текстом и подвержены обыкновенному прослушиванию и различным атакам, SSH реализует соединение с удаленным компьютером, защищающее от:
–
прослушивания данных, передаваемых по этому соединению;
–
манипулирования данными на пути от клиента к серверу;
–
подмены клиента либо сервера путем манипулирования IP-адресами, DNS либо маршрутизацией.
В дополнение к отличным характеристикам в области обеспечения безопасного клиент-серверного
соединения, SSH обладает следующими возможностями:
–
сжатие передаваемых данных;
–
туннелирование каналов внутри установленного соединения – в т.ч. соединений с X-сервером;
–
широкая распространенность: существуют реализации SSH для самых различных аппаратных
платформ и операционных систем.
OpenSSH – это входящая в дистрибутив реализация SSH, поддерживающая версии 1.3, 1.5 и 2.0
протокола SSH, и распространяемая на условиях лицензии BSD. Эта реализация включает в себя:
61
–
клиентские программы ssh, scp и sftp (используются для запуска программ на удаленных серверах и копирования файлов по сети);
–
серверные программы sshd, sftp-server (используются для предоставления доступа по протоколу SSH);
–
вспомогательные программы make-ssh-known-hosts, rescp, ssh-keygen, ssh-add, ssh-agent,
ssh-copy-id, ssh-keyscan.Одна из самых распространенных задач, возникающих при работе в
сети – удаленный доступ к другим компьютерам и предоставление такого доступа.
3.3. Варианты создания АРМ на основе ОС Альт Линукс СПТ 6.0
Учитывая тот факт, что дистрибутив представляет собой хорошо продуманную систему пакетов
различного программного обеспечения, представляется возможным конфигурирование конкретной
системы в соответствии с предъявляемыми функциональными требованиями. В зависимости от выбора и настройки того или иного программного обеспечения возможно создание выделенных Автоматизированных Рабочих Мест (АРМ) направленных не решение следующих задач:
–
маршрутизатор (АРМ отвечающий за вопросы маршрутизации трафика, выделения ip-адресов (dhcp), подсчет статистики функционирования сети);
–
firewall (брандмауэр) (АРМ отвечающий за безопасность сети, может служить разделителем
между сетью общего пользования и внутренней сетью организации). Является, пожалуй, наиболее важной компонентой в системе защиты внутренней сети от вторжений извне и регулирования доступа пользователей внутренней сети к внешним ресурсам;
–
система мониторинга (АРМ куда "стекается" информация о работе компьютеров и служб/сервисов);
–
honeypot/honeynet – отдельный компьютер (сеть) задачей которых является предоставление
фиктивного полигона для деятельности лиц осуществляющих НСД (хакеры) с целью сбора информации о методах и технологиях их деятельности и разработки требований и решений по
усилению безопасности реальных компьютеров (подсетей);
–
web/ftp/mail/news/…/ – сервера (возможно создание необходимых ограничений по доступу
(пользователь/ip-адреса/запрашиваемый ресурс/…/));
–
сервера приложений;
–
NIDS (Network Intrusion Detection System) – (АРМ системы обнаружения вторжений, мониторинг работы сетевой подсистемы и сетевых служб, выявление аномалий в функционировании, сигнализация о нарушениях в работе).
Представленное деление весьма условно, возможна интеграция данных функциональных задач для
решения их на одном сервере.
3.4. Дополнительная документация к ОС Альт Линукс СПТ 6.0
При использовании изделия по назначению, помимо эксплуатационной документации к изделию,
необходимо пользоваться подсказками (HELPами) и сопровождающей документацией на конкретные
программы, включенной в состав дистрибутива.
62
4. УСТАНОВКА OC АЛЬТ ЛИНУКС СПТ 6.0
4.1. Начало установки: загрузка системы
Рисунок 2
Для того, чтобы начать установку, достаточно загрузиться с CD или DVD-диска, на котором записан дистрибутив. Для этого может потребоваться включить в BIOS опцию загрузки с CD/DVD-привода. Способ входа в меню BIOS и расположение конкретных настроек может сильно отличаться в зависимости от используемого оборудования. Чаще всего для входа в BIOS необходимо нажать клавишу
Delete как только компьютер начнёт загружаться. За полной инструкцией по настройке обратитесь к
документации к вашему оборудованию.
Загрузка с установочного диска начинается с меню, в котором перечислено несколько вариантов загрузки, причём установка системы – это только одна из возможностей. Из этого же меню можно запустить уже установленную на жёстком диске операционную систему или запустить проверку памяти.
Мышь на этом этапе установки не поддерживается, поэтому для выбора различных вариантов и опций установки необходимо воспользоваться клавиатурой. Можно получить справку по любому пункту
меню, выбрав этот пункт и нажав F1. Кроме установки с лазерного диска доступно несколько вариан-
63
тов сетевой установки и установка с жёсткого диска (об этом рассказано в разделе 4.2.2 «Источники
установки»).
Нажатием F2 осуществляется выбор языка. От выбора языка в загрузчике зависит язык интерфейса
загрузчика и программы установки.
По нажатию F3 открывается меню доступных видеорежимов (разрешений экрана). Это разрешение
будет использоваться во время установки и загрузки установленной системы.
Чтобы начать процесс установки, нужно клавишами перемещения курсора «вверх», «вниз» выбрать пункт меню «Установка» и нажать Enter. В начальном загрузчике установлено небольшое время
ожидания: если в этот момент не предпринимать никаких действий, то будет загружена та система, которая уже установлена на жёстком диске. Если вы пропустили нужный момент, перезагрузите
компьютер и вовремя выберите пункт «Установка».
Начальный этап установки не требует вмешательства пользователя: происходит автоматическое
определение оборудования и запуск компонентов программы установки. Сообщения о том, что происходит на этом этапе, можно просмотреть, нажав клавишу ESC.
4.2. Альтернативные способы установки
Обычно для установки дистрибутива используется загрузочный CD или DVD-диск. Если вы производите установку с такого диска, можете пропустить этот раздел и сразу перейти к разделу 4.3 «Последовательность установки».
Однако установка с CD/DVD-диска – это лишь один из возможных способов установки системы.
Он подходит для большинства случаев, но не работает, например, в случае отсутствия на компьютере
CD/DVD-привода. Для таких случаев поддерживаются альтернативные методы установки. Важно понимать, что для начала установки необходимо две вещи: иметь возможность загрузить компьютер и
иметь доступ к установочным файлам. В случае установочного CD/DVD-диска эти две возможности
предоставляются самим диском: он является загрузочным и содержит все необходимые для установки
файлы. Однако вполне допустим и такой вариант: первоначальная загрузка происходит со специально
подготовленного flash-диска, а установочные файлы берутся с FTP-сервера сети.
Таким образом, для установки дистрибутива необходимо:
–
Выбрать способ первоначальной загрузки компьютера;
–
Выбрать источник установки.
4.2.1.
Способы первоначальной загрузки
Для загрузки компьютера с целью установки системы необходимо воспользоваться носителем, содержащим начальный загрузчик. Таким носителем может быть как сам загрузочный лазерный диск,
так и, например, flash-накопитель, который можно сделать загрузочным, воспользовавшись утилитой
mkbootflash.
4.2.1.1. Создание загрузочного flash-диска
Для создания загрузочного flash-диска необходимо в уже установленной системе выполнить следующие шаги:
–
установить mkbootflash:
# apt-get install mkbootflash
64
–
подключить flash-носитель к USB-порту и вставить в привод лазерных дисков установочный
лазерный диск.
–
выполнить команду: mkbootflash -i /dev/имя_устройства
пример:
# mkbootflash -i /dev/sdg1
имя устройства должно соответствовать вашему flash-носителю. Выяснить его можно,
посмотрев вывод команды dmesg непосредственно после подключения flash-носителя к
компьютеру.
После создания загрузочного flash-диска необходимо настроить BIOS вашего компьютера на загрузку с USB-устройства.
4.2.2.
Источники установки
После первоначальной загрузки с одного из поддерживаемых носителей, можно выбрать источник
установки – место, откуда программа установки будет брать все необходимые при установке данные
(прежде всего устанавливаемое ПО). Так как установка системы возможна не только с лазерного диска, то можно выбрать один из поддерживаемых альтернативных источников установки.
Источники установки:
–
–
Сетевые:
–
FTP-сервер;
–
NFS-сервер;
–
HTTP-сервер.
Локальные:
–
Внешний жёсткий диск.
Условием для всех способов установки является доступность дерева файлов, аналогичного содержимому установочного диска.
4.2.2.1. Запуск сетевой установки
Кнопка F4 позволяет выбрать источник сетевой установки: FTP, HTTP или NFS-сервер. Нужно указать имя или IP-адрес сервера и каталог (начиная с /), в котором размещён дистрибутив ALT Linux. В
случае установки по протоколу FTP может понадобиться также ввести имя пользователя и пароль.
Пример установки:
–
Имя сервера: 192.168.0.1
–
Каталог: /pub/netinstall/
–
в данном каталоге на сервере должны находиться:
–
файл altinst;
–
каталог Metadata;
–
каталог ALTLinux с подкаталогами RPMS.секция, содержащими rpm-пакеты.
Для получения подобного дерева каталогов на стороне сервера достаточно скопировать содержи-
65
мое установочного лазерного диска в один из подкаталогов FTP-сервера (либо HTTP или NFS-сервера). В описанном примере это каталог /pub/netinstall.
При сетевой установке со стороны клиента (компьютера, на который производится установка) может понадобиться определить параметры соединения с сервером. В этом случае на экране будут появляться диалоги, например, с предложением выбрать сетевую карту (если их несколько) или указать
тип IP-адреса: статический (потребуется вписать его самостоятельно) или динамический (DHCP).
После успешного соединения с сервером в память компьютера будет загружен образ установочного
диска, после чего начнётся установка системы так же, как и при установке с лазерного диска.
4.2.2.2. Установка с жёсткого диска
Аналогично установке по сети можно установить ALT Linux с жёсткого диска. Для этого понадобится подключить дополнительный жёсткий диск с дистрибутивом. Чтобы выбрать подключённый
диск в качестве источника установки, нужно кнопкой F4 выбрать источник установки «Жёсткий
диск». По нажатию Enter и прошествии некоторого времени на экране появится диалог выбора дискового раздела, а после – выбора пути к каталогу с дистрибутивом. После указания пути начнётся установка системы. При желании можно сразу указать путь к дистрибутиву, сделав в строке параметров
загрузки запись вида: automatic=method:disk,disk:hdb,partition:hdbX,directory:<путь_к_каталогу_с_дистрибутивом>.
4.3. Последовательность установки
До того как будет произведена установка базовой системы на жёсткий диск, программа установки
работает с образом системы, загруженном в оперативной памяти компьютера.
Если инициализация оборудования завершилась успешно, будет запущен графический интерфейс
программы-установщика. Процесс установки разделён на шаги; каждый шаг посвящён настройке или
установке определённого свойства системы. Шаги нужно проходить последовательно, переход к следующему шагу происходит по нажатию кнопки «Далее». При помощи кнопки «Назад» при необходимости можно вернуться к уже пройденному шагу и изменить настройки. Однако на этом этапе установки возможность перехода к предыдущему шагу ограничена теми шагами, где нет зависимости от
данных, введённых ранее.
Если по каким-то причинам возникла необходимость прекратить установку, нажмите Reset на системном блоке компьютера. Помните, что совершенно безопасно прекращать установку только до
шага «Подготовка диска», поскольку до этого момента не производится никаких изменений на
жёстком диске. Если прервать установку между шагами «Подготовка диска» и «Установка
загрузчика», вероятно, что после этого с жёсткого диска не сможет загрузиться ни одна из установленных систем.
Технические сведения о ходе установки можно посмотреть, нажав Ctrl+Alt+F1, вернуться к программе установки – Ctrl+Alt+F7. По нажатию Ctrl+Alt+F2 откроется отладочная виртуальная консоль.
Каждый шаг сопровождается краткой справкой, которую можно вызвать, нажав F1.
Во время установки системы выполняются следующие шаги:
–
Язык
–
Лицензионный договор
–
Дата и время
66
–
Подготовка диска
–
Установка системы
–
Сохранение настроек
–
Установка загрузчика
–
Настройка сети
–
Администратор системы
–
Системный пользователь
–
Завершение установки
4.4. Язык
Рисунок 3
Установка начинается с выбора основного языка – языка интерфейса программы установки и
устанавливаемой системы. В списке, помимо доступных языков региона (выбранного на этапе начальной загрузки), указан и английский язык.
67
На этом же этапе выбирается вариант переключения раскладки клавиатуры. Раскладка клавиатуры
– это привязка букв, цифр и специальных символов к клавишам на клавиатуре. Помимо ввода символов на основном языке, в любой системе Linux необходимо иметь возможность вводить латинские
символы (имена команд, файлов и т.п.), для чего обычно используется стандартная английская раскладка клавиатуры. Переключение между раскладками осуществляется при помощи специально зарезервированных для этого клавиш. Для русского языка доступны следующие варианты переключения
раскладки:
–
Клавиши Alt и Shift одновременно
–
Клавиша Capslock
–
Клавиши Control и Shift одновременно
–
Клавиша Control
–
Клавиша Alt
Если выбранный основной язык имеет всего одну раскладку (например, при выборе английского
языка в качестве основного), эта единственная раскладка будет принята автоматически.
4.5. Лицензионный договор
Рисунок 4
68
Перед продолжением установки следует внимательно прочитать условия лицензии. В лицензии говорится о ваших правах. В частности, за вами закрепляются права на:
–
эксплуатацию программ на любом количестве компьютеров и в любых целях;
–
распространение программ (сопровождая их копией авторского договора);
–
получение исходных текстов программ.
Если вы приобрели дистрибутив, то данное лицензионное соглашение прилагается в печатном виде
к вашей копии дистрибутива. Лицензия относится ко всему дистрибутиву ALT Linux. Если вы согласны с условиями лицензии, отметьте пункт «Да, я согласен с условиями» и нажмите «Далее».
4.6. Дата и время
Для корректной установки даты и времени достаточно правильно указать часовой пояс и выставить
желаемые значения для даты и времени.
Рисунок 5
На этом шаге следует выбрать часовой пояс, по которому нужно установить часы. Для этого в соответствующих списках выберите страну, а затем регион. Поиск по списку можно ускорить, набирая на
клавиатуре первые буквы искомого слова.
69
Обратите внимание на отметку «Хранить время в BIOS по Гринвичу». Если Linux – единственная
установленная операционная система, то поставьте эту отметку. Если же Linux устанавливается как
вторая система, то эту отметку необходимо снять. Иначе время в уже установленной операционной
системе может отображаться неверно.
Проверьте, верно ли отображаются дата и время в графе «Текущее время», и, при необходимости,
выставьте правильные значения (кнопка «Изменить»).
Рисунок 6
Если ваш компьютер подключён к локальной сети или к Интернет, можно включить синхронизацию системных часов (NTP) с удалённым сервером, для этого достаточно отметить пункт «Получать
точное время с NTP-сервера» и указать предпочитаемый NTP-сервер. В большинстве случаев вас
устроит сервер pool.ntp.org.
Если выбрана опция «Получать точное время с NTP-сервера», то ваш компьютер может сам быть
сервером точного времени и использоваться в этом качестве например машинами вашей локальной
сети. Для активации этой возможности отметьте «Работать как NTP-сервер».
70
4.7. Подготовка диска
Переход к этому шагу может занять некоторое время. Время ожидания может быть разным и зависит от производительности компьютера, объёма жёсткого диска, количества разделов на нём и т.д.
На этом этапе подготавливается площадка для установки ALT Linux, в первую очередь – выделяется свободное место на диске.
4.7.1.
Выбор профиля разбиения диска
Рисунок 7
В списке разделов перечислены уже существующие на жёстких дисках разделы (в том числе здесь
могут оказаться съёмные USB-носители, подключённые к компьютеру в момент установки). Ниже
перечислены доступные профили разбиения диска. Профиль – это шаблон распределения места на
диске для установки Linux. Можно выбрать один из трёх профилей:
–
Использовать неразмеченное пространство
–
Удалить все разделы и создать разделы автоматически
–
Подготовить разделы вручную
71
Первые два профиля предполагают автоматическое разбиение диска. При выборе пункта «Удалить
все разделы и создать разделы автоматически» при наличии двух жёстких дисков на компьютере будет
создан массив RAID1, а при наличии трёх дисков – RAID5. Использование технологии RAID обеспечивает сохранность данных даже при выходе одного жёсткого диска из строя.
4.7.2.
Автоматические профили разбиения диска
Применение профилей автоматического разбиения происходит сразу по нажатию «Далее», после
чего непосредственно начинается этап установки базовой системы.
Если для применения одного из профилей автоматической разметки доступного места окажется
недостаточно, будет выведено сообщение об ошибке: «Невозможно применить профиль, недостаточно
места на диске».
Если данное сообщение появилось после попытки применить профиль «Использовать неразмеченное пространство», то вы можете очистить место, удалив данные, которые уже есть на диске. Выберите пункт «Удалить все разделы и создать разделы автоматически». При применении этого профиля сообщение о недостатке места связано с недостаточным объёмом всего жёсткого диска, на который
производится установка. В этом случае необходимо воспользоваться режимом ручной разметки: профиль «Подготовить разделы вручную».
Будьте осторожны при применении профиля «Удалить все разделы и создать разделы автоматически»! В этом случае будут удалены все данные со всех дисков (включая внешние flash-диски) без возможности восстановления. Рекомендуется использовать эту возможность только в том случае, если вы
уверены, что диски не содержат никаких ценных данных.
4.7.3.
Ручной профиль разбиения диска
При необходимости освободить часть дискового пространства следует воспользоваться профилем
разбиения вручную. Вы сможете удалить некоторые из существующих разделов или содержащиеся в
них файловые системы. После этого можно создать необходимые разделы самостоятельно или вернуться к шагу выбора профиля и применить один из автоматических профилей. Выбор этой возможности требует знаний об устройстве диска и технологиях его разбиения.
По нажатию «Далее» будет произведена запись новой таблицы разделов на диск и форматирование
разделов. Разделы, только что созданные на диске программой установки, пока не содержат данных и
поэтому форматируются без предупреждения. Уже существовавшие, но изменённые разделы, которые
будут отформатированы, помечаются специальным значком в колонке «Файловая система» слева от
названия. Если вы уверены в том, что подготовка диска завершена, подтвердите переход к следующему шагу нажатием кнопки «OK».
Не следует форматировать разделы с теми данными, которые вы хотите сохранить, например, с
пользовательскими данными (/home) или с другими операционными системами. С другой стороны, отформатировать можно любой раздел, который вы хотите «очистить» (т.е. удалить все данные).
72
4.8. Установка системы
Рисунок 8
В любом дистрибутиве ALT Linux доступно значительное количество программ (до нескольких тысяч), часть из которых составляет саму операционную систему, а все остальные – это прикладные
программы и утилиты.
В операционной системе Linux все операции установки и удаления производятся над пакетами – отдельными компонентами системы. Пакет и программа соотносятся неоднозначно: иногда одна программа состоит из нескольких пакетов, иногда один пакет включает несколько программ.
В процессе установки системы обычно не требуется детализированный выбор компонентов на
уровне пакетов – это требует слишком много времени и знаний от проводящего установку. Тем более,
что комплектация дистрибутива подбирается таким образом, чтобы из имеющихся программ можно
было составить полноценную рабочую среду для соответствующей аудитории пользователей. Поэтому в процессе установки системы пользователю предлагается выбрать из небольшого списка групп
пакетов, объединяющих пакеты, необходимые для решения наиболее распространённых задач. Под
списком групп на экране отображается информация об объёме дискового пространства, которое будет
занято после установки пакетов, входящих в выбранные группы.
73
Выбрав необходимые группы, следует нажать «Далее», после чего начнётся установка пакетов.
Рисунок 9
На этом этапе происходит установка набора программ, необходимых для работы системы.
Установка происходит автоматически в два этапа:
–
Получение пакетов
–
Установка пакетов
Получение пакетов осуществляется с источника, выбранного на этапе начальной загрузки. При сетевой установке (по протоколу FTP или HTTP) время выполнения этого шага будет зависеть от скорости соединения и может быть значительно большим, чем при установке с лазерного диска.
Установка базовой системы может занять некоторое время, которое можно посвятить, например,
чтению руководства.
74
4.9. Сохранение настроек
Рисунок 10
Начиная с этого шага программа установки работает с файлами только что установленной базовой
системы. Все последующие изменения можно будет совершить после завершения установки посредством редактирования соответствующих конфигурационных файлов или при помощи модулей управления, включённых в дистрибутив.
По завершении установки базовой системы начинается шаг сохранения настроек. Он проходит автоматически и не требует вмешательства пользователя, на экране отображается индикатор выполнения.
На этом шаге производится перенос настроек, выполненных на первых шагах установки, в только
что установленную базовую систему. Также производится запись информации о соответствии разделов жёсткого диска смонтированным на них файловым системам (заполняется конфигурационный
файл /etc/fstab). В список доступных источников программных пакетов добавляется репозиторий, находящийся на установочном лазерном диске, т.е. выполняется команда apt-cdrom add, осуществляющая запись в конфигурационный файл /etc/apt/sources.list.
После того, как настройки сохранены, осуществляется автоматический переход к следующему
75
шагу.
4.10.
Установка загрузчика
Рисунок 11
Загрузчик Linux — программа, которая позволяет загружать Linux и другие операционные системы. Если на вашем компьютере будет установлен только Linux, то здесь не нужно ничего изменять,
просто нажмите «Далее».
Если же вы планируете использовать и другие операционные системы, уже установленные на этом
компьютере, тогда имеет значение, на каком жёстком диске или разделе будет расположен загрузчик.
В большинстве случаев программа установки правильно подберёт расположение загрузчика.
Возможны следующие варианты: установить загрузчик на выбранный диск, либо не устанавливать
загрузчик (опция Skip bootloader install).
76
4.11.
Настройка сети
Рисунок 12
На этом этапе необходимо задать параметры настройки сети: IP-адреса сетевых интерфейсов, DNSсервер, шлюз и т.п. Конкретные значения будут зависеть от используемого вами сетевого окружения.
Ручного введения настроек можно избежать, если в вашей сети есть настроенный DHCP-сервер. В
этом случае все необходимое сетевые настройки будут получены автоматически.
77
4.12.
Администратор системы
Рисунок 13
Linux – это многопользовательская система. На практике это означает, что для работы в системе
нужно в ней зарегистрироваться, т.е. дать понять системе, кто именно находится за монитором и клавиатурой. Наиболее распространённый способ регистрации на сегодняшний день – использование
системных имён (login name) и паролей. Это надёжное средство убедиться, что с системой работает
тот, кто нужно, если пользователи хранят свои пароли в секрете и если пароль достаточно сложен и не
слишком короток (иначе его легко угадать или подобрать).
В любой системе Linux всегда присутствует один специальный пользователь – администратор, он
же суперпользователь, для него зарезервировано стандартное системное имя – root.
Стоит запомнить пароль root – его нужно будет вводить, чтобы получить право изменять настройки
системы с помощью стандартных средств настройки ALT Linux.
При наборе пароля вместо символов на экране высвечиваются звёздочки. Чтобы избежать опечатки
при вводе пароля, его предлагается ввести дважды. Можно воспользоваться автоматическим созданием пароля, выбрав «Создать автоматически». Вам будет предложен случайно сгенерированный и достаточно надёжный вариант пароля. Можно принять автоматически сгенерированный пароль (не за-
78
будьте при этом запомнить пароль!) или запросить другой вариант пароля при помощи кнопки «Сгенерировать».
Администратор отличается от всех прочих пользователей тем, что ему позволено производить любые, в том числе самые разрушительные, изменения в системе. Поэтому выбор пароля администратора – очень важный момент для безопасности: любой, кто сможет ввести его правильно (узнать или
подобрать), получит неограниченный доступ к системе. Даже ваши собственные неосторожные действия от имени root могут иметь катастрофические последствия для всей системы.
4.13.
Системный пользователь
Рисунок 14
Помимо администратора (root) в систему необходимо добавить по меньшей мере одного обычного
пользователя. Работа от имени администратора считается опасной (можно по неосторожности повредить систему), поэтому повседневную работу в Linux следует выполнять от имени обычного пользователя, полномочия которого ограничены.
При добавлении пользователя предлагается ввести имя учётной записи (login name) пользователя.
Имя учётной записи всегда представляет собой одно слово, состоящее только из строчных латинских
букв (заглавные запрещены), цифр и символа подчёркивания “_” (причём цифра и символ “_” не мо-
79
гут стоять в начале слова). Чтобы исключить опечатки, пароль пользователя вводится дважды. Так же,
как при выборе пароля администратора (root), можно создать пароль автоматически.
В процессе установки предлагается создать только одну учётную запись обычного пользователя –
чтобы от его имени системный администратор мог выполнять задачи, которые не требуют привилегий
суперпользователя.
Учётные записи для всех прочих пользователей системы можно будет создать в любой момент после её установки.
4.14.
Завершение установки
Рисунок 15
На экране последнего шага установки отображается информация о завершении установки, которая
может содержать важные замечания по использованию дистрибутива. После нажатия кнопки «Завершить» и перезагрузки компьютера можно загрузить установленную систему в обычном режиме.
80
5. ЗАГРУЗКА ОПЕРАЦИОННОЙ СИСТЕМЫ
5.1. Настройка загрузки
Linux, установленный на жёстком диске, загружается при включении компьютера при помощи специальной программы – загрузчика. Программа-загрузчик исполняется при загрузке системы с жёсткого диска и загружает ядро ОС Linux, расположенное также на жёстком диске.
Загрузчики Linux можно также использовать для загрузки нескольких операционных систем, поскольку они позволяют выбирать при включении компьютера, какую систему нужно загрузить в этот
раз. Если есть выбор из нескольких вариантов загрузки, то после некоторого времени ожидания будет
загружена та система, которая выбрана по умолчанию: это не обязательно должен быть Linux, а может
быть другая операционная система или специальный режим загрузки (например, восстановительный).
Например, при стандартной установке в начальном меню загрузчика ALT Linux доступны несколько вариантов загрузки. Среди которых есть, например, вариант с безопасными настройками (failsafe) –
загрузка с минимальным количеством драйверов, что может оказаться необходимым в случае неполадок. Дополнительно предлагается вариант загрузки в программу проверки оперативной памяти
(memtest).
Нажав «e» можно указать параметры, которые будут переданы ядру Linux при загрузке.
5.2. Загрузка нескольких операционных систем
Прежде всего следует отметить, что ОС Linux может быть загружена с любого жёсткого диска системы и любого типа раздела – и основного (primary), и дополнительного (secondary), с различных типов файловых систем (например Ext2, Ext3, ReiserFS). При этом раздел, содержащий корневую файловую систему, не обязательно должен быть активным (иметь статус A в таблице разделов). Более того,
вы можете использовать любой загрузчик, при условии, что он в состоянии передать управление на
загрузочный сектор любого раздела (при этом несущественно, с какой операционной системой поставляется данный загрузчик). При наличии какого-либо стороннего загрузчика, загрузчик Linux следует устанавливать не в MBR первого жёсткого диска системы, а в загрузочный сектор корневого раздела Linux, на который впоследствии необходимо передать управление со стороны стороннего загрузчика. Подавляющее большинство UNIX-подобных систем не чувствительны к месту их размещения –
главное, чтобы был способ передать управление на их программу начальной загрузки.
Примечание:-Для очень старых BIOS действует правило 1024-го циллиндра: загрузка невозможна,
если раздел, с которого загружается система, будет расположен на диске далее 1024-го циллиндра. В
случае Linux – это раздел, содержащий корневую файловую систему или /boot, если он выделен на
отдельный раздел.
При использовании поставляемого с дистрибутивом загрузчика GRUB передача управления на загрузочный сектор любого раздела, физически доступного в момент загрузки, не вызывает проблем. В
то же время специфика архитектуры некоторых нестандартных операционных систем накладывает
ряд ограничений на размещение этих систем на диске. Возможна, что такая система может загружаться только с активного основного (primary) раздела на первом жёстком диске системы, в противном
случае возможны самые неожиданные проблемы с загрузкой. В такой ситуации лучше полностью
сохранить статус загрузочного раздела этой операционной системы.
81
5.3. Настройка загрузчика
Загрузчик автоматически настраивается при установке и помимо загрузки устанавливаемой системы включает в своё загрузочное меню автоматически определённые установленные системы.
Для перенастройки или перегенерации загрузочного меню воспользуйтесь командой
grub-mkconfig -o /boot/grub/grub.cfg
которая генерирует конфигурационный файл на основе содержимого каталога /etc/grub.d/.
5.4. Стартовые сценарии
Стартовые сценарии ALT Linux устроены примерно так же, как в RedHat Linux, по простой “.d”схеме. Суть её в следующем. Любое атомарное действие по изменению способностей системы —
запуск и останов определённой службы, автоматическое изменение или сохранение настроек и т. п. —
оформляется в виде командного сценария в каталоге /etc/rc.d/init.d. К такому сценарию предъявляются
определённые требования: как минимум, он должен распознавать в качестве первого параметра слова
start и stop. Будучи запущен с параметром start, этот сценарий выполняет действия по запуску службы
или активации настроек, а с параметром stop он останавливает службу или записывает активные настройки в файл.
Когда система загружается, процесс init выполняет сначала сценарий /etc/rc.d/rc.sysinit, а затем —
/etc/rc.d/rcномер, где номер соответствует уровню выполнения (профилю использования системы,
обычно он равен 3, “многопользовательский с сетью” или 5, “многопользовательский с сетью и графической средой”). Всё это сводится к выполнению в лексикографическом (грубо говоря, алфавитном) порядке всех сценариев из каталога /etc/rc.d/rcномер.d/, начинающихся на букву K (Kill) с параметром stop и всех сценариев, начинающихся на S (Start) с параметром start. Принято после буквы K
или S вставлять двузначное число, а затем — имя службы, а сами файлы в rcномер.d/ делать символьными ссылками на сценарии в /etc/rc.d/init.d/ (точнее, на файлы в ../init.d/, так достигается совместимость с системами, в которых init.d и rc*.d лежат не в /etc/rc.d, а в /etc или вообще где угодно). Останов системы рассматривается как переход на уровень выполнения 0, а перезагрузка — на уровень выполнения 6, так что имена файлов в каталогах rc0.d и rc6.d начинаются сплошь на K, кроме S00killall,
S01reboot или S01halt. Таким образом достигается строгий порядок выполнения действий без создания единого стартового сценария (как это делалось, например, в ранних версиях BSD).
В ALT Linux эти рекомендации носят обязательный характер, потому что размещение сценариев в
каталогах rc*.d происходит не вручную, а автоматически. Для этого в начало каждого сценария вносятся комментарии особого вида: # description:, после которого следует краткое описание, и chkconfig:,
после которого следует три числа. Первое – набор цифр (без пробелов), соответствующих уровням
выполнения, на которых сценарий будет использоваться (т. е. создаваться ссылка, начинающаяся на
S). Второе – двузначное число, которое будет добавляться в имя ссылки после S, а третье – двузначное
число, которое будет добавляться в имя ссылки после K.
#! /bin/sh
#
# crond
Start/Stop the cron clock daemon.
#
# chkconfig: 2345 40 60
# description: cron is a standard UNIX program that runs user-specified \
#
programs at periodic scheduled times. vixie cron adds a \
82
#
number of features to the basic UNIX cron, including better \
#
security and more powerful configuration options.
# processname: crond
# config: /etc/crontab
# pidfile: /var/run/crond.pid
Команда chkconfig имя_службы on автоматически создаёт ссылки типа S для всех уровней выполнения, указанных в первом числе поля chkconfig:, а для остальных уровней выполнения — ссылки
типа K. Команда chkconfig имя_службы off заводит во всех каталогах rc*.d ссылки типа K. Стоит заметить, что другие поля похожего формата остались в стартовых сценариях от других, более сложных
систем автоматической загрузки и в ALT Linux не используются. В приведённом примере сценарий
netfs (монтирование сетевых файловых систем) запускается на уровнях 3, 4, и 5, причём при запуске
служба имеет номер 25, а при останове – 75.
$ grep chkconfig: /etc/rc.d/init.d/netfs
# chkconfig: 345 25 75
$ chkconfig —list netfs
netfs
0:выкл
1:выкл
2:выкл
3:вкл
4:вкл
5:вкл
6:выкл
$ ls -l /etc/rc.d/rc*.d/*netfs*
lrwxrwxrwx
1 root root 15 Авг 15 19:06 /etc/rc.d/rc0.d/K75netfs -> ../init.d/netfs
lrwxrwxrwx
1 root root 15 Авг 15 19:06 /etc/rc.d/rc1.d/K75netfs -> ../init.d/netfs
lrwxrwxrwx
1 root root 15 Авг 15 19:06 /etc/rc.d/rc2.d/K75netfs -> ../init.d/netfs
lrwxrwxrwx
1 root root 15 Авг 15 19:06 /etc/rc.d/rc3.d/S25netfs -> ../init.d/netfs
lrwxrwxrwx
1 root root 15 Авг 15 19:06 /etc/rc.d/rc4.d/S25netfs -> ../init.d/netfs
lrwxrwxrwx
1 root root 15 Авг 15 19:06 /etc/rc.d/rc5.d/S25netfs -> ../init.d/netfs
lrwxrwxrwx
1 root root 15 Авг 15 19:06 /etc/rc.d/rc6.d/K75netfs -> ../init.d/netfs
Кроме того, правила оформления стартовых сценариев ALT Linux рекомендуют, чтобы они распознавали ещё один параметр – status, позволяющий определить состояние службы (по крайней мере,
узнать, запущена ли она или нет). Корректный стартовый сценарий всё равно должен уметь это определять, иначе попытка запуска K-сценария при остановленной службе будет выдавать сообщение об
ошибке, даже если спецификой службы это предусмотрено. Например, супердемон xinetd при запуске
проверяет, зарегистрирована ли в нём хотя бы одна сетевая служба, а не найдя таковых, завершает работу. Для отражения того, что запуск службы прошёл успешно, в ALT Linux заведён специальный каталог, /var/lock/subsys, в котором стартовые сценарии создают т. н. lock-файлы. Если lock-файл службы есть в этом каталоге, значит, она запущена, и K-сценарий действительно должен её останавливать.
Поэтому рекомендуется запускать и останавливать системные службы не напрямую, запуском демонов, и даже не путём запуска сценария из init.d, а с помощью утилиты service. Впрочем, вызов service
имя_службы команда эквивалентен /etc/rc.d/init.d/имя_службы команда, просто командная строка выходит короче.
Примечание: При написании стартового сценария рекомендуется пользоваться файлом
/etc/init.d/functions, в котором определены основные функции для работы с /var/lock/subsys и унифицированным выводом сообщений на экран. Обратите внимание, что по соображениям совместимости
обычно используется имя каталога /etc/init.d, а не /etc/rc.d/init.d, при этом первое имя — всего лишь
символьная ссылка на второе.
83
5.5. Загрузка операционной системы
В процессе загрузки ОС пользователь должен следить за отображаемой на экране монитора информацией процесса загрузки, которая отображает этапы запуска различных служб и программных серверов в виде отдельных строк.
Каждая такая строка должна заканчиваться словом вида [XXXXXXX], являющегося признаком
нормального или ненормального завершения этапа загрузки. Слово XXXXXXX=FAILURE (авария)
свидетельствует о неуспешности завершения этапа загрузки, что требует вмешательства и специальных действий администратора системы.
После загрузки ОС для тестирования правильности старта можно в командной строке инициировать элементарные команды интерпретатора bash:
cd, ps, ls, cat, tail
и прочее.
5.6. Завершение работы ОС
Для корректного завершения работы ОС (перезагрузки) во время ее работы ЗАПРЕЩАЕТСЯ выключать питание или нажимать на кнопку "Reset", так как требуется размонтирование файловой системы.
Перед окончанием работы с ОС пользователь должен завершить все работающие программы.
Существует несколько способов выполнения операции остановки системы:
–
Нажать комбинацию клавиш "Ctrl-Alt-Del". Программа init воспримет это как сигнал к перезагрузке системы – останется только дождаться появления на экране сообщения "Reboot" (перезагрузка), и можно выключать питание системы;
–
Воспользоваться специальными командами, но они доступны только пользователю с правами
Root (суперпользователю).
5.6.1.
Команда shutdown
shutdown – остановка системы, изменение уровня выполнения
Синтаксис:
/etc/shutdown
[-y] [-gзадержка] [-iуровень_выполнения]
Описание:
Утилита shutdown служит для изменения уровня выполнения системы. По умолчанию система
переводится в однопользовательский режим, в котором ОС UNIX доступна только с консоли.
Перед началом действий по изменению уровня выполнения утилита посылает сначала предупреждающее, а после задержки и финальное сообщения. По умолчанию перед остановкой демонов и завершением процессов запрашивается подтверждение.
Допустимы следующие опции:
-y
Отменить запрос подтверждения. Команда будет работать без вмешательства пользователя. По
умолчанию, между предупреждающим и финальным сообщениями предусмотрена задержка в 60 секунд; такая же задержка выполняется между финальным сообщением и запросом подтверждения.
-gзадержка
84
Изменить стандартную величину задержки.
-iуровень_выполнения
Уровень_выполнения передается утилите init(1М). Система перейдет на этот уровень после всех
сообщений, задержек и подтверждений. Подразумеваемый уровень есть S (то же, что s, и почти то же,
что 1).
Рекомендуемые уровни_выполнения и действия при переходе на них:
0
Остановить систему, подготовив ее к безопасному выключению питания. Выключить питание, если
позволяет аппаратура. Для выполнения этих действий вызывается процедура /etc/rc0.
1, s, S
Перевести систему в однопользовательский режим, используя процедуру /etc/rc0. Разница между
уровнями S и 1 состоит в том, что на уровне S все процессы, порожденные init, завершены, но файловые системы не размонтированы. На уровне 1 размонтированы все файловые системы, кроме корневой, и завершены все пользовательские процессы, кроме консольных.
6
Остановить систему и выполнить перезагрузку.
Утилита shutdown написана на языке shell; ее может выполнять только суперпользователь.
5.6.2.
Команда poweroff
Команда poweroff вызывает остановку системы, с последующим выключением питания (если материнская плата (системная) и блок питания поддерживают эту возможность, в противном случае результат будет такой же, как и после команды "halt").
85
6. СИСТЕМА УПРАВЛЕНИЯ ПАКЕТАМИ APT
6.1. Введение: пакеты, зависимости и репозитории
В современных системах на базе Linux огромное число общих ресурсов, которыми пользуются сразу несколько программ: разделяемых библиотек, содержащих стандартные функции, исполняемых
файлов, сценариев и стандартных утилит и т. д. Удаление или изменение версии одного из составляющих систему компонентов может повлечь неработоспособность других, связанных с ним компонентов, или даже вывести из строя всю систему. В контексте системного администрирования проблемы
такого рода называют нарушением целостности системы. Задача администратора – обеспечить наличие в системе согласованных версий всех необходимых программных компонентов (обеспечение
целостности системы).
Для установки, удаления и обновления программ и поддержания целостности системы в Linux в
первую очередь стали использоваться менеджеры пакетов (такие, как rpm в дистрибутивах RedHat
или dpkg в Debian GNU/Linux). С точки зрения менеджера пакетов программное обеспечение представляет собой набор компонентов – программных пакетов. Такие компоненты содержат в себе набор
исполняемых программ и вспомогательных файлов, необходимых для корректной работы программного обеспечения. Менеджеры пакетов облегчают установку программ: они позволяют проверить наличие необходимых для работы устанавливаемой программы компонент подходящей версии непосредственно в момент установки, а также производят необходимые процедуры для регистрации программы во всех операционных средах пользователя: сразу после установки программа может быть доступна пользователю из командной строки и – если это предусмотрено – появляется в меню всех графических оболочек.
Важно: Благодаря менеджерам пакетов, пользователю Linux обычно не требуется непосредственно
обращаться к установочным процедурам отдельных программ или непосредственно работать с каталогами, в которых установлены исполняемые файлы и компоненты программ (обычно это /usr/bin, /
usr/share/имя_пакета) – всю работу делает менеджер пакетов. Поэтому установку, обновление и
удаление программ в Linux обычно называют управлением пакетами.
Часто компоненты, используемые различными программами, выделяют в отдельные пакеты и помечают, что для работы ПО, предоставляемого пакетом A, необходимо установить пакет B. В таком
случае говорят, что пакет A зависит от пакета B или что между пакетами A и B существует зависимость.
Отслеживание зависимостей между такими пакетами представляет собой серьёзную задачу для любого дистрибутива – некоторые компоненты могут быть взаимозаменяемыми: может обнаружиться
несколько пакетов, предлагающих затребованный ресурс.
Задача контроля целостности и непротиворечивости установленного в системе ПО ещё сложнее.
Представим, что некие программы A и B требуют наличия в системе компоненты C версии 1.0. Обновление версии пакета A, требующее обновления компоненты C до новой, использующей новый интерфейс доступа, версии (скажем, до версии 2.0), влечёт за собой обязательное обновление и программы B.
Однако менеджеры пакетов оказались неспособны предотвратить все возможные коллизии при
установке или удалении программ, а тем более эффективно устранить нарушения целостности системы. Особенно сильно этот недостаток сказывается при обновлении систем из централизованного репозитория пакетов, в котором последние могут непрерывно обновляться, дробиться на более мелкие
и т. п. Этот недостаток и стимулировал создание систем управления программными пакетами и под-
86
держания целостности системы.
Для автоматизации этого процесса и применяется Усовершенствованная система управления программными пакетами APT (от англ. Advanced Packaging Tool). Такая автоматизация достигается созданием одного или нескольких внешних репозиториев, в которых хранятся пакеты программ и относительно которых производится сверка пакетов, установленных в системе. Репозитории могут содержать
как официальную версию дистрибутива, обновляемую его разработчиками по мере выхода новых версий программ, так и локальные наработки, например, пакеты, разработанные внутри компании.
Таким образом, в распоряжении APT находятся две базы данных: одна описывает установленные в
системе пакеты, вторая – внешний репозиторий. APT отслеживает целостность установленной системы и, в случае обнаружения противоречий в зависимостях пакетов, руководствуется сведениями о
внешнем репозитории для разрешения конфликтов и поиска корректного пути их устранения.
Первоначально APT был разработан для управления установкой и удалением программ в дистрибутиве Debian GNU/Linux. При разработке ставилась задача создать систему управления пакетами с простым пользовательским интерфейсом, позволяющую производить установку, обновление и повседневные «хозяйственные» работы с установленными на машине программами без необходимости изучения тонкостей используемого в дистрибутиве менеджера программных пакетов.
Эти привлекательные возможности долгое время были доступны только пользователям Debian, поскольку в APT поддерживался только один менеджер пакетов, а именно применяемый в Debian менеджер пакетов dpkg, несовместимый с используемым в ALT Linux RPM. Эта несовместимость заключается прежде всего в различии используемых форматов данных (хотя существуют программы-конвертеры), но имеются и другие различия, обсуждение которых выходит за рамки изложения.
APT, однако, изначально проектировался как не зависящий от конкретного метода работы с установленными в системе пакетами, и эта особенность позволила разработчикам из бразильской компании Conectiva реализовать в нём поддержку менеджера пакетов RPM. Таким образом, пользователи
основанных на RPM дистрибутивов (дистрибутивы ALT Linux входят в их число) получили возможность использовать этот мощный инструмент.
Система APT состоит из нескольких утилит. Чаще всего используется утилита управления пакетами apt-get: она автоматически определяет зависимости между пакетами и строго следит за их соблюдением при выполнении любой из следующих операций: установка, удаление или обновление пакетов.
6.2. Источники программ (репозитории)
6.2.1.
Репозитории
Репозитории, с которыми работает APT, отличаются от обычного набора пакетов наличием мета
информации – индексов пакетов, содержащихся в репозитории, и сведений о них. Поэтому, чтобы получить всю информацию о репозитории, APT достаточно получить его индексы.
APT может работать с любым количеством репозиториев одновременно, формируя единую информационную базу обо всех содержащихся в них пакетах. При установке пакетов APT обращает внимание только на название пакета, его версию и зависимости, а расположение в том или ином репозитории не имеет значения. Если потребуется, APT в рамках одной операции установки группы пакетов
может пользоваться несколькими репозиториями.
Важно: Подключая одновременно несколько репозиториев, нужно следить за тем, чтобы они были
совместимы друг с другом по пакетной базе, т. е. отражали один определённый этап разработки.
87
Например, совместимыми являются основной репозиторий дистрибутива и репозиторий обновлений
по безопасности к данному дистрибутиву. В то же время смешение среди источников APT репозиториев, относящихся к разным дистрибутивам, или смешение стабильного репозитория с нестабильной
веткой разработки (Sisyphus) чревато различными неожиданными трудностями при обновлении пакетов.
APT позволяет взаимодействовать с репозиторием с помощью различных протоколов доступа. Наиболее популярные – HTTP и FTP, однако существуют и некоторые дополнительные методы.
Для того, чтобы APT мог использовать тот или иной репозиторий, информацию о нем необходимо
поместить в файл /etc/apt/sources.list. Описания репозиториев заносятся в этот файл в следующем виде:
rpm [подпись] метод:путь база название
rpm-src [подпись] метод:путь база название
rpm или rpm-src
Тип репозитория (скомпилированные программы или исходные тексты).
[подпись]
Необязательная строка-указатель на электронную подпись разработчиков. Наличие этого поля
подразумевает, что каждый пакет из данного репозитория должен быть подписан соответствующей
электронной подписью. Подписи описываются в файле /etc/apt/vendor.list.
Метод
Способ доступа к репозиторию: ftp, http, file, rsh, ssh, cdrom, copy.
Путь
Путь к репозиторию в терминах выбранного метода.
База
Относительный путь к базе данных репозитория.
Название
Название репозитория.
Для добавления в sources.list репозитория на компакт-диске в APT даже предусмотрена специальная утилита – apt-cdrom. Чтобы добавить запись о репозитории на компакт-диске, достаточно
вставить диск в привод и выполнить команду apt-cdrom add. После этого в sources.list появится
запись о подключённом диске примерно такого вида:
rpm cdrom:[Server Disk 1]/ ALTLinux main
rpm-src cdrom:[Server Disk 1]/ ALTLinux main
После того как отредактирован список репозиториев в sources.list, необходимо обновить локальную базу данных APT о доступных пакетах. Это делается командой apt-get update.
Если в sources.list присутствует репозиторий, содержимое которого может изменяться (как
происходит с любым постоянно разрабатываемым репозиторием, в частности, обновлений по безопасности (updates), то прежде чем работать с APT, необходимо синхронизировать локальную базу данных
с удалённым сервером командой apt-get update. Локальная база данных создаётся заново каждый
раз, когда в репозитории происходит изменение: добавление, удаление или переименование пакета.
Для репозиториев, находящихся на компакт-дисках и подключённых командой apt-cdrom add, син-
88
хронизация производится единожды в момент подключения.
При выборе пакетов для установки, APT руководствуется всеми доступными репозиториями вне зависимости от способа доступа к ним. Так, если в репозитории, доступном по сети Интернет, обнаружена более новая версия программы, чем на компакт-диске, то APT начнёт загружать данный пакет из
Интернет. Поэтому если подключение к Интернет отсутствует или ограничено низкой пропускной
способностью канала или выской стоимостью, то следует закомментировать те строчки в
/etc/apt/sources.list, в которых говорится о ресурсах, доступных по Интернет.
6.2.2.
Репозитории Sisyphus
Все дистрибутивы ALT Linux выпускаются на основе репозитория Sisyphus.
Следует иметь в виду, что Sisyphus не является самостоятельным дистрибутивом, а отражает текущее состояние разработки и может содержать нестабильные версии пакетов. Периодически на базе
этого проекта выпускаются отдельные оттестированные «срезы» — дистрибутивы.
В отличие от Sisyphus, ежедневно обновляемого разработчиками, такие срезы являются «замороженными» – разработка в них не ведётся, и сами срезы сохраняются в целях обеспечения целостности
среды дистрибутива, в которой уже не должны обновляться версии пакетов. Единственное исключение делается для обновлений, исправляющих проблемы в безопасности системы, однако такие обновления помещаются в отдельном репозитории для каждого дистрибутива. Срезы Sisyphus и репозитории обновлений также являются полноценными репозиториями APT.
Непосредственно после установки дистрибутива ALT Linux в /etc/apt/sources.list, в таже в
файлах /etc/apt/sources.list.d/*.list обычно указывается несколько репозиториев:
–
репозиторий обновлений в системе безопасности дистрибутива;
–
полный срез репозитория, на кот ором основывается дистрибутив.
6.3. Поиск пакетов
Если вы не знаете точного названия пакета, для его поиска можно воспользоваться утилитой aptcache, которая позволяет искать не только по имени пакета, но и по его описанию.
Команда apt-cache search подстрока позволяет найти все пакеты, в именах или описании которых присутствует указанная подстрока. Например:
$ apt-cache search ^veve-base - Basic appliance
ve-build-scripts - scripts used for VE building
ve-caching-nameserver - Caching name server
ve-ftp-server - FTP server
ve-imap-server - POP3/IMAP4 server
ve-kerberos-server - Kerberos server
ve-list-server - Mailing list server
ve-ntp-server - NTP server
ve-openvpn-server - virtual package for openvpn server appliance
ve-pptp-server - virtual package for pptp server appliance
ve-print-server - Print server
89
ve-proxy-server - Proxy server
ve-smtp-server - SMTP server
Обратите внимание, что в данном примере в поисковом выражении используется символ ^, указывающий на то, что необходимо найти совпадения только в начале строки (в данном случае – в начале
имени пакета).
Для того, чтобы подробнее узнать о каждом из найденных пакетов и прочитать его описание, можно воспользоваться командой apt-cache show, которая покажет информацию о пакете из репозитория:
$ apt-cache show ve-ftp-server
Package: ve-ftp-server
Section: System/Base
Installed Size: 0
Maintainer: Stanislav Ievlev <inger@altlinux>
Version: 0.1-alt4
Pre-Depends: rpmlib(PayloadFilesHavePrefix) (<= 4.0-1), rpmlib(CompressedFileNames)
(<= 3.0.4-1)
Depends: apt, basesystem, sysklogd, etcnet, glibc-nss, glibc-locales, netlist,
anonftp, alterator-fbi, alterator-vsftpd, alterator-users, openssh-server, passwd, less
Provides: ve-ftp-server (= 0.1-alt4)
Architecture: noarch
Size: 1989
MD5Sum: e7646f729b2bced59e4e759393cb1432
Filename: ve-ftp-server-0.1-alt4.noarch.rpm
Description: FTP server
virtual package for ftp server appliance
позволяет осуществлять поиск и по русскому слову, однако в этом случае будут найдены
только те пакеты, у которых помимо английского есть ещё и описание на русском языке. К сожалению, русское описание на настоящий момент есть не у всех пакетов, хотя описания наиболее актуальных для пользователя пакетов переведены.
apt-cache
6.4. Установка или обновление пакета
Установка пакета с помощью APT выполняется командой:
# apt-get install имя_пакета
apt-get позволяет устанавливать в систему пакеты, требующие для работы другие, пока ещё не
установленные. В этом случае он определяет, какие пакеты необходимо установить, и устанавливает
их, пользуясь всеми доступными репозиториями.
Установка пакета ve-ftp-server командой apt-get install ve-ftp-server приведёт к следующему
диалогу с APT:
# apt-get install ve-ftp-server
Reading Package Lists... Done
Building Dependency Tree... Done
90
The following extra packages will be installed:
alterator-users alterator-vsftpd anonftp klogd netlist pwgen shadow-groups sysklogd
vsftpd xinetd
The following NEW packages will be installed:
alterator-users alterator-vsftpd anonftp klogd netlist pwgen shadow-groups sysklogd
ve-ftp-server vsftpd xinetd
0 upgraded, 11 newly installed, 0 removed and 0 not upgraded.
Need to get 417kB of archives.
After unpacking 700kB of additional disk space will be used.
Do you want to continue? [Y/n]
. . .
Fetched 417kB in 0s (2176kB/s)
Committing changes...
Preparing...
################################################ [100%]
1: xinetd
################################################ [
9%]
2: vsftpd
################################################ [ 18%]
3: alterator-vsftpd
################################################ [ 27%]
4: netlist
################################################ [ 36%]
5: pwgen
################################################ [ 45%]
6: klogd
################################################ [ 54%]
7: anonftp
################################################ [ 63%]
8: shadow-groups
################################################ [ 72%]
9: alterator-users
################################################ [ 81%]
Done.
Команда apt-get install имя_пакета используется и для обновления уже установленного пакета
или группы пакетов. В этом случае apt-get дополнительно проверяет, не обновилась ли версия пакета
в репозитории по сравнению с установленным в системе.
При помощи APT можно установить и отдельный бинарный rpm-пакет, не входящий ни в один из
репозиториев (например, полученный из Интернет). Для этого достаточно выполнить команду aptget install путь_к_файлу.rpm. При этом APT проведёт стандартную процедуру проверки зависимостей и конфликтов с уже установленными пакетами.
Иногда, в результате операций с пакетами без использования APT, целостность системы нарушается, и apt-get отказывается выполнять операции установки, удаления или обновления. В этом случае
необходимо повторить операцию, задав опцию -f, заставляющую apt-get исправить нарушенные зависимости, удалить или заменить конфликтующие пакеты. В этом случае необходимо внимательно следить за сообщениями, выдаваемыми apt-get. Любые действия в этом режиме обязательно требуют
подтверждения со стороны пользователя.
6.5. Удаление установленного пакета
Для удаления пакета используется команда apt-get remove имя_пакета. Для того, чтобы не нарушать целостность системы, будут удалены и все пакеты, зависящие от удаляемого: если отсутствует
необходимый для работы приложения компонент (например, библиотека), то само приложение стано-
91
вится бесполезным. В случае удаления пакета, который относится к базовым компонентам системы,
apt-get потребует дополнительного подтверждения производимой операции с целью предотвратить
возможную случайную ошибку.
Если вы попробуете при помощи apt-get удалить базовый компонент системы, вы увидите такой
запрос на подтверждение операции:
# apt-get remove filesystem
Обработка файловых зависимостей... Завершено
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
basesystem filesystem ppp sudo
Внимание: следующие базовые пакеты будут удалены:
В обычных условиях этого не должно было произойти, надеемся, вы точно
представляете, чего требуете!
basesystem filesystem (по причине basesystem)
0 пакетов будет обновлено, 0 будет добавлено новых, 4 будет
удалено(заменено) и 0 не будет обновлено.
Необходимо получить 0B архивов. После распаковки 588kБ будет
освобождено.
Вы собираетесь совершить потенциально вредоносное действие
Для продолжения, наберите по-английски 'Yes, I understand this may be
bad'
(Да, я понимаю, что это может быть плохо).
Каждую ситуацию, в которой APT выдаёт такое сообщение, необходимо рассматривать отдельно.
Однако, вероятность того, что после выполнения этой команды система окажется неработоспособной,
очень велика.
6.6. Обновление всех установленных пакетов
Для обновления всех установленных пакетов используется команда apt-get upgrade. Она позволяет обновить те и только те установленные пакеты, для которых в репозиториях, перечисленных в
/etc/apt/sources.list, имеются новые версии; при этом из системы не будут удалены никакие другие пакеты. Этот способ полезен при работе со стабильными пакетами приложений, относительно которых известно, что они при смене версии изменяются несущественно.
Иногда, однако, происходит изменение в именовании пакетов или изменение их зависимостей. Такие ситуации не обрабатываются командой apt-get upgrade, в результате чего происходит нарушение целостности системы: появляются неудовлетворённые зависимости. Например, переименование
пакета MySQL-shared, содержащего динамически загружаемые библиотеки для работы с СУБД
MySQL, в libMySQL (отражающая общую тенденцию к наименованию библиотек в дистрибутиве) не
приводит к тому, что установка обновлённой версии libMySQL требует удаления старой версии
MySQL-shared. Для разрешения этой проблемы существует режим обновления в масштабе дистрибутива – apt-get dist-upgrade.
В случае обновления всего дистрибутива APT проведёт сравнение системы с репозиторием и уда-
92
лит устаревшие пакеты, установит новые версии присутствующих в системе пакетов, а также отследит ситуации с переименованиями пакетов или изменения зависимостей между старыми и новыми
версиями программ. Всё, что потребуется поставить (или удалить) дополнительно к уже имеющемуся
в системе, будет указано в отчёте apt-get, которым APT предварит само обновление.
Для обновления всей системы рекомендуется использовать команду apt-get dist-upgrade.
7. РАБОТА С НАИБОЛЕЕ ЧАСТО ИСПОЛЬЗУЕМЫМИ
КОМПОНЕНТАМИ
7.1. Командные оболочки (интерпретаторы)
Как было сказано выше, для управления ОС используется командные интерпретаторы (shell).
Зайдя в систему, Вы увидите приглашение – строку, содержащую символ «$» (далее, этот символ
будет обозначать командную строку. Программа ожидает ваших команд. Роль командного интерпретатора – передавать ваши команды операционной системе. По своим функциям он соответствует
command.com в DOS, но несравненно мощнее. При помощи командных интерпретаторов можно писать небольшие программы – сценарии (скрипты). В Linux доступны следующие командные оболочки:
bash – самая распространенная оболочка под linux. Она ведет историю команд и предоставляет возможность их редактирования.
pdksh – клон korn shell, хорошо известной оболочки в UNIX(™) системах.
Оболочкой по умолчанию является «Bash» (Bourne Again Shell) Чтобы проверить, какую оболочку
Вы используете, наберите команду:
echo $SHELL
У каждой оболочки свой синтаксис. Мы рекомендуем Вам использовать Bash. В дальнейшем мы
будем строить свои примеры с использованием этой оболочки.
7.1.1.
Командная оболочка Bash
В bash имеется несколько приемов для работы со строкой команд. Например, используя клавиатуру,
вы можете:
Ctrl + A – перейти на начало строки.
Ctrl + U – удалить текущую строку.
Ctrl + C – остановить текущую задачу.
Вы можете использовать «;» для того, чтобы ввести несколько команд одной строкой. Клавиши
«вверх» и «вниз», позволяют Вам перемещаться по истории команд. Для того, чтобы найти конкретную команду в списке набранных, не пролистывая всю историю, наберите:
Ctrl + R
Команды, присутствующие в истории, отображаются в списке пронумерованными. Для того, чтобы
запустить конкретную команду наберите:
! номер команды
если Вы введете:
93
!!
запустится последняя, из набранных команд.
Иногда, имена программ и команд слишком длинны. К счастью, Bash сам может завершать имена.
Нажав клавишу [TAB], Вы можете завершить имя команды, программы или каталога. Например,
предположим, что Вы хотите использовать программу декомпрессии bunzip2. Для этого наберите:
bu
затем нажмите [TAB]. Если ничего не происходит, то вероятно существует несколько возможных
вариантов завершения команды.
Нажав клавишу [TAB] еще раз, вы получите список имен начинающихся с «bu».
Например у вас есть:
$ bu buildhash builtin bunzip2
Наберите:
n
(bunzip – это единственное имя, третьей буквой которого является «n»), а затем нажмите клавишу
табуляции. Оболочка дополнит имя и вам остается лишь нажать «Enter», чтобы запустить команду!
Заметим, что программу, вызываемую из командной строки, Bash ищет в каталогах, определяемых
в системной переменной PATH. По умолчанию, в этот перечень каталогов не входит текущий каталог,
обозначаемый «./» (точка слэш) (если только вы не выбрали один из двух самых слабых уровней защиты, см. об этом ниже). Поэтому, для запуска программы prog из текущего каталога, надо дать команду: ./prog
7.1.2.
Базовые команды оболочки Bash
Все команды, приведенные ниже, могут быть быть запущены в режиме консоли.
Для получения более подробной информации используйте команду man. Пример:
man ls
Команда su:
Позволяет Вам получить права администратора. Когда вы набираете su, оболочка запрашивает у
вас пароль суперпользователя (root). Введите пароль и нажмите Enter: теперь вы получили привилегии суперпользователя. Чтобы вернуться к правам вашего пользовательского бюджета, наберите exit.
Команда cd:
Позволяет сменить каталог. Она работает как с абсолютными, так и с относительными путями.
Предположим, что Вы находитесь в своем домашнем каталоге и хотите перейти в его подкаталог
docs/. Для этого, введите относительный путь:
cd docs/
Чтобы перейти в каталог /usr/bin, наберите (абсолютный путь):
cd /usr/bin/
Некоторые варианты команды:
cd ..
позволяет вам сделать текущим родительский каталог (обратите внимание на пробел между cd и
94
..).
cd -
позволяет вам вернуться в предыдущий каталог. Команда cd, без параметров переводит вас в ваш
домашний каталог.
Команда ls:
ls (list) выдает список файлов в текущем каталоге. Две основные опции: -a – просмотр всех
файлов, включая скрытые, -l – отображение более подробной информации.
Команда rm:
Эта команда используется для удаления файлов.
Внимание: удалив файл, вы не сможете его восстановить!
(Существует исключение для файловой системы ext2 – программа recover)
Синтаксис:
rm имя_файла
У данной программы существует ряд параметров. Самые часто используемые: -i – запрос на удаление файла, -r – рекурсивное удаление (т.е. удаление, включая подкаталоги и скрытые файлы).
Пример:
rm -i ~/html/*.html
Удаляет все файлы html, в вашем каталоге html.
Команды mkdir и rmdir:
Команда mkdir позволяет Вам создать каталог, тогда как rmdir удаляет каталог, при условии, что он
пуст.
Синтаксис:
mkdir имя_каталога
rmdir имя_каталога
Команда rmdir часто заменяется командой rm -rf, которая позволяет вам удалять каталоги, даже
если они не пусты.
Команда less:
less
позволяет вам постранично просматривать текст.
Синтаксис:
less имя_файла
Крайне полезно просмотреть файл, перед тем как его редактировать. Для выхода нажмите q.
Команда grep:
Данная команда имеет много опций и предоставляет возможности поиска символьной строки в
файле.
Синтаксис:
grep шаблон_поиска файл
Команда ps:
95
Отображает список текущих процессов. Колонка команд указывает имя процесса, колонка PID
(идентификатор процесса) – номер процесса (этот номер используется, для операций с процессом,
например чтобы «убить» его командой kill).
Синтаксис:
ps аргументы
Аргумент u предоставляет вам больше информации, ax позволяет вам просмотреть те процессы,
которые не принадлежат вам (такие как те, что были запущены во время процесса загрузки.).
Команда kill:
Если программа перестала отвечать или зависла, используйте данную команду, чтобы её завершить.
Синтаксис:
kill PID_номер
Иногда, необходимо будет использовать kill -9 PID_number (когда обычная команда kill не дает
желательного эффекта). Номер PID выясняется при помощи команды ps.
7.2. Текстовый редактор Vi
У Vi несколько режимов работы (и в этом состоит его главное отличие от других привычных нам
редакторов):
–
«Командный режим» – перемещение по файлу, стирание текста и другие редактирующие функции, переход в него из любого другого режима <ESC>, иногда 2 раза;
–
«Режим ввода» – ввод текста. Заметьте, что стирание и ввод текста происходит в двух разных
режимах;
–
«Режим строчного редактора ED» – более глобальные операции над текстом/файлом/редактором (записать файл, настроить редактор...). Переход в него из командного режима – ":".
Опишем операции, которые мы можем произвести с файлом в командном режиме.
7.2.1.
Открыть/создать файл
vi mamapapa.txt
– открыть один файл.
vi mama.txt papa.txt
– открыть файл mama.txt, после выхода из него открыть файл papa.txt.
Файл открывается в командном режиме с помощью команды vi. Здесь мы можем просмотреть
файл, переместиться по его содержимому, стереть текст, но внести изменения или ввести текст в этом
режиме нельзя.
Создание файла происходит при помощи той же команды. Собственно создание файла происходит
в момент сохранения.
Для открытия или создания нового файла в командном режиме набираем:
:e filename
Перед этим нужно сохранить предыдущий файл:
:w
– сохраняет файл с существующим именем или
:sav filename
– «Сохранить как»
96
7.2.2.
Перемещение по файлу
Перемещение по файлу происходит с помощью стрелочек (стрелочки работают при правильном
описании терминала, если проблема описания у вас еще не решена – используйте h,j,k,l). Также можно использовать быстрые клавиши:
^ или 0 – в начало текущей строки;
$ – в конец текущей строки
w – на слово вправо
b – на слово влево
7.2.3.
Редактирование файла
Предположим в нашем файле записан текст, который необходимо отредактировать. Для этого необходимо перейти в режим ввода. Самый простой способ – из командного режима нажатие клавиши "i".
После чего можно смело приступать к вводу текста. <ESC> вернет нас к командному режиму. Другие
важные команды:
R,i – переход в режим ввода – замена текста под курсором
I – переход в режим ввода с начала текущей строки
o – переход в режим ввода с новой строки под курсором
O – переход в режим ввода с новой строки над курсором
a – переход в режим ввода после курсора
x – стирание символа под курсором
X – стирание символа перед курсором
dd – стирание текущей строки
d<число>d – стирание числа строк начиная с текущей
yy – копирование текущей строки в неименованный буфер
y<число>y – копирование числа строк начиная с текущей в неименованный буфер
p – вставка строки из неименнованного буфера под курсор
P – вставка строки из неименнованного буфера над курсором
J – слияние текущей строки со следующей
u – отмена последней команды
. – повтор последней команды
Конечно, все сразу запомнить их трудно, даже не надо. Уверяю вас, через некоторое время эти команды будут пользоваться спросом.
Наконец мы дошли к самому главному – режиму строчного редактора ED. Помним как в него
перейти? – ":". «Шифт-ж» если по-русски.
7.2.4.
Запись/выход
<ESC>:w<CR> – записать файл
97
<ESC>:w!<CR> – записать файл
Эта команда может помочь, если файл заблокирован другим пользователем, либо отсутствуют такие привилегии, либо еще какая беда. При попытке записи без "!" будет выдано соответствующее
предупреждение.
<ESC>:w new_file<CR>
Создать новый файл "new_file" и записать в него текущее содержимое. Если файл существует, будет показано предупреждение. Дальше вы продолжаете работать со старым файлом – mamapapa.txt
<ECS>:q<CR> – выйти из редактора.
Если файл был изменен, у вас ничего не получится. В таких случаях необходимо добавлять после
команды "!":
<ECS>:q!<CR> – выйти из редактора не сохраняя изменения
<ESC>:wq<CR> или <ESC>ZZ<CR> – записать файл и выйти
7.2.5.
Коэффициент повторения
Дополнительные возможности:
Есть несколько вещей, без которых редактирование похоже на пытку:
^G – показать информацию о файле
G – перейти в конец файла
<number>G – перейти на конкретную строку <number>
:<number> – перейти на <number> строк вперед
:set nu[mber] – отобразить слева нумерацию строк(:set nonu[mber] - спрятать нумерацию)
:set wrap – переносить длинные строки(:set nowrap - не переносить)
:syntax on/off – включить/выключить подсветку синтаксиса
:colorscheme <name> – задать цветовую тему (где <name> имя темы, TAB работает как авто-дополнение)
/мама – поиск текста "мама" в файле
n – повторить поиск
:h или :help – список возможной помощи(:viusage, :exusage)
привести концы строк в файле к виду dos или unix соответственно:
:set fileformat=dos
:set fileformat=unix
Задать размер табуляции в 4 пробела:
:set ts=4
98
7.3. Редактор VIM
7.3.1.
Режимы работы
В ViM существуют 3 режима работы:
Основной – предназначен, для просмотра файла, ввода команд и перехода из него в другие режимы. Из любого режима в командный можно попасть по нажатии (иногда два раза) <ESC>. При нажатии '':'' вам становится доступна командная строка ViM в которой вы можете вводить команды. Пока
запомните 3 из них - команда выхода quit (ViM понимает сокращения, так что вы можете писать q), команда сохранения write (или w), параметром которой может быть имя файла и вызов справки по, очевидно, help (или h). На остальные клавиши (и их последовательности) вы можете навесить все, что
угодно, либо использовать значения по умолчанию.
Визуальный – предназначен в первую очередь для выделения блоков текста. Для запоминания
предлагаются 3 варианта перехода в этот режим – v для посимвольного выбора, <Shift>+v для построчного и <Ctrl>+v для блочного. В нормальном режиме (при переходе по ''v'') вы можете оперировать следующими сущностями: слово (''w''), предложение (''s''), параграф (''p'') и блок (''b''). Выделение
при этом начинать с позиции курсора (''a''), или же с начала блока (''i''). Например, выделение текущего блока (участка, ограниченного парными элементами) можно произвести следующим образом
<Esc>vib. Копирование в буфер выделенного текста осуществляется по ''y'', вырезание по ''d'' а вставка
соответственно ''p''.
Режим редактирования – переход на него осуществляется, к примеру, нажатием <Ins>.
7.3.2.
Основные возможности
Все возможности и команды редактора ViM перечислить весьма затруднительно (ибо HTML-документация по нему занимает около пяти мегабайт), но на группе наиболее (на наш взгляд) полезных
остановиться необходимо. Перечисленные ниже команды вводятся в основном режиме (если нет специального уточнения). Все они имеют команднострочные аналоги и могут быть легко переопределены вами.
переходы
Для перехода на строку с номером n, воспользуйтесь командой G. Так, для перехода к началу текста
набирайте 0G, для сотой строки 100G, а для конца - $G. Для перехода на n символов в нужную вам
сторону можете использовать клавиши со стрелками. То есть для перехода на 1000 символов вниз наберите 1000 и нажмите стрелку вниз.
Для перемещения по тексту используйте следующие команды: ''('', '')'' для перемещения по предложениям, ''{'', ''}'' для параграфов, ''[['', '']]'' для функций, ''%'' – переход к парной скобке, ''``'' – к предыдущему положению, а ''<CTRL>-O, <CTRL>-I'' – соответственно назад и вперед по истории переходов.
метки
Используются для отметки позиции (mметка, где меткой является любая буква) и быстрого к ней
перехода (`метка). Метки нижнего регистра действительны в пределах данного файла, метки же верхнего регистра действуют во всех открытых файлах. Список всех меток можно получить командой
marks.
регистры
99
Конечно же вам доступно множество именованных регистров (хранилищ данных, буферов).
Регистр отмечается ``"буква''. К нему применимы все стандартные действия – копирование в него
("меткаy), вырезание ("меткаd), и вставка из него ("меткаp, можете вместо p использовать [p,]p для
вставки соответственно перед, или после курсора). В режиме редактирования вставка из регистра осуществляется по ''<Ctrl>+R метка''. Для добавления данных в регистр используйте заглавную метку.
Также вы можете писать в регистр, воспользовавшись командой ''qметка'' и завершая запись по ''q''.
Таким образом вы сохраняете макрос, выполнить который можно по ''@метка''.
Регистры с метками ''*'' и ''+'' совпадают с X-Window clipboards, ''%'' – соответствует редактируемому файлу. Для просмотра содержимого всех регистров воспользуйтесь командой :registers, либо :reg
метка1метка2... для просмотра некоторых.
фолды
предназначены для сокрытия не нужных в данный момент данных, дабы те не отвлекали внимания.
Например, кода подпрограммы с которой вы в данный момент не работаете. По умолчанию фолды активированы в режиме их ручной расстановки. Если вы хотите их автоактивации по отношению к табуляции, то добавьте в конфиг строку set foldmethod=indent. Все команды для работы с фолдами начинаются с ''z''. Открытие фолда производится, например, по zo (или стрелке вправо) на нем, закрытие
кода в фолд – по zc.
сессии
при ведении группы проектов нередко желательно сохранить текущее состояния и настройки редактора, дабы в дальнейшем продолжить работу с того же места. Для этого и предназначены сессии,
что создаются командой :mksession /path/to/Session.vim, а читаются простой командой :so
/path/to/Session.vim. Гораздо чаще, впрочем, возникает нужда в сохранении не всей сессии, но только
текущего контекста (в что входит, например, положение курсора в коде, текущая расстановка фолдов и
много другое, о чем читайте в документации). Это действие выполняет команда :mkview, чтение –
:loadview. Очень удобно сделать сохранение и чтение контекста автоматическим при начале и окончании редактирования файла. Это может быть реализовано следующим кодом (применяется для всех
файлов, имеющих точку в имени):
au
BufWinLeave *.* mkview
au
BufWinEnter *.* silent loadview
поиск и замена
Поиск осуществляется командами ''/'' для поиска (по регулярному выражению) вперед, а ''?'' в
обратном направлении. Для продолжения поиска используйте ''n'', а для прошлого варианта ''N''. Для
поиска слова под курсором используются соответственно ''#'' и ''*''.
Для поиска с заменой используйте :%s/что/на что/gic, где ''%'' означает работу со всем текстом (а не
с текущей строкой) ''g'' – глобальная замена (а не первое совпадение), ''i'' - игнорирование регистра, а
''c'' – подтверждение каждого действия.
автодополнение
Производится по содержимому данного файла, а также указанных в переменной dictionary по нажатию клавиш ``
отмена
''u'' для отмены и ``
смена регистра
100
''~'' для выделенного участка (или буквы под курсором). ''U'' - принудительно установить верхний
регистр, а ''u'' соответственно нижний.
повторить
''.''.
7.3.3.
Конфигурация
Основным конфигурационным файлом является ~/.vimrc. Активация русского шрифта в GUI-режиме, плюс выбор темы для обоих режимов осуществляется, например, следующим кодом:
if has("gui_running")
colorscheme candy
set guifont=-cronyx-courier-medium-r-normal-*-*-120-*-*-m-*-koi8-r
endif
if !has("gui_running")
colorscheme elflord
endif
Быстрые и, вероятно, привычные клавиши:
"Выход по F10
nmap <F10> :q<CR>
imap <F10> <ESC>:q<CR>
"Сохранение по F2
nmap <F2> :w<CR>
imap <F2> <ESC>:w<CR>i<Right>
"Компиляция по F9
nmap <F9> :make<CR>
imap <F9> <ESC>:make<CR>
7.4. xinetd
xinetd запускает процессы которые предоставляют различные сервисы интернет. В отличие от сервисов которые стартуют во время инициализации системы и пребывают в бездействии в ожидании
запросов, xinetd представляет собой только один процесс слушающий на всех портах сервисов перечисленных в файле конфигурации xinetd.conf. Когда приходит запрос xinetd запускает соответствующий сервер. По причине такой работы xinetd называют еще супер-сервером.
Сервисы, перечисленные в конфигурационном файле xinetd можно разделить на две группы. Сервисы из первой группы называются multi-threaded и на каждый новый запрос запускается новый серверный процесс. Для таких сервисов xinetd продолжает слушать сеть на соответствующем порту ожидая новых запросов и готовай породить новый процесс. В другую группу включаются сервисы службы которых в состоянии обрабатывать новые соединения. Такие сервисы называются single-threaded и
xinetd прекращает обработку новых запросов до тех пор пока серверный процесс не завершит свою
работу. Сервисы в этой группе обычно datagram-based.
101
Итак, причиной существования супер-сервера является факт сохранения системных ресурсов за
счет не запуска множества серверных процессов которые возможно будут бездействовать большую
часть своей жизни. Полностью соответствуя назначению запускать требуемые сервисы, xinetd осуществляет так же функции контроля доступа и регистрации событий. Кроме того xinetd не ограничен
сервисами перечисленными в файле /etc/services. Можно использовать xinetd для запуска сервисов
специального назначения.
7.4.1.
Параметры
-d
Активирует режим отладки. Этот параметр выводит много отладочной информации и позволяет отладить работу xinetd.
-syslog syslog_facility
Этот параметр разрешает регистрацию событий используя syslog. Сообщения производимые службой xinetd регистрируются используя одну из syslog facility.Поддерживаются следующие facility:
daemon, auth, user, local[0-7] Эта опция не действует если активирован режим отладки, так как при отладке все сообщения посылаются на консоль.
-filelog logfile
Производимые xinetd сообщения помещаются в указанный файл. Новые сообщения всегда добавляются к существующим. Если файл не существует, то он создается. Опция не действует в режиме отладки.
-f config_file
Определяет положение файла конфигурации xinetd. По умолчанию – это /etc/xinetd.conf.
-pid
Идентификатор процесса (PID) выводится на устройство стандартной ошибки. Не действует в режиме отладки.
-loop rate
Этот параметр устанавливает ограничение скорости запускания серверов, указывается число запускаемых серверов в секунду. При превышении указанного значения запуск новых процессов блокируется и сервис становится временно недоступным. Значение этого параметра определяется производительностью компьютера. По умолчанию – 10.
-reuse
Если указан этот параметр то, xinetd устанавливает SO_REUSEADDR для сокета используемого
сервисом. Это позволяет использовать адрес даже если активны программы которые уже его используют, это может случиться когда предыдущая копия xinetd пытается запустить сервер который уже выполняется. Параметр не эффективен с RPC сервисами.
-limit proc_limit
Этот параметр устанавливает предел на число одновременно выполняющихся процессов запущенных службой xinetd. Использование параметра позволяет предотвратить переполнение таблицы процессов.
-logprocs limit
102
Параметр устанавливает максимальное значение одновременно выполняемых процессов запущенных по запросу удаленного userid.
-shutdownprocs limit
Параметр устанавливает предельное число одновременно выполняющихся серверов сервиса
shutdown (concurrently running servers for service shutdown)
-cc interval
Параметр задает промежуток времени в секундах через который xinetd производит периодическую
проверку внутренней целостности.
Параметры syslog и filelog взаимно исключающие. Если ничего не указано, то по умолчанию используется syslog daemon facility. Не путайте сообщения xinetd с сообщениями относящимися к функциям регистрации событий. Последние журналируются только если это указано в файле конфигурации.
7.4.2.
Управление xinetd
xinetd выполняет определенные действия при получении определенных сигналов. Действия ассоциированные с соответствующими сигналами могут быть переопределены путем редактирования
config.h и последующей компиляции.
SIGUSR1
вызывает мягкую переконфигурацию, это означает что xinetd перечитывает файл конфигурации и
подстраивается под изменения.
SIGUSR2
вызывает жесткую переконфигурацию, это значит то же самое что и мягкая переконфигурация за
исключением того что все серверы для сервисов которые стали недоступны принудительно завершаются. Контроль доступа заново выполняется для выполняющихся серверных процессов, путем проверки удаленного хоста, времени доступа и количества выполняющихся серверов. Если число выполняющихся процессов превышает заданное, произвольным образом выбранные процессы убиваются
что бы число оставшихся удовлетворяло поставленному условию. Так же если флаг INTERCEPT был
сброшен или установлен, все серверы обеспечивающие этот сервис завершаются. Все это выполняется для того что бы после жесткой реконфигурации не осталось не одного работающего процесса обрабатывающего запросы с адресов не соответствующих критериям контроля доступа.
SIGQUIT
приводит к завершению программы.
SIGTERM
завершает все выполняющиеся серверы перед завершением xinetd.
SIGHUP
приводит к генерации дампа внутреннего состояния (по умолчанию файл дампа /tmp/xinetd.dump).
SIGIOT
вызывает проверку внутренней целостности что бы проверить что структуры данных используемые программой не повреждены. После завершения проверки xinetd генерирует сообщение о результате проверки.
103
При реконфигурации лог-файлы закрываются и вновь открываются. Это позволяет удалять старые
логи.
7.4.3.
Файлы
/etc/xinetd.conf
стандартный конфигурационный файл.
/var/run/xinetd.dump
стандартный файл дампа.
7.5. Crontab
сrontab – таблицы, управляющие работой службы cron. Файл содержит инструкции службы cron(8)
в общей форме: запускать указанную команду в заданное время и в заданные дни. На компьютере
обычно
имеются
общесистемный файл
(/etc/crontab),
и
индивидуальные файлы
(/var/cron/tabs/<имя-пользователя>) для пользователей системы. Таким образом, команды в файле
будут выполняться с правами этих пользователей или, в случае общесистемного файла, с правами
пользователя указанного в командной строке при запуске службы. У служб Uucp и News обычно есть
свои собственные crontab устраняющие необходимость в явном запуске su(1) в рамках команды
cron(8).
Хотя по сути является обыкновенным текстовым файлом, он не должен редактироваться обычными
средствами. Для создания, изменения и удаления следует использоваться специальную утилиту,
crontab(1).
Пустые строки, ведущие пробелы и символы табуляции игнорируются. Строки, начинающиеся с
символа ('#' ) считаются комментариями и игнорируются. Заметьте, что комментарии не допускаются
в тех же строках, где расположены команды cron(8), так как они будут распознаны как части команды. По этой же причине комментарии не разрешены в строках, задающих переменные среды.
Строка-директива в представляет собой либо задание переменной среды, либо команду cron(8).
Задание переменной среды:
Можно определять среду (набор переменных среды), в которой будет выполняться команда . Задание переменной среды осуществляется в следующей форме:
имя_переменной = значение
где пробелы вокруг знака равенства (`=' ) необязательны, и любые пробелы после Fa значения будут
использованы как часть значения переменной Fa имя_переменной . Строка значение может быть заключена в кавычки (одинарные или двойные) для возможности сохранения пробелов в начале и конце.
Несколько переменных среды устанавливаются автоматически службой cron(8). SHELL устанавливается в /bin/sh а LOGNAME и HOME определяются по файлу /etc/passwd (в соответствии с владельцем crontab). Значения переменных HOME и SHELL можно переопределить директивами crontab.
В системах семейства BSD переменная LOGNAME может называться USER.
В дополнение к LOGNAME , HOME и SHELL cron(8) может использовать переменную MAILTO в
случаях если в данном crontab была указана отправка почты. Если MAILTO определена (и не пуста),
электронная почта отправляется указанному в переменной пользователю. Если MAILTO определена,
но пустая, (MAILTO = `,' ) электронная почта отправляться не будет. В противном случае, почта посы-
104
лается владельцу crontab Эта переменная полезна при запуске команд от псевдопользователей, для которых не определены почтовые адреса в системе.
Команды cron:
Формат команд cron(8) аналогичен стандарту V7 и является совместимым с ним. Каждая стока в
системном состоит из шести полей и команды:
минута час число месяц день_недели пользователь команда
Каждая стока в пользовательском состоит из пяти полей и команды:
минута час число месяц день_недели команда
Поля отделяются друг от друга пробелами или символами табуляции. Команда может состоять из
нескольких полей. Допустимые значения полей:
Поле
Допустимые значения
минута
* или 0-59
час
* или 0-23
число
* или 1-31
месяц
*, 1-12 или имя месяца (см. ниже)
день-недели
*, 0-7 или имя дня (воскресенье - это 0 и 7)
пользователь
имя существующего пользователя
команда
строка
Допустимо указание нескольких значений (и диапазонов через тире) через запятую. Примеры: ''1 , 2
, 5 , 9'' ''0-4, 8-12''.
Диапазон указывается как два числа, разделенных дефисом. Указываемые числа включаются в
диапазон. Например, значение поля час 8-11 приведёт к выполнению команды в 8, 9, 10 и 11 часов.
При указании диапазона можно пропускать некоторые его значения, указав шаг в форме / число
Например: ''0-23/2'' для поля час означает запуск команды через два часа (по стандарту V7 пришлось
бы указывать ''0,2,4,6,8,10,12,14,16,18,20,22''). Шаг можно указывать также после звёздочки: ''каждые
два часа'' соответствует значению ''*/2''.
Звёздочка ('*' ) без шага соответствует полному диапазону значений.
Для задания полей месяц и день_недели можно использовать имена. Указывайте первые три буквы
нужного дня или месяца на английском, регистр букв не имеет значения. Диапазоны или списки имён
не разрешены.
Поле команда (остаток строки) определяет запускаемую по расписанию команду. Вся оставшаяся
часть строки до символа перевода строки или символа %, будет выполнен вызов /bin/sh или другой
оболочки, определенной в переменной SHELL в crontab Знак процента ('%' ) в команде (если он не
экранирован обратной косой чертой ('\' ) ) будет соответствовать символу перевода строки и все данные после первого '%' будут посланы для команды на стандартный ввод.
105
Служба cron(8) запускает команды когда значения полей минута , час , месяц и хотя бы одно из
полей Fa число и Fa день_недели, совпадают с текущим временем (см. замечание ниже). Служба
cron(8) сверяет директивы с текущим временем раз в минуту.
Замечание: день выполнения команды может быть задан в двух полях – число и день_недели Если
оба поля определены (т.е не равны *), то команда будет запущена, когда любое поле совпадёт с текущим временем. Например, запись:
30 4 1,15 * 5
приведёт к выполнении команды в 4:30 по полуночи первого и пятнадцатого числа каждого месяца,
плюс в каждую пятницу.
Вместо первых пяти полей допустимо указание одного из восьми специальных триггеров:
Строка
Значение
@reboot
Выполнить команду один раз, при запуске
cron(8).
@yearly
Выполнять команду каждое 1 января, "0 0 1 1
*".
@annually
(эквивалентно @yearly).
@monthly
Выполнять команду в начале каждого месяца,
"0 0 1 * *".
@weekly
Выполнять команду каждое воскресенье, "0 0 *
* 0".
@daily
Выполнять команду в полночь, "0 0 * * *".
@midnight
(эквивалентно @daily).
@hourly
Выполнять команду раз в час, "0 * * * *".
7.5.1.
Примеры
# использовать для запуска команд /bin/sh
# не обращая внимание на то, что написано в /etc/passwd
SHELL=/bin/sh
# отправлять вывод выполнения команд по электронной почте пользователю `paul'
# не обращая внимания на то, чей это crontab
MAILTO=paul
#
# запускать пять минут пополуночи, каждый день
5 0 * * *
$HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# запускать в 14:15 первого числа каждого месяца
15 14 1 * *
$HOME/bin/monthly
106
# запускать в 22.00 каждый рабочий день, назло Джо
0 22 * * 1-5
mail -s "Уже 10 вечера" joe%Joe,%%Где твои дети?%
23 0-23/2 * * * echo "запуск в 00:23, 2:23, 4:23 ..., каждый день"
5 4 * * sun
7.5.2.
echo "запуск в 4:05 каждое воскресенье"
Нестандартные возможности
При задании дня недели, и 0 и 7 соответствуют воскресенью. BSD и ATT не поддерживают такое
поведение.
Можно указывать одновременно и списки и диапазоны в одном и том же поле. ''1-3,7-9'' не будет
принято cron систем ATT и BSD они допускают только либо ''1-3'', либо ''7,8,9''.
Диапазоны можно указывать с пропусками, например ''1-9/2'' соответствует ''1,3,5,7,9''.
Допустимо указание месяцев или дней недели по имени.
В crontab можно задавать переменные среды. В BSD и ATT, среда для дочерних процессов определяется файлом /etc/rc.
Вывод команд отсылается почтой владельцу файла crontab (в BSD это невозможно), а также может
отправляться кому-либо другому (это невозможно в SysV), либо отправка может быть вообще отключена (это также невозможно в SysV).
Любая из команд с префиксом '@' может заменять первые пять полей файла.
107
8. ОБЩИЕ ПРАВИЛА ЭКСПЛУАТАЦИИ
8.1. Включение компьютера
Для включения компьютера необходимо:
–
включить стабилизатор напряжения, если компьютер подключен через стабилизатор напряжения;
–
включить принтер, если он нужен;
–
включить монитор компьютера, если он не подключен к системному блоку кабелем питания;
–
включить компьютер (переключателем на корпусе компьютера либо клавишей с клавиатуры).
После этого на экране компьютера появятся сообщения о ходе работы программ проверки и начальной загрузки компьютера.
8.2. Выключение компьютера.
Для выключения компьютера надо:
–
закончить работающие программы;
–
выбрать функцию завершения работы и выключения компьютера, после чего ОС самостоятельно выключит компьютер, имеющий системный блок формата ATX;
–
выключить компьютер (переключателем на корпусе АТ системного блока);
–
выключить принтер;
–
выключить монитор компьютера (если питание монитора не от системного блока);
–
выключить стабилизатор, если компьютер подключен через стабилизатор напряжения.
108
9. ЛИЦЕНЗИИ
9.1. Стандартная Общественная Лицензия Ограниченного Применения
(GNU LGPL) в переводе на русский язык
О переводе на русский язык стандартной общественной лицензии ограниченного применения.
Автор перевода Елена Тяпкина [tiapkina@hotmail.com] 09-Aug-2001
This is an unofficial translation of the GNU Lesser General Public License (LGPL) into Russian. It was
not published by the Free Software Foundation, and does not legally state the distribution terms for software
that uses the LGPL--only the original English text of the LGPL does that. However, we hope that this translation will help Russian speakers understand the LGPL better.
Настоящий перевод Стандартной Общественной Лицензии Ограниченного Применения GNU на
русский язык не является официальным. Он не публикуется Free Software Foundation и не устанавливает имеющих юридическую силу условий для распространения программного обеспечения, которое
распространяется на условиях Стандартной Общественной Лицензии Ограниченного Применения
GNU. Условия, имеющие юридическую силу, закреплены исключительно в аутентичном тексте Стандартной Общественной Лицензии Ограниченного Применения GNU на английском языке. Я надеюсь,
что настоящий перевод поможет русскоязычным пользователям лучше понять содержание Стандартной Общественной Лицензии Ограниченного Применения GNU.
Текст LGPL на английском языке вы можете прочитать ниже.
Настоящая Стандартная Общественная Лицензия Ограниченного Примерения GNU заменяет Стандартную Общественную Лицензию GNU для Библиотек. Если вы хотите узнать, почему данная замена была необходима, вы можете прочитать статью Why you shouldn't use the Library GPL for your next
library (или статью на русском языке "Почему не следует использовать Library GPL для очередной
библиотеки").
GNU LESSER GENERAL PUBLIC LICENSE (перевод)
Версия 2.1, февраль 1999г.
Copyright
(C)
1991,
1999
Free
Software
Foundation,
Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Каждый вправе копировать и распространять экземпляры настоящей Лицензии без внесения изменений в ее текст.
[Настоящая версия является первой опубликованной версией Стандартной Общественной Лицензии Ограниченного Применения GNU и применяется вместо Стандартной Общественной Лицензии
GNU для Библиотек, версия 2. В силу этого настоящей версии присвоен номер 2.1.]
Преамбула
Большинство лицензий на программное обеспечение лишает вас права распространять и вносить
изменения в это программное обеспечение. Стандартные Общественные Лицензии GNU, напротив,
разработаны с целью гарантировать вам право совместно использовать и вносить изменения в свободное программное обеспечение, т.е. обеспечить его свободное использование всех пользователей. Настоящая Стандартная Общественная Лицензия Ограниченного Применения применяется к специальному программному обеспечению (обычно библиотекам), права на которое принадлежат Free Software
Foundation или другим авторам, решившим использовать настоящую Лицензию. Вы также можете использовать настоящую Лицензию, однако мы рекомендуем вам в каждом конкретном случае проанализировать, какую из двух лицензий: настоящую Лицензию или обычную Стандартную Обществен-
109
ную Лицензию применить к программному обеспечению с учетом изложенных ниже пояснений.
Говоря о свободном программном обеспечении, мы имеем в виду свободу, а не безвозмездность.
Стандартные Общественные Лицензии GNU разработаны с целью обеспечить вам право распространять экземпляры свободного программного обеспечения (и при желании получать за это вознаграждение), обеспечить получение вами исходного текста программного обеспечения или возможность его
получить при желании, обеспечить возможность вносить изменения в программное обеспечение и использовать его части в новом свободном программном обеспечении, а также информировать вас о
предоставленных вам вышеперечисленных правах.
Чтобы защитить ваши права, мы вводим ряд ограничений с тем, чтобы те, кто распространяет библиотеки (дистрибьюторы, агенты по продаже и др.), не имели возможности лишить вас этих прав или
обратиться к вам с предложением отказаться от этих прав. Данные ограничения налагают на вас определенные обязанности в случае, если вы распространяете экземпляры библиотеки или модифицируете
библиотеку.
Например, если вы распространяете экземпляры библиотеки за плату или бесплатно, вы обязаны
передать новым обладателям в полном объеме все права, которые мы передали вам. Вы обязаны обеспечить получение новыми обладателями библиотеки ее исходного текста или возможность его получить. Если вы связываете с библиотекой другое программное обеспечение, вы обязаны предоставить
новым обладателям библиотеки все файлы данного программного обеспечения в виде объектного
кода, чтобы новые обладатели библиотеки имели возможность после внесения изменений в библиотеку и ее перекомпиляции связать ее заново с объектными файлами. Вы также обязаны ознакомить их с
условиями настоящей Лицензии.
Для защиты ваших прав мы: (1) оставляем за собой авторские права на библиотеку и (2) предлагаем вам использовать настоящую Лицензию, в соответствии с условиями которой вы вправе воспроизводить, распространять и/или модифицировать библиотеку.
Чтобы защитить права тех, кто распространяет библиотеки, мы уведомляем, что на данную свободную библиотеку не предоставляется никаких гарантий. Те, кто приобрел библиотеку, с внесенными в
нее третьими лицами изменениями, должны знать, что они получают не первоначальную версию, в
силу чего автор первоначальной версии не несет ответственности за ошибки, допущенные третьими
лицами при внесении изменений.
Наконец, программное обеспечение перестает быть свободным в случае, если лицо стало обладателем исключительных прав на него. Недопустимо, чтобы какая-либо коммерческая организация имела возможность ограничить права прочих пользователей свободного программного обеспечения путем
заключения с правообладателем лицензионного договора, содержащего ограничительные условия. В
силу этого мы требуем, чтобы условия любого лицензионного договора на библиотеку или ее версию
соответствовали условиям о полной свободе использования библиотеки, закрепленным в настоящей
Лицензии.
К большей части программного обеспечения GNU, включая некоторые библиотеки, применяется
обычная Стандартная Общественная Лицензия GNU. Настоящая Стандартная Общественная Лицензия Ограниченного Применения GNU применяется к отдельным библиотекам и имеет существенные
отличия от Стандартной Общественной Лицензии. Настоящая Лицензия применяется к отдельным
библиотекам с целью обеспечения возможности связывания данных библиотек с "несвободным" программным обеспечением.
В соответствии с законодательством об авторском праве в результате связывания программы с библиотекой, независимо от того, осуществляется ли такое связывание статически или с использованием
разделяемой библиотеки, появляется совместное произведение, производное от первоначальной биб-
110
лиотеки. В соответствии с обычной Стандартной Общественной Лицензией такое связывание допускается только в том случае, если указанное совместное произведение будет свободным программным
обеспечением. Условия Стандартной Общественной Лицензии Ограниченного Применения, которые
регулируют связывание библиотеки с другими программами, являются более гибкими.
Мы назвали настоящую Стандартную Общественную Лицензию Лицензией Ограниченного Применения, потому что она предоставляет пользователю ограниченные возможности для защиты своей
свободы по сравнению с обычной Стандартной Общественной Лицензией, а также ограничивает преимущества авторов свободного программного обеспечения перед конкурирующим "несвободным"
программным обеспечением. В силу указанных причин к большей части библиотек применяется
обычная Стандартная Общественная Лицензия. Однако при определенных обстоятельствах применение Лицензии Ограниченного Применения является более выгодным.
Например, в некоторых случаях для того, чтобы библиотека получила применение в качестве неофициального стандарта, необходимо обеспечить возможность ее наиболее широкого использования.
Для этого пользователи должны иметь право использовать данную библиотеку с "несвободными" программами. Более частым случаем является пример, когда свободная библиотека выполняет те же
функции, что и широко используемые "несвободные" библиотеки. В этом случае нецелесообразно
ограничивать использование свободной библиотеки только вместе со свободным программным обеспечением, поэтому мы применяем Стандартную Общественную Лицензию Ограниченного Применения.
В других случаях предоставленная возможность использовать определенную библиотеку с "несвободным" программным обеспечением позволяет большему числу пользователей больше использовать
свободное программное обеспечение. Например, возможность использовать Библиотеку GNU на языке Си с "несвободными" программами позволяет многим пользователям использовать в полном
объеме операционную систему GNU, а также ее разновидность - операционную систему GNU/Linux.
Несмотря на то, что Стандартная Общественная Лицензия Ограниченного Применения предоставляет пользователям ограниченные возможности для защиты своей свободы она обеспечивает право
пользователя программы, связанной с Библиотекой, свободно запускать эту программу, используя модифицированную версию Библиотеки.
Далее изложены условия воспроизведения, распространения и модификации. Обратите внимание
на различие между понятиями "произведение, производное от библиотеки" и "произведение, использующее библиотеку". В первом случае произведение включает в себя часть кода, извлеченного из библиотеки, во втором случае произведение должно быть связано с библиотекой, чтобы быть запущенным.
Условия воспроизведения, распространения и модификации
0. Условия настоящей Лицензии применяются к библиотеке или любой иной программе, которая в
соответствии с уведомлением, помещенным в текст программы правообладателем, может распространяться в соответствии с условиями настоящей Стандартной Общественной Лицензии Ограниченного
Применения (именуемой в дальнейшем "Лицензия"). Каждый приобретатель экземпляра программы
именуется в дальнейшем "Лицензиат".
Под термином "Библиотека" в настоящей Лицензии понимается совокупность программных функций и/или данных, подготовленных таким способом, чтобы они удобно связывались с приложениями,
использующими некоторые из этих функций или данных для создания исполняемых файлов.
Под термином "Библиотека" далее понимается любая библиотека или произведение, которое распространяется в соответствии с условиями настоящей Лицензии. Под термином "произведение,
производное от Библиотеки" понимается Библиотека или любое иное производное произведение в со-
111
ответствии с законодательством об авторском праве, т.е. произведение, включающее в себя Библиотеку или ее часть, как с внесенными в ее текст изменениями, так и без них и/или переведенную на другой язык (Здесь и далее перевод в самом широком смысле этого термина включается в понятие "модификация").
Под "исходным текстом" произведения понимается такая форма произведения, которая наиболее
удобна для внесения изменений. Под полным исходным текстом библиотеки понимается исходный
текст всех составляющих библиотеку модулей, а также всех файлов, связанных с описанием интерфейса, и сценариев, предназначенных для управления компиляцией и установкой библиотеки.
Действие настоящей Лицензии не распространяется на осуществление других прав, кроме воспроизведения, распространения и модификации Библиотеки. Не устанавливается ограничений на
запуск программы, использующей Библиотеку. Условия Лицензии распространяются на выходные
данные из такой программы только в том случае, если их содержание составляет произведение, производное от Библиотеки (независимо от того, использовалась ли Библиотека в качестве инструмента для
создания этого произведения). Это зависит от того, какие функции выполняет Библиотека и программа, использующая Библиотеку.
1. Лицензиат вправе изготовлять и распространять экземпляры полного исходного текста Библиотеки в том виде, в каком он его получил, без внесения в него изменений на любом носителе, при соблюдении следующих условий: на каждом экземпляре помещен знак охраны авторского права и уведомление об отсутствии гарантий; оставлены без изменений все уведомления, относящиеся к настоящей
Лицензии и отсутствию гарантий; вместе с экземпляром Библиотеки распространяется экземпляр настоящей Лицензии.
Лицензиат вправе взимать плату за передачу экземпляра Библиотеки, а также вправе за плату оказывать услуги по гарантийной поддержке Библиотеки.
2. Лицензиат вправе модифицировать свой экземпляр или экземпляры Библиотеки полностью или
любую ее часть. Данные действия Лицензиата влекут за собой создание произведения, производного
от Библиотеки. Лицензиат вправе изготовлять и распространять экземпляры такого произведения,
производного от Библиотеки, или собственно изменений в соответствии с пунктом 1 настоящей Лицензии при соблюдении следующих условий:
a) производное произведение должно быть библиотекой;
b) файлы, измененные Лицензиатом, должны содержать соответствующие уведомления о том, что
они были изменены, а также дату внесения изменений;
c) Лицензиат обязан передавать права на использование данного произведения третьим лицам на
условиях настоящей Лицензии, при этом Лицензиат не вправе требовать уплаты каких-либо лицензионных платежей. Произведение лицензируется как одно целое;
d) если взаимодействие модифицированной Библиотеки и приложения осуществляется не засчет
передачи аргумента при вызове средств модифицированной Библиотеки, а засчет того, что средства в
модифицированной Библиотеке ссылаются на функцию или таблицу данных, которые предоставляются приложением, использующим указанные средства, в этом случае Лицензиат обязан добросовестно
приложить усилия к тому, чтобы обеспечить работу средств Библиотеки и выполнение ими той части
своей задачи, которая является значимой, если приложением не предоставлены указанные функция
или таблица данных.
(Например, функция библиотеки, вычисляющая квадратный корень, по своему назначению абсолютно независима от приложения. Таким образом, в соответствии с подпунктом "d" пункта 2 любая
функция, которую предоставляет приложение, или таблица, используемая данной функцией, должны
112
быть необязательными (факультативными): если приложение не предоставляет функцию или таблицу,
функция по вычислению квадратного корня в любом случае должна вычислять квадратный корень).
Вышеуказанные условия применяются к модифицированному произведению, производному от
Библиотеки, в целом. В случае если отдельные части данного произведения не являются производными от Библиотеки, являются результатом творческой деятельности и могут быть использованы как
самостоятельное произведение, Лицензиат вправе распространять отдельно такое произведение на
иных лицензионных условиях. В случае если Лицензиат распространяет вышеуказанные части в составе произведения, производного от Библиотеки, то условия настоящей Лицензии применяются к
произведению в целом, при этом права, приобретаемые сублицензиатами на основании Лицензии,
передаются им в отношении всего произведения, включая все его части, независимо от того, кто является их авторами.
Целью настоящего пункта не является заявление прав или оспаривание прав на произведение, созданное исключительно Лицензиатом. Целью настоящего пункта является обеспечение права контролировать распространение произведений, производных от Библиотеки, и составных произведений,
производных от Библиотеки.
Размещение произведения, которое не является производным от Библиотеки, на одном устройстве
для хранения информации или носителе вместе с Библиотекой или произведением, производным от
Библиотеки, не влечет за собой распространение действия условий настоящей Лицензии на такое
произведение.
3. Лицензиат вправе по своему выбору применить к определенному экземпляру Библиотеки условия обычной Стандартной Общественной Лицензии GNU вместо настоящей Лицензии. Для этого Лицензиат должен в соответствующих уведомлениях в этом экземпляре заменить ссылки на настоящую
Лицензию ссылками на версию 2 обычной Стандартной Общественной Лицензии GNU (либо по желанию Лицензиата на более позднюю опубликованную версию обычной Стандартной Общественной
Лицензии). Не следует вносить другие изменения в текст уведомлений.
Замена одной лицензии на другую в отношении определенного экземпляра Библиотеки является
окончательной и влечет за собой применение ко всем последующим копиям данного экземпляра Библиотеки и произведениям, производным от данного экземпляра Библиотеки, обычной Стандартной
Общественной Лицензии GNU. Использовать эту возможность целесообразно тогда, когда Лицензиат
намерен скопировать часть исходного текста Библиотеки в программу, которая не является библиотекой.
4. Лицензиат вправе воспроизводить и распространять экземпляры Библиотеки, ее части или
произведение, которое в соответствии с пунктом 2 настоящей Лицензии является производным от
Библиотеки, в виде объектного кода или в исполняемой форме в соответствии с условиями пунктов 1
и 2 настоящей Лицензии. К экземпляру должен прилагаться соответствующий полный исходный текст
в машиночитаемой форме, который должен распространяться в соответствии с условиями пунктов 1 и
2 настоящей Лицензии на носителе, обычно используемом для передачи программного обеспечения.
В случае если произведение в виде объектного кода распространяется путем предоставления возможности сделать копию произведения из определенного места, обеспечение равноценной возможности сделать копию исходного текста из этого же места удовлетворяет требованиям распространения
исходного текста, даже если третьи лица при этом не обязаны копировать исходный текст вместе с
объектным кодом произведения.
5. Под "произведением, использующим Библиотеку", понимается программа, которая не содержит
кода, производного от любой части Библиотеки, но предназначена для работы с Библиотекой будучи
скомпилированной с ней или связанной с ней. Отдельно такое произведение не является произведени-
113
ем, производным от Библиотеки, и на него не распространяется действие настоящей Лицензии.
Однако в результате связывания "произведения, использующего Библиотеку" с Библиотекой создается не "произведение, использующее Библиотеку", а исполняемый файл, который является производным от Библиотеки в силу того, что он содержит части Библиотеки. Такой исполняемый файл подпадает под действие настоящей Лицензии. Порядок распространения таких исполняемых файлов определяется в пункте 6 настоящей Лицензии.
В том случае когда "произведение, использующее Библиотеку" использует данные заголовочного
файла (файла описания функций переменных), являющегося частью Библиотеки, объектный код данного произведения может быть произведением, производным от Библиотеки, даже если исходный код
не является произведением, производным от Библиотеки. Данное положение особенно важно в том
случае, когда произведение может быть связано без Библиотеки или когда произведение само является
библиотекой, однако случаи, когда данное положение является верным, законодательством четко не
определены.
Если объектный файл, указанный в предыдущем абзаце, использует только числовые параметры,
данные структурного расположения и средства доступа, а также небольшие макросы и небольшие линейные функции (не превышающие десяти строк), в этом случае использование объектного файла неограничено, независимо от того, является ли данный объектный файл в соответствии с законодательством произведением, производным от Библиотеки, или нет. (К исполняемым файлам, которые содержат данный объектный код, а также части кода Библиотеки, применяются условия пункта 6 настоящей
Лицензии).
Во всех других случаях, если произведение является производным от Библиотеки, Лицензиат вправе распространять объектный код данного произведения в соответствии с пунктом 6 настоящей Лицензии. Любой исполняемый файл, содержащий данное произведение, также подпадает под действие
пункта 6 настоящей Лицензии, независимо от того, связан ли исполняемый файл компоновщиком
напрямую с Библиотекой.
6. Как исключение из положений предыдущих пунктов настоящей Лицензии Лицензиат вправе
объединить или связать Произведение, использующее Библиотеку, с Библиотекой, в результате чего
будет создано произведение, содержащее части Библиотеки. Лицензиат вправе распространять такое
произведение на любых условиях, при этом за пользователем должно сохраняться право вносить изменения в произведение в целях его адаптации для собственных нужд, а также право осуществлять
восстановление структурной схемы алгоритма работы по исходным текстам произведения для отладки внесенных изменений.
На каждом экземпляре такого произведения Лицензиат обязан поместить уведомление, содержащее
указание на то, что данное произведение использует Библиотеку, распространение, модификация и использование которой осуществляется в соответствии с настоящей Лицензией. Лицензиат также обязан
к каждому экземпляру произведения приложить копию настоящей Лицензии. Если в процессе исполнения произведения на дисплей выводится знак охраны авторского права, Лицензиат обязан включить
в него знах охраны авторского права в отношении Библиотеки, а также ссылки, следуя которым пользователь может ознакомиться с экземпляром настоящей Лицензии. Лицензиат обязан также выполнить
одно из следующих условий:
а) к экземпляру должен прилагаться соответствующий полный исходный текст Библиотеки в машиночитаемой форме, включая все изменения, которые использовались в произведении (данные изменения должны распространяться в соответствии с пунктами 1 и 2 настоящей Лицензии). В том случае,
если произведение является исполняемым файлом, связанным с Библиотекой, к экземпляру также
должен прилагаться в машиночитаемой форме полный исходный и/или объектный код Произведения,
которое использует Библиотеку, для того, чтобы пользователь мог модифицировать Библиотеку и за-
114
тем связать ее заново с исполняемым файлом, в результате чего будет создан модифицированный исполняемый файл, содержащий модифицированную Библиотеку (Предполагается, что пользователь,
который вносит изменения в содержание файла описаний, не всегда сможет перекомпилировать приложение так, чтобы использовать модифицированные описания);
b) для связывания с Библиотекой должен использоваться подходящий механизм разделяемых библиотек. Механизм разделяемых библиотек считается подходящим, если он: 1) в течение времени исполнения использует копию библиотеки, которая уже находится в компьютерной системе пользователя, а не копирует функции библиотеки в исполняемый файл и 2) надлежащим образом работает с модифицированной версией библиотеки, установленной пользователем, при условии совместимости интерфейсов модифицированной версии и той версии библиотеки, которая использовалась для создания
произведения, содержащего части Библиотеки;
c) к экземпляру должно прилагаться действительное в течение трех лет с момента его совершения
предложение в письменной форме передать этому же пользователю за плату, не превышающую стоимость осуществления собственно передачи, материалы, указанные в подпункте "а" пункта 6;
d) если распространение экземпляра произведения осуществляется путем предоставления доступа
для копирования его из определенного места, такое распространение должно сопровождаться предложением равноценного доступа для копирования из этого же места материалов, указанных в подпункте
"а" пункта 6;
e) удостовериться, что пользователь уже получил экземпляр материалов, указанных в подпункте "а"
пункта 6, или что Лицензиатом уже был выслан пользователю экземпляр указанных материалов.
Если Произведение, использующее Библиотеку, представлено в исполняемой форме, оно должно
включать в себя все данные и программные утилиты, необходимые для воспроизведения из него исполняемого файла. Однако, в качестве особого исключения распространяемые материалы могут не
включать того, что обычно распространяется (в виде исходного текста или в бинарной форме) с
основными компонентами (компилятор, ядро и т.д.) операционной системы, в которой работает исполняемый файл, за исключением случаев, когда исполняемый файл сопровождается таким компонентом.
В некоторых случаях требование, изложенное в предыдущем абзаце, может противоречить ограничительным условиям лицензий на "неcвободные" библиотеки, которые обычно не сопровождают операционную систему. При наличии таких противоречий Лицензиат не вправе использовать одновременно указанные "несвободные" библиотеки и Библиотеку в распространяемом Лицензиатом исполняемом файле.
7. Лицензиат вправе разместить в единой библиотеке средства библиотеки, которые являются
Произведением, производным от Библиотеки, вместе со средствами других библиотек, не подпадающих под действие настоящей Лицензии. Лицензиат вправе распространять такую единую библиотеку
при условии, что отдельное распространение Произведения, производного от Библиотеки, и средств
других библиотек разрешено в соответствии с лицензиями других библиотек, при этом Лицензиат
обязан выполнить следующие условия:
а) приложить к единой библиотеке экземпляр этого же Произведения, производного от Библиотеки,
несвязанный со средствами других библиотек. Такой экземпляр должен распространяться в соответствии с условиями предыдущих пунктов настоящей Лицензии;
b) приложить к единой библиотеке хорошо заметное уведомление, которое указывает, что часть
единой библиотеки является Произведением, производным от Библиотеки, и объясняет, где можно
найти прилагаемый экземпляр этого же произведения, несвязанного с со средствами других библиотек.
115
8. Лицензиат вправе воспроизводить, модифицировать, распространять, связывать с программным
обеспечением Библиотеку или передавать права на использование Библиотеки только на условиях настоящей Лицензии. Любое воспроизведение, модификация, распространение, связывание с программным обеспечением или передача прав на иных условиях являются недействительными и автоматически ведут к расторжению настоящей Лицензии и прекращению всех прав Лицензиата, предоставленных ему настоящей Лицензией. При этом права третьих лиц, которым Лицензиат в соответствии с настоящей Лицензией передал экземпляры Библиотеки или права на нее, сохраняются в силе при условии полного соблюдения ими настоящей Лицензии.
9. Лицензиат не обязан присоединяться к настоящей Лицензии, поскольку он ее не подписал. Однако только настоящая Лицензия предоставляет право распространять или модифицировать Библиотеку
или произведения, производные от Библиотеки. Подобные действия нарушают действующее законодательство, если они не осуществляются в соответствии с настоящей Лицензией. Если Лицензиат
внес изменения или осуществил распространение экземпляров Библиотеки или произведения, производного от Библиотеки, Лицензиат тем самым подтвердил свое присоединение к настоящей Лицензии
в целом, включая условия, определяющие порядок воспроизведения, распространения или модификации Библиотеки или произведения, производного от Библиотеки.
10. При распространении экземпляров Библиотеки или произведения, производного от Библиотеки,
первоначальный лицензиар автоматически передает приобретателю такого экземпляра право воспроизводить, распространять, связывать с программным обеспечением и модифицировать Библиотеку
в соответствии с условиями настоящей Лицензии. Лицензиат не вправе ограничивать каким-либо
способом осуществление приобретателями полученных ими прав. Лицензиат не несет ответственности за несоблюдение условий настоящей Лицензии третьими лицами.
11. Лицензиат не освобождается от исполнения обязательств в соответствии с настоящей Лицензией в случае, если в результате решения суда или заявления о нарушении исключительных прав или в
связи с наступлением иных обстоятельств, не связанных непосредственно с нарушением исключительных прав, на Лицензиата на основании решения суда, договора или ином основании возложены
обязательства, которые противоречат условиям настоящей Лицензии. В этом случае Лицензиат не
вправе распространять экземпляры Библиотеки, если он не может одновременно исполнить условия
настоящей Лицензии и возложенные на него указанным выше способом обязательства. Например,
если по условиям лицензионного соглашения сублицензиатам не может быть предоставлено права
бесплатного распространения экземпляров Библиотеки, которые они приобрели напрямую или через
третьих лиц у Лицензиата, то в этом случае Лицензиат обязан отказаться от распространения экземпляров Библиотеки.
Если любое положение настоящего пункта при наступлении конкретных обстоятельств будет признано недействительным или неприменимым, настоящий пункт применяется за исключением такого
положения. Настоящий пункт применяется в целом при прекращении вышеуказанных обстоятельств
или их отсутствии.
Целью данного пункта не является принуждение Лицензиата к нарушению патента или заявления
на иные права собственности или к оспариванию действительности такого заявления. Единственной
целью данного пункта является защита неприкосновенности системы распространения свободного
программного обеспечения, которая обеспечивается за счет общественного лицензирования. Многие
люди внесли свой щедрый вклад в создание большого количества программного обеспечения, которое
распространяется через данную систему в надежде на ее длительное и последовательное применение.
Лицензиат не вправе вынуждать автора распространять программное обеспечение через данную систему. Право выбора системы распространения программного обеспечения принадлежит исключительно его автору.
116
Настоящий пункт имеет целью четко определить те цели, которые преследуют все остальные положения настоящей Лицензии.
12. В том случае если распространение и/или использование Библиотеки в отдельных государствах
ограничено соглашениями в области патентных или авторских прав, первоначальный правообладатель, распространяющий Библиотеку на условиях настоящей Лицензии, вправе ограничить территорию распространения Библиотеки, указав только те государства, на территории которых допускается
распространение Библиотеки без ограничений, обусловленных такими соглашениями. В этом случае
такое указание в отношении территорий определенных государств признается одним из условий настоящей Лицензии.
13. Free Software Foundation может публиковать исправленные и/или новые версии настоящей
Стандартной Общественной Лицензии Ограниченного Применения. Такие версии могут быть дополнены различными нормами, регулирующими правоотношения, которые возникли после опубликования предыдущих версий, однако в них будут сохранены основные принципы, закрепленные в настоящей версии.
Каждой версии присваивается свой собственный номер. Если указано, что Библиотека распространяется в соответствии с определенной версией, т.е. указан ее номер, или любой более поздней версией
настоящей Лицензии, Лицензиат вправе присоединиться к любой из этих версий Лицензии, опубликованных Free Software Foundation. Если Библиотека не содержит такого указания на номер версии Лицензии, Лицензиат вправе присоединиться к любой из версий Лицензии, опубликованных когда-либо
Free Software Foundation.
14. В случае если Лицензиат намерен включить часть Библиотеки в другое свободное программное
обеспечение, которое распространяется на условиях, несовместимых с условиями настоящей Лицензии, ему следует испросить письменное разрешение на это у автора программного обеспечения. Разрешение в отношении программного обеспечения, права на которое принадлежат Free Software
Foundation, следует спрашивать у Free Software Foundation. В некоторых случаях Free Software
Foundation делает исключения. При принятии решения Free Software Foundation будет руководствоваться двумя целями: сохранение статуса свободного для любого произведения, производного от свободного программного обеспечения Free Software Foundation, и обеспечение наиболее широкого совместного использования программного обеспечения.
ОТСУТСТВИЕ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ
15. ПОСКОЛЬКУ НАСТОЯЩАЯ БИБЛИОТЕКА РАСПРОСТРАНЯЕТСЯ БЕСПЛАТНО, ГАРАНТИИ НА НЕЕ НЕ ПРЕДОСТАВЛЯЮТСЯ В ТОЙ СТЕПЕНИ, В КАКОЙ ЭТО ДОПУСКАЕТСЯ ПРИМЕНИМЫМ ПРАВОМ. НАСТОЯЩАЯ БИБЛИОТЕКА ПОСТАВЛЯЕТСЯ НА УСЛОВИЯХ "КАК
ЕСТЬ". ЕСЛИ ИНОЕ НЕ УКАЗАНО В ПИСЬМЕННОЙ ФОРМЕ, АВТОР И/ИЛИ ИНОЙ ПРАВООБЛАДАТЕЛЬ НЕ ПРИНИМАЕТ НА СЕБЯ НИКАКИХ ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ, КАК
ЯВНО ВЫРАЖЕННЫХ, ТАК И ПОДРАЗУМЕВАЕМЫХ, В ОТНОШЕНИИ БИБЛИОТЕКИ, В ТОМ
ЧИСЛЕ ПОДРАЗУМЕВАЕМУЮ ГАРАНТИЮ ТОВАРНОГО СОСТОЯНИЯ ПРИ ПРОДАЖЕ И ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ ЦЕЛЯХ, А ТАКЖЕ ЛЮБЫЕ ИНЫЕ ГАРАНТИИ. ВСЕ РИСКИ, СВЯЗАННЫЕ С КАЧЕСТВОМ И ПРОИЗВОДИТЕЛЬНОСТЬЮ БИБЛИОТЕКИ, НЕСЕТ ЛИЦЕНЗИАТ. В СЛУЧАЕ ЕСЛИ В БИБЛИОТЕКЕ БУДУТ ОБНАРУЖЕНЫ НЕДОСТАТКИ, ВСЕ РАСХОДЫ, СВЯЗАННЫЕ С ТЕХНИЧЕСКИМ ОБСЛУЖИВАНИЕМ, РЕМОНТОМ ИЛИ
ИСПРАВЛЕНИЕМ БИБЛИОТЕКИ, НЕСЕТ ЛИЦЕНЗИАТ.
16. ЕСЛИ ИНОЕ НЕ ПРЕДУСМОТРЕНО ПРИМЕНЯЕМЫМ ПРАВОМ ИЛИ НЕ СОГЛАСОВАНО
СТОРОНАМИ В ДОГОВОРЕ В ПИСЬМЕННОЙ ФОРМЕ, АВТОР И/ИЛИ ИНОЙ ПРАВООБЛАДАТЕЛЬ, КОТОРЫЙ МОДИФИЦИРУЕТ И/ИЛИ РАСПРОСТРАНЯЕТ БИБЛИОТЕКУ НА УСЛОВИЯХ
НАСТОЯЩЕЙ ЛИЦЕНЗИИ, НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ПЕРЕД ЛИЦЕНЗИАТОМ ЗА УБЫТ-
117
КИ, ВКЛЮЧАЯ ОБЩИЕ, РЕАЛЬНЫЕ, ПРЕДВИДИМЫЕ И КОСВЕННЫЕ УБЫТКИ (В ТОМ ЧИСЛЕ УТРАТУ ИЛИ ИСКАЖЕНИЕ ИНФОРМАЦИИ, УБЫТКИ, ПОНЕСЕННЫЕ ЛИЦЕНЗИАТОМ
ИЛИ ТРЕТЬИМИ ЛИЦАМИ, НЕВОЗМОЖНОСТЬ РАБОТЫ БИБЛИОТЕКИ С ЛЮБЫМ ДРУГИМ
ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ И ИНЫЕ УБЫТКИ). АВТОР И/ИЛИ ИНОЙ ПРАВООБЛАДАТЕЛЬ В СООТВЕТСТВИИ С НАСТОЯЩИМ ПУНКТОМ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ДАЖЕ
В ТОМ СЛУЧАЕ, ОНИ БЫЛИ ПРЕДУПРЕЖДЕНЫ О ВОЗМОЖНОСТИ ВОЗНИКНОВЕНИЯ ТАКИХ УБЫТКОВ.
Порядок применения условий Стандартной Общественной Лицензии Ограниченного Применения
к созданной вами Библиотеке
Если вы создали новую библиотеку и хотите, чтобы она принесла наибольшую пользу обществу,
мы рекомендуем вам сделать ее свободным программным обеспечением, когда каждый сможет распространять ее и вносить в нее изменения. Эта цель будет достигнута, если распространение библиотеки будет осуществляться в соответствии с условиями настоящей Лицензии или обычной Стандартной Общественной Лицензии.
Для применения к библиотеке условий настоящей Лицензии в библиотеку должно быть включено
приведенное ниже уведомление. Наиболее правильным будет поместить его в начале исходного текста
каждого файла для максимально ясного указания на то, что гарантии на данную библиотеку не предоставляются. Каждый файл в любом случае должен содержать знак охраны авторского права и пояснение, где можно ознакомиться с полным текстом уведомления.
[одна строка с наименованием Библиотеки и кратким описанием ее назначения]
© имя (наименование) автора или иного правообладателя, год первого опубликования библиотеки.
Данная библиотека является свободным программным обеспечением. Вы вправе распространять ее
и/или модифицировать в соответствии с условиями версии 2.1 либо по вашему выбору с условиями
более поздней версии Стандартной Общественной Лицензии Ограниченного Применения GNU, опубликованной Free Software Foundation.
Мы распространяем эту библиотеку в надежде на то, что она будет вам полезной, однако НЕ
ПРЕДОСТАВЛЯЕМ НА НЕЕ НИКАКИХ ГАРАНТИЙ, в том числе ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ ПРИ ПРОДАЖЕ и ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ ЦЕЛЯХ.
Для получения более подробной информации ознакомьтесь со Стандартной Общественной Лицензией
Ограниченного Применений GNU.
Вместе с данной библиотекой вы должны были получить экземпляр Стандартной Общественной
Лицензии Ограниченного Применения GNU. Если вы его не получили, сообщите об этом в Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Также укажите, как можно связаться с вами по электронной или обычной почте.
Если вы создали библиотеку в порядке выполнения служебных обязанностей или служебного задания работодателя, вам следует получить от него в случае необходимости письменный отказ от исключительных прав на использование данной библиотеки. Нижеприведенный текст вы можете использовать в качестве образца, заменив соответствующие имена и наименования:
ЗАО "АБВ" настоящим отказывается от всех исключительных прав на использование программы
для ЭВМ "Gnomovision", представляющей собой библиотеку, автором которой является Иванов Алексей Петрович, и передает все исключительные права на использование указанной программы ее автору, Иванову Алексею Петровичу.
118
Подпись
руководителя
организации,
[Фамилия, Имя, Отчество], Генеральный директор
печать,
1
января
2001г.
9.2. Стандартная Общественная Лицензия Ограниченного Применения
(GNU LGPL) на английском языке (оригинал)
This GNU Lesser General Public License counts as the successor of the GNU Library General Public License. For an explanation of why this change was necessary, read the Why you shouldn't use the Lesser GPL
for your next library article.
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some specially designated software packages-typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it
too, but we suggest you first think carefully about whether this license or the ordinary General Public License
is the better strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for
this service if you wish); that you receive source code or can get it if you want it; that you can change the
software and use pieces of it in new free programs; and that you are informed that you can do these things.
To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to
ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If
you link other code with the library, you must provide complete object files to the recipients, so that they can
relink them with the library after making changes to the library and recompiling it. And you must show them
these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.
119
To protect each distributor, we want to make it very clear that there is no warranty for the free library.
Also, if the library is modified by someone else and passed on, the recipients should know that what they
have is not the original version, so that the original author's reputation will not be affected by problems that
might be introduced by others.
Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure
that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a
patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the ordinary GNU General Public License.
This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit
linking those libraries into non-free programs.
When a program is linked with a library, whether statically or using a shared library, the combination of
the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public
License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser
General Public License permits more lax criteria for linking other code with the library.
We call this license the "Lesser" General Public License because it does Less to protect the user's freedom
than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General
Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.
For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use
the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In
this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General
Public License.
In other cases, permission to use a particular library in non-free programs enables a greater number of
people to use a large body of free software. For example, permission to use the GNU C Library in non-free
programs enables many more people to use the whole GNU operating system, as well as its variant, the
GNU/Linux operating system.
Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that
the user of a program that is linked with the Library has the freedom and the wherewithal to run that program
using a modified version of the Library.
The precise terms and conditions for copying, distribution and modification follow. Pay close attention to
the difference between a "work based on the library" and a "work that uses the library". The former contains
code derived from the library, whereas the latter must be combined with the library in order to run.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other program which contains a notice placed
by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser
General Public License (also called "this License"). Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data prepared so as to be conveniently linked
with application programs (which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work which has been distributed under these
120
terms. A "work based on the Library" means either the Library or any derivative work under copyright law:
that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or
translated straightforwardly into another language. (Hereinafter, translation is included without limitation in
the term "modification".)
"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program
that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in
any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence
of any warranty; and distribute a copy of this License along with the Library.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on
the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided
that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices stating that you changed the files and the
date of any change.
c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of
this License.
d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you
must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.
(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must
still compute square roots.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then
this License, and its terms, do not apply to those sections when you distribute them as separate works. But
when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by
you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based
on the Library.
121
In addition, mere aggregation of another work not based on the Library with the Library (or with a work
based on the Library) on a volume of a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a
given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer
to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than
version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General
Public License applies to all subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code
or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1
and 2 above on a medium customarily used for software interchange.
If distribution of object code is made by offering access to copy from a designated place, then offering
equivalent access to copy the source code from the same place satisfies the requirement to distribute the
source code, even though third parties are not compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation,
is not a derivative work of the Library, and therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative
of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file that is part of the Library, the object
code for the work may be a derivative work of the Library even though the source code is not. Whether this is
true is especially significant if the work can be linked without the Library, or if the work is itself a library.
The threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data structure layouts and accessors, and small
macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted,
regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of
the Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under
the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they
are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or link a "work that uses the Library"
with the Library to produce a work containing portions of the Library, and distribute that work under terms of
your choice, provided that the terms permit modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well
122
as a reference directing the user to the copy of this License. Also, you must do one of these things:
a) Accompany the work with the complete corresponding machine-readable source code for the Library
including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above);
and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses
the Library", as object code and/or source code, so that the user can modify the Library and then relink to
produce a modified executable containing the modified Library. (It is understood that the user who changes
the contents of definitions files in the Library will not necessarily be able to recompile the application to use
the modified definitions.)
b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that
(1) uses at run time a copy of the library already present on the user's computer system, rather than copying
library functions into the executable, and (2) will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is interface-compatible with the version that the work
was made with.
c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent
access to copy the above specified materials from the same place.
e) Verify that the user has already received a copy of these materials or that you have already sent this user
a copy.
For an executable, the required form of the "work that uses the Library" must include any data and utility
programs needed for reproducing the executable from it. However, as a special exception, the materials to be
distributed need not include anything that is normally distributed (in either source or binary form) with the
major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless
that component itself accompanies the executable.
It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do
not normally accompany the operating system. Such a contradiction means you cannot use both them and the
Library together in an executable that you distribute.
7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with
any other library facilities. This must be distributed under the terms of the Sections above.
b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided
under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is
void, and will automatically terminate your rights under this License. However, parties who have received
copies, or rights, from you under this License will not have their licenses terminated so long as such parties
remain in full compliance.
9. You are not required to accept this License, since you have not signed it. However, nothing else grants
you permission to modify or distribute the Library or its derivative works. These actions are prohibited by
law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based
123
on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for
copying, distributing or modifying the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically
receives a license from the original licensor to copy, distribute, link with or modify the Library subject to
these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the
rights granted herein. You are not responsible for enforcing compliance by third parties with this License.
11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason
(not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any
other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a
patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or
to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free
software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software
through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this
License.
12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by
copyrighted interfaces, the original copyright holder who places the Library under this License may add an
explicit geographical distribution limitation excluding those countries, so that distribution is permitted only
in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in
the body of this License.
13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public
License from time to time. Such new versions will be similar in spirit to the present version, but may differ in
detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free Software Foundation. If the Library does
not specify a license version number, you may choose any version ever published by the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions
are incompatible with these, write to the author to ask for permission. For software which is copyrighted by
the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for
this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free
software and of promoting the sharing and reuse of software generally.
NO WARRANTY
124
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN
IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).
To apply these terms, attach the following notices to the library. It is safest to attach them to the start of
each source file to most effectively convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
one line to give the library's name and an idea of what it does.
Copyright (C) year name of author
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser
General Public License as published by the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also
add information on how to contact you by electronic and paper mail. You should also get your employer (if
you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs)
written by James Random Hacker.
125
signature of Ty Coon, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
9.3. Лицензия на свободную документацию (GNU FDL) в переводе на
русский язык
О переводе на русский язык лицензии gnu на свободную документацию
автор перевода Елена Тяпкина [ tiapkina@hotmail.com ], 09-Aug-2001
This is an unofficial translation of the GNU Free Documentation License (GFDL) into Russian. It was not
published by the Free Software Foundation, and does not legally state the distribution terms for works that
uses the GFDL - only the original English text of the GFDL does that. However, we hope that this translation
will help Russian speakers understand the GFDL better.
Настоящий перевод Лицензии GNU на Свободную Документацию (GFDL) на русский язык не является официальным. Он не публикуется Free Software Foundation и не устанавливает имеющих юридическую силу условий для распространения произведений, которые распространяются на условиях
GFDL. Условия, имеющие юридическую силу, закреплены исключительно в аутентичном тексте
GFDL на английском языке. Я надеюсь, что настоящий перевод поможет русскоязычным пользователям лучше понять содержание GFDL.
Текст GFDL на английском языке вы можете прочитать ниже.
GNU Free Documentation License (перевод)
Версия 1.1, март 2000г.
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Каждый вправе копировать и распространять экземпляры настоящей Лицензии без внесения изменений в ее текст.
0. Преамбула
Цель настоящей Лицензии - сделать свободными справочник, руководство пользователя или иные
документы в письменной форме, т.е. обеспечить каждому право свободно копировать и распространять как с изменениями, так и без изменений, за вознаграждение или бесплатно указанные документы. Настоящая Лицензия также позволяет авторам или издателям документа сохранить свою репутацию, не принимая на себя ответственность за изменения, сделанные третьими лицами.
Настоящая Лицензия относится к категории "copyleft" [1]. Это означает, что все произведения,
производные от документа, должны быть свободными в соответствии с концепцией "copyleft". Настоящая Лицензия дополняет General Public License GNU, которая является лицензией "copyleft", разработанной для свободного программного обеспечения.
Настоящая Лицензия разработана для применения ее к документации на свободное программное
обеспечение, поскольку свободное программное обеспечение должно сопровождаться свободной документацией. Пользователь должен обладать теми же правами в отношении руководства пользователя,
126
какими он обладает в отношении свободного программного обеспечения. При этом действие настоящей Лицензии не распространяется только на руководство пользователя. Настоящая Лицензия может
применяться к любому текстовому произведению независимо от его темы или от того, издано ли данное произведение в виде печатной книги или нет. Настоящую Лицензию рекомендуется применять
для произведений справочного или обучающего характера.
1. Сфера действия, термины и их определения
Условия настоящей Лицензии применяются к любому руководству пользователя или иному произведению, которое в соответствии с уведомлением, помещенным правообладателем, может распространяться на условиях настоящей Лицензии. Далее под термином "Документ" понимается любое подобное руководство пользователя или произведение. Лицо, которому передаются права по настоящей Лицензии, в дальнейшем именуется "Лицензиат".
"Модифицированная версия Документа" - любое произведение, содержащее Документ или его
часть, скопированные как с изменениями, так и без них и/или переведенные на другой язык.
"Второстепенный раздел" - имеющее название приложение или предисловие к Документу, в котором отражено исключительно отношение издателей или авторов Документа к его содержанию в целом, либо к вопросам, связанным с содержанием Документа. Второстепенный раздел не может включать в себя то, что относится непосредственно к содержанию Документа. (Например, если часть Документа является учебником по математике, во Второстепенном разделе не может содержаться что-либо
имеющее отношение непосредственно к математике). Во второстепенных разделах могут быть затронуты вопросы истории того, что составляет содержание или что связано с содержанием Документа, а
также правовые, коммерческие, философские, этические или политические взгляды относительно содержания Документа.
"Неизменяемые разделы" - определенные Второстепенные разделы, названия которых перечислены
как Неизменяемые разделы в уведомлении Документа, определяющем лицензионные условия.
"Текст, помещаемый на обложке" - определенные краткие строки текста, которые перечислены в
уведомлении Документа, определяющем лицензионные условия, как текст, помещаемый на первой и
последней страницах обложки.
"Прозрачный" экземпляр Документа - экземпляр Документа в машиночитаемой форме, представленный в формате с общедоступной спецификацией при условии, что документ может просматриваться и редактироваться непосредственно с помощью общедоступных текстовых редакторов или общедоступных программ для векторной или растровой графики (в случае, если в документе содержатся
изображения векторной или растровой графики). Указанный формат должен обеспечить ввод текста
Документа в программы форматирования текста или автоматический перевод Документа в различные
форматы, подходящие для ввода текста Документа в программы форматирования текста. Экземпляр
Документа, представленный в ином формате, разметка которого затрудняет или препятствует внесению в Документ последующих изменений пользователями, не является Прозрачным. Такой экземпляр
документа называется "Непрозрачным".
Форматы, в которых может быть представлен Прозрачный экземпляр Документа, включают простой формат ASCII без разметки, формат ввода Texinfo, формат ввода LaTeX, SGML или XML с использованием общедоступного DTD, а также соответствующий стандартам простой формат HTML,
предназначений для внесения модификаций человеком. "Непрозрачные" форматы включают в себя
PostScript, PDF, форматы, которые можно прочитать и редактировать только с помощью текстовых редакторов, права на использование которых свободно не передаются, форматы SGML или XML, для которых DTD или инструменты для обработки не являются общедоступными, а также генерируемый
машиной HTML, который вырабатывается некоторыми текстовыми редакторами исключительно в це-
127
лях вывода.
"Титульный лист" - для печатной книги собственно титульный лист, а также следующие за ним
страницы, которые должны содержать сведения, помещаемые на титульном листе в соответствии с
условиями настоящей Лицензии. Для произведений, формат которых не предполагает наличие титульного листа, под Титульным листом понимается текст, который помещен перед началом основного текста произведения, после его названия, напечатанного наиболее заметным шрифтом.
2. Копирование без внесения изменений
Лицензиат вправе воспроизводить и распространять экземпляры Документа на любом носителе за
вознаграждение или безвозмездно при условии, что каждый экземпляр содержит текст настоящей Лицензии, знаки охраны авторских прав, а также уведомление, что экземпляр распространяется в соответствии с настоящей Лицензией, при этом Лицензиат не вправе предусматривать иные лицензионные
условия дополнительно к тем, которые закреплены в настоящей Лицензии. Лицензиат не вправе использовать технические средства для воспрепятствования или контроля за чтением или последующим
изготовлением копий с экземпляров, распространяемых Лицензиатом. Лицензиат вправе получать вознаграждение за изготовление и распространение экземпляров Документа. При распространении
большого количества экземпляров Документа Лицензиат обязан соблюдать условия пункта 3 настоящей Лицензии.
Лицензиат вправе сдавать экземпляры Документа в прокат на условиях, определенных в предыдущем абзаце, или осуществлять публичный показ экземпляров Документа.
3. Тиражирование
Если Лицензиат издает печатные экземпляры Документа в количестве свыше 100, и в соответствии
с уведомлением Документа, определяющем лицензионные условия, Документ должен содержать
Текст, помещаемый на обложке, Лицензиат обязан издавать экземпляры Документа в обложке с напечатанными на ней ясно и разборчиво соответствующими Текстами, помещаемыми на обложке: Тексты, помещаемые на первой странице обложки - на первой странице, Тексты, помещаемые на последней странице - соответственно на последней. Также на первой и последней странице обложки экземпляра Документа должно быть ясно и разборчиво указано, что Лицензиат является издателем данных
экземпляров. На первой странице обложки должно быть указано полное название Документа без пропусков и сокращений, все слова в названии должны быть набраны шрифтом одинакового размера. Лицензиат вправе поместить прочие сведения на обложке экземпляра. Если при издании экземпляров
Документа изменяются только сведения, помещенные на обложке экземпляра, за исключением названия Документа, и при этом соблюдаются требования настоящего пункта, такие действия приравниваются к копированию без внесения изменений.
Если объем текста, который должен быть помещен на обложке экземпляра, не позволяет напечатать
его разборчиво, Лицензиат обязан поместить разумную часть текста непосредственно на обложке, а
остальной текст на страницах Документа, следующих сразу за обложкой.
Если Лицензиат издает или распространяет Непрозрачные экземпляры Документа в количестве
свыше 100, Лицензиат обязан к каждому такому экземпляру приложить Прозрачный экземпляр этого
Документа в машиночитаемой форме или указать на каждом Непрозрачном экземпляре Документа адрес в компьютерной сети общего пользования, где содержится Прозрачный экземпляр без каких-либо
добавленных материалов, полный текст которого каждый пользователь компьютерной сети общего
пользования вправе бесплатно, не называя своего имени и не регистрируясь, записать в память
компьютера с использованием общедоступных сетевых протоколов. Во втором случае Лицензиат обязан предпринять разумные шаги с тем, чтобы доступ к Прозрачному экземпляру Документа по указанному адресу сохранялся по крайней мере в течение одного года после последнего распространения
128
Непрозрачного экземпляра Документа данного тиража, независимо от того, было ли распространение
осуществлено Лицензиатом непосредственно или через агентов или розничных продавцов.
Прежде чем начать распространение большого количества экземпляров Документа Лицензиату заблаговременно следует связаться с авторами Документа, чтобы они имели возможность предоставить
Лицензиату обновленную версию Документа. Лицензиат не обязан выполнять данное условие.
4. Внесение изменений
Лицензиат вправе воспроизводить и распространять Модифицированные версии Документа в соответствии с условиями пунктов 2 и 3 настоящей Лицензии, при условии что Модифицированная версия
Документа публикуется в соответствии с настоящей Лицензией. В частности, Лицензиат обязан передать каждому обладателю экземпляра Модифицированной версии Документа права на распространение и внесение изменений в данную Модифицированную версию Документа, аналогично правам на
распространение и внесение изменений, которые передаются обладателю экземпляра Документа. При
распространении Модифицированных версий Документа Лицензиат обязан:
A. поместить на Титульном листе и на обложке при ее наличии название Модифицированной версии, отличающееся от названия Документа и названий предыдущих версий. Названия предыдущих
версий при их наличии должны быть указаны в Документе в разделе "История". Лицензиат вправе использовать название предыдущей версии Документа с согласия издателя предыдущей версии;
B. указать на Титульном листе в качестве авторов тех лиц, которые являются авторами изменений в
Модифицированной версии, а также не менее пяти основных авторов Документа либо всех авторов,
если их не более пяти;
C. указать на Титульном листе наименование издателя Модифицированной версии, с указанием,
что он является издателем данной Версии;
D. сохранить все знаки охраны авторского права Документа;
E. поместить соответствующий знак охраны авторского права на внесенные Лицензиатом изменения рядом с прочими знаками охраны авторского права;
F. поместить непосредственно после знаков охраны авторского права уведомление, в соответствии
с которым каждому предоставляется право использовать Модифицированную Версию в соответствии
с условиями настоящей Лицензии. Текст уведомления приводится в Приложении к настоящей Лицензии;
G. сохранить в уведомлении, указанном в подпункте G, полный список Неизменяемых разделов и
Текста, помещаемого на обложке, перечисленных в уведомлении Документа;
H. включить в Модифицированную версию текст настоящий Лицензии без каких-либо изменений;
I. сохранить в Модифицированной версии раздел "История", включая его название, и дополнить его
пунктом, в котором указать так же, как данные сведения указаны на Титульном листе, название, год
публикации, наименования новых авторов и издателя Модифицированной версии. Если в Документе
отсутствует раздел "История", Лицензиат обязан создать в Модифицированной версии такой раздел,
указать в нем название, год публикации, авторов и издателя Документа так же, как данные сведения
указаны на Титульном листе Документа и дополнить этот раздел пунктом, содержание которого описано в предыдущем предложении;
J. сохранить в Модифицированной версии адрес в компьютерной сети, указанный в Документе, по
которому каждый вправе осуществить доступ к Прозрачному экземпляру Документа, а также адрес в
компьютерной сети, указанный в Документе, по которому можно получить доступ к предыдущим версиям Документа. Адреса, по которым находятся предыдущие версии Документа, можно поместить в
129
раздел "История". Лицензиат вправе не указывать адрес произведения в компьютерной сети, которое
было опубликовано не менее чем за четыре года до публикации самого Документа. Лицензиат вправе
не указывать адрес определенной версии в компьютерной сети с разрешения первоначального издателя данной версии;
K. сохранить без изменений названия разделов "Благодарности" или "Посвящения", а также содержание и стиль каждой благодарности и/или посвящения;
L. сохранить без изменений названия и содержание всех Неизменяемых разделов Документа. Нумерация данных разделов или иной способ их перечисления не включается в состав названий разделов;
M. удалить существующий раздел Документа под названием "Одобрения". Такой раздел не может
быть включен в Модифицированную версию;
N. не присваивать существующим разделам Модифицированной версии название "Одобрения" или
такие названия, которые повторяют название любого из Неизменяемых разделов.
Если в Модифицированную версию включены новые предисловия или приложения, которые могут
быть определены как Второстепенные разделы и которые не содержат текст, скопированный из Документа, Лицензиат вправе по своему выбору определить все или некоторые из этих разделов как Неизменяемые. Для этого следует добавить их названия в список Неизменяемых разделов в уведомлении в
Модифицированной версии, определяющем лицензионные условия. Названия данных разделов должны отличаться от названий всех остальных разделов.
Лицензиат вправе дополнить Модифицированную версию новым разделом "Одобрения" при условии, что в него включены исключительно одобрения Модифицированной версии Лицензиата третьими сторонами, например оценки экспертов или указания, что текст Модифицированной версии был
одобрен организацией в качестве официального определения стандарта.
Лицензиат вправе дополнительно поместить на обложке Модифицированной версии Текст, помещаемый на обложке, не превышающий пяти слов для первой страницы обложке и 25 слов для последней страницы обложки. К Тексту, помещаемому на обложке, каждым лицом непосредственно или от
имени этого лица на основании соглашения с ним может быть добавлено только по одной строке на
первой и на последней страницах обложки. Если на обложке Документа Лицензиатом от своего имени
или от имени лица, в интересах которого действует Лицензиат, уже был помещен Текст, помещаемый
на обложке, Лицензиат не вправе добавить другой Текст. В этом случае Лицензиат вправе заменить
старый текст на новый с разрешения предыдущего издателя, который включил старый текст в издание.
По настоящей Лицензии автор(ы) и издатель(и) Документа не передают право использовать их имена и/или наименования в целях рекламы или заявления или предположения, что любая из Модифицированных Версий получила их одобрение.
5. Объединение документов
Лицензиат с соблюдением условий п.4 настоящей Лицензии вправе объединить Документ с другими документами, которые опубликованы на условиях настоящей Лицензии, при этом Лицензиат должен включить в произведение, возникшее в результате объединения, все Неизменяемые разделы из
всех первоначальных документов без внесения в них изменений, а также указать их в качестве Неизменяемых разделов данного произведения в списке Неизменяемых разделов, который содержится в
уведомлении, определяющем лицензионные условия для произведения.
Произведение, возникшее в результате объединения, должно содержать только один экземпляр настоящей Лицензии. Повторяющиеся в произведении одинаковые Неизменяемые разделы могут быть
130
заменены единственной копией таких разделов. Если произведение содержит несколько Неизменяемых Разделов с одним и тем же названием, но с разным содержанием, Лицензиат обязан сделать название каждого такого раздела уникальным путем добавления после названия в скобках уникального
номера данного раздела или имени первоначального автора или издателя данного раздела, если автор
или издатель известны Лицензиату. Лицензиат обязан соответственно изменить названия Неизменяемых разделов в списке Неизменяемых разделов в уведомлении, определяющем лицензионные условия
для произведения, возникшего в результате объединения.
В произведении, возникшем в результате объединения, Лицензиат обязан объединить все разделы
"История" из различных первоначальных Документов в один общий раздел "История". Подобным образом Лицензиат обязан объединить все разделы с названием "Благодарности" и "Посвящения". Лицензиат обязан исключить из произведения все разделы под названием "Одобрения".
6. Сборники документов
Лицензиат вправе издать сборник, состоящий из Документа и других документов, публикуемых в
соответствии с условиями настоящей Лицензии. В этом случае Лицензиат вправе заменить все экземпляры настоящей Лицензии в документах одним экземпляром, включенным в сборник, при условии,
что остальной текст каждого документа включен в сборник с соблюдением условий по осуществлению копирования без внесения изменений.
Лицензиат вправе выделить какой-либо документ из сборника и издать его отдельно в соответствии
с настоящей Лицензией, при условии, что Лицензиатом в данный документ включен текст настоящей
Лицензии и им соблюдены условия Лицензии по осуществлению копирования без внесения изменений в отношении данного документа.
7. Подборка документа и самостоятельных произведений
Размещение Документа или произведений, производных от Документа, с другими самостоятельными документами или произведениями на одном устройстве для хранения информации или носителе
не влечет за собой возникновения Модифицированной версии Документа, при условии, что Лицензиат не заявляет авторских прав на осуществленный им подбор или расположение документов при их
размещении. Такое размещение называется "Подборкой", при этом условия настоящей Лицензии не
применяются к самостоятельным произведениям, размещенным вышеуказанным способом вместе с
Документом, при условии, что они не являются произведениями, производными от Документа.
Если условия пункта 3 настоящей Лицензии относительно Текста, помещаемого на обложке, могут
быть применены к экземплярам Документа в Подборке, то в этом случае Текст с обложки Документа
может быть помещен на обложке только собственно Документа внутри подборки при условии, что
Документ занимает менее четвертой части объема всей Подборки. Если Документ занимает более четвертой части объема Подборки, в этом случае Текст с обложки Документа должен быть помещен на
обложке всей Подборки.
8. Перевод
Перевод является одним из способов модификации Документа, в силу чего Лицензиат вправе распространять экземпляры перевода Документа в соответствии с пунктом 4 настоящей Лицензии. Замена Неизменяемых разделов их переводами может быть осуществлена только с разрешения соответствующих правообладателей, однако Лицензиат вправе в дополнение к оригинальным версиям таких
Неизменяемых разделов включить в текст экземпляра перевод всех или части таких Разделов. Лицензиат вправе включить в текст экземпляра перевод настоящей Лицензии при условии, что в него включен также и оригинальный текст настоящей Лицензии на английском языке. В случае разногласий в
толковании текста перевода и текста на английском языке предпочтение отдается тексту Лицензии на
английском языке.
131
9. Расторжение лицензии
Лицензиат вправе воспроизводить, модифицировать, распространять или передавать права на использование Документа только на условиях настоящей Лицензии. Любое воспроизведение, модификация, распространение или передача прав на иных условиях являются недействительными и автоматически ведут к расторжению настоящей Лицензии и прекращению всех прав Лицензиата, предоставленных ему настоящей Лицензией. При этом права третьих лиц, которым Лицензиат в соответствии с
настоящей Лицензией передал экземпляры Документа или права на него, сохраняются в силе при
условии полного соблюдения ими настоящей Лицензии.
10. Пересмотр условий лицензии
Free Software Foundation может публиковать новые исправленные версии GFDL. Такие версии могут быть дополнены различными нормами, регулирующими правоотношения, которые возникли после опубликования предыдущих версий, однако в них будут сохранены основные принципы, закрепленные в настоящей версии (смотри http://www/gnu.org/copyleft/).
Каждой версии присваивается свой собственный номер. Если указано, что Документ распространяется в соответствии с определенной версией, т.е. указан ее номер, или любой более поздней версией
настоящей Лицензии, Лицензиат вправе присоединиться к любой из этих версий Лицензии, опубликованных Free Software Foundation (при условии, что ни одна из версий не является проектом
Лицензии). Если Документ не содержит такого указания на номер версии Лицензии Лицензиат вправе
присоединиться к любой из версий Лицензии, опубликованных когда-либо Free Software Foundation
(при условии, что ни одна из версий не является Проектом Лицензии).
Примечание переводчика - Термин "copyleft" используется авторами проекта GNU Free Software
Foundation в качестве одного из основных понятий в концепции свободного программного обеспечения (free software). Данный термин образуется за счет замены в английском языке термина "copyright"
(авторское право) на "copyleft". Как указывают авторы проекта, "copyleft" - это наиболее общий
способ сделать программное обеспечение свободным и обеспечить соблюдение условий, в соответствии с которыми все измененные и распространяемые версии программного обеспечение также
сохраняли бы статус свободного программного обеспечения. Более подробно о концепции "copyleft"
вы можете прочитать здесь http://www.gnu.org/copyleft/copyleft.html
9.4. Лицензия на свободную документацию (GNU FDL) на английском
языке (оригинал)
GNU Free Documentation License
Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
0. Preamble
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense
of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it,
either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a
132
way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves
be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs
free documentation: a free program should come with manuals providing the same freedoms that the software
does. But this License is not limited to software manuals; it can be used for any textual work, regardless of
subject matter or whether it is published as a printed book. We recommend this License principally for works
whose purpose is instruction or reference.
1. Applicability and definitions
This License applies to any manual or other work that contains a notice placed by the copyright holder
saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either
copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject
(or to related matters) and contains nothing that could fall directly within that overall subject. (For example,
if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of
legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover
Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose
specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic
translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers
is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input
format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats
that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or
processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to
hold, legibly, the material this License requires to appear in the title page. For works in formats which do not
have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
2. Verbatim copying
133
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License.
You may not use technical measures to obstruct or control the reading or further copying of the copies you
make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large
enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
3. Copying in quantity
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must
also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed
(as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque
copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at
no charge using public-standard network protocols. If you use the latter option, you must take reasonably
prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy
will remain thus accessible at the stated location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing
any large number of copies, to give them a chance to provide you with an updated version of the Document.
4. Modifications
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3
above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to
whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
* A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and
from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
* B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the
modifications in the Modified Version, together with at least five of the principal authors of the Document
(all of its principal authors, if it has less than five).
* C. State on the Title page the name of the publisher of the Modified Version, as the publisher.
* D. Preserve all the copyright notices of the Document.
* E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
* F. Include, immediately after the copyright notices, a license notice giving the public permission to
134
use the Modified Version under the terms of this License, in the form shown in the Addendum below.
* G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in
the Document's license notice.
* H. Include an unaltered copy of this License.
* I. Preserve the section entitled "History", and its title, and add to it an item stating at least the title,
year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
* J. Preserve the network location, if any, given in the Document for public access to a Transparent
copy of the Document, and likewise the network locations given in the Document for previous versions it
was based on. These may be placed in the "History" section. You may omit a network location for a work that
was published at least four years before the Document itself, or if the original publisher of the version it
refers to gives permission.
* K. In any section entitled "Acknowledgements" or "Dedications", preserve the section's title, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
* L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
* M. Delete any section entitled "Endorsements". Such a section may not be included in the Modified
Version.
* N. Do not retitle any existing section as "Endorsements" or to conflict in title with any Invariant Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of
these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your
Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a
Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of FrontCover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity.
If the Document already includes a cover text for the same cover, previously added by you or by arrangement
made by the same entity you are acting on behalf of, you may not add another; but you may replace the old
one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names
for publicity for or to assert or imply endorsement of any Modified Version.
5. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
135
The combined work need only contain one copy of this License, and multiple identical Invariant Sections
may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different
contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the
original author or publisher of that section if known, or else a unique number. Make the same adjustment to
the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents,
forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and
any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
6. Collections of documents
You may make a collection consisting of the Document and other documents released under this License,
and replace the individual copies of this License in the various documents with a single copy that is included
in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
7. Aggregation with independent works
A compilation of the Document or its derivatives with other separate and independent documents or
works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation
is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with
the Document, on account of their being thus compiled, if they are not themselves derivative works of the
Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers
that surround only the Document within the aggregate. Otherwise they must appear on covers around the
whole aggregate.
8. Translation
Translation is considered a kind of modification, so you may distribute translations of the Document under
the terms of section 4. Replacing Invariant Sections with translations requires special permission from their
copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also
include the original English version of this License. In case of a disagreement between the translation and the
original English version of this License, the original English version will prevail.
9. Termination
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under
this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights,
from you under this License will not have their licenses terminated so long as such parties remain in full
compliance.
10. Future revisions of this license
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in
136
detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following
the terms and conditions either of that specified version or of any later version that has been published (not as
a draft) by the Free Software Foundation. If the Document does not specify a version number of this License,
you may choose any version ever published (not as a draft) by the Free Software Foundation.
Download