
- •Unix: учебный курс Алексей Федосеев
- •Несколько слов об этом курсе
- •Методические рекомендации Введение для лектора
- •Порядок изучения материалов
- •Часть I. Лекции Глава 1. Введение в операционную систему unix
- •Основные концепции операционных систем Обзор компьютерных систем
- •Назначение операционной системы
- •Операционная система как виртуальная машина
- •Операционная система как менеджер ресурсов
- •Архитектура операционной системы
- •Монолитная операционная система
- •Микроядерная операционная система
- •Место unix в истории вычислительных систем
- •Что было до операционных систем
- •Операционные системы для мэйнфреймов
- •Появление операционной системы unix
- •Развитие операционных систем в глобальных сетях
- •Операционные системы для персональных компьютеров
- •Операционные системы для встраиваемых систем
- •Такой разный unix
- •Классификация операционных систем по назначению
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Архитектура unix. Файлы и устройства Особенности архитектуры unix
- •Два кита unix: файлы и процессы
- •Беглый взгляд на архитектуру unix
- •Ядро unix
- •Файловая система unix
- •Особенности файловой системы
- •Виртуальная файловая система
- •Дерево каталогов
- •Устройства и драйверы
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Архитектура unix. Процессы
- •Управление памятью
- •Управление процессами
- •Контекст процесса
- •Планирование процессов
- •Создание новых процессов
- •Процессы и потоки
- •Межпроцессное взаимодействие
- •Разделяемая память
- •Переменные окружения
- •Сигналы
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Глава 2. Использование unix
- •Терминал и командная строка
- •Терминал
- •Управляющие символы
- •Одновременный доступ к системе
- •Командная строка
- •Командная оболочка
- •Приглашение
- •Команды
- •Параметры
- •Шаблоны
- •Перенаправление ввода и вывода
- •Программное окружение
- •Стандартные переменные окружения
- •Служебные символы
- •Процесс выполнения команды
- •Возвращаемое значение
- •Эффективное использование командной строки
- •Редактирование командной строки
- •История команд
- •Автодополнение
- •Средства объединения команд
- •Справочная подсистема
- •Страницы руководства
- •Поиск по руководствам
- •Программа info
- •Документация, поставляемая с программой
- •Интегрированные системы документации
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Введение в безопасность unix
- •Основы информационной безопасности
- •Политика безопасности
- •Управление доступом
- •Аутентификация и авторизация
- •Концепции безопасности unix
- •Пользователи и группы
- •Права доступа
- •Разделяемые каталоги
- •Подмена идентификатора процесса
- •Ограничения базовой модели доступа и её расширения
- •Суперпользователь
- •Аутентификация пользователей
- •Управление пользователями и правами доступа База данных пользователей системы
- •Изменение базы данных пользователей
- •Изменение прав доступа
- •Ограничения сеанса пользователя
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Сеть в unix
- •Введение в сети
- •Семиуровневая модель osi
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Протоколы Internet: tcp/ip
- •Сетевой интерфейс в unix
- •Конфигурация ip-сетей Сетевой адрес
- •Маршрутизация
- •Служебный протокол icmp
- •Информация о соединениях
- •Настройка сети при загрузке системы
- •Службы Internet Служба доменных имён
- •Удалённый терминал
- •Прокси-серверы
- •Межсетевой экран
- •Концепции iptables
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Глава 3. Базовое администрирование unix
- •Управление службами
- •Загрузка операционной системы Этапы загрузки системы
- •Процесс init
- •Конфигурационный файл init
- •Различия в загрузке unix-подобных систем
- •Системы, наследующие System V
- •Системы, наследующие bsd
- •Системы со смешанной схемой загрузки
- •Системные службы
- •Запуск и остановка служб
- •Автоматическая загрузка служб
- •Какие бывают службы
- •Служба планирования заданий
- •Конфигурация планировщика заданий
- •Запуск программ
- •Сетевые службы
- •Мониторинг и журналирование
- •Служба системного журнала
- •Основные системные журналы
- •Ротация системных журналов
- •Мониторинг пользователей
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Управление программным обеспечением
- •Управление программным обеспечением: роли и задачи Основные роли в создании и использовании по
- •Задачи системы управления программным обеспечением
- •Формы распространения программного обеспечения в двоичной форме или в исходных текстах?
- •Сборочные процедуры как средство управления по
- •Дистрибутивы
- •Дистрибутивы, основанные на сборке программ из исходных текстов
- •Дистрибутивы, основанные на двоичных пакетах
- •Управление пакетами
- •Задачи менеджера пакетов
- •Менеджер пакетов rpm
- •Работа с репозитариями пакетов: apt
- •Источники программ (репозитории)
- •Дополнительные материалы
- •Вопросы
- •Презентация
- •Часть II. Практические занятия
- •Глава 4. Практические занятия по командам unix
- •Методические указания по основным командам unix
- •Команды по работе с файловой системой
- •Команды по работе с текстом
- •Команды, использующие регулярные выражения
- •Практическое занятие. Работа с файлами в unix
- •Сценарий: Знакомство с каталогами unix
- •Сценарий: Изучение типов файлов в unix
- •Сценарий: Поиск системных журналов
- •Сценарий: Архивирование и деархивирование файлов и каталогов
- •Сценарий: Cоздание новых текстовых файлов
- •Сценарий: Разрезание и склеивание файлов
- •Сценарий: Быстрый анализ текстов
- •Сценарий: Поиск строк по регулярным выражениям
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Работа с файлами в unix
- •Методические указания по командам управления системой в unix Команды получения сведений о системе
- •Команды по работе с процессами
- •Практическое занятие. Сбор сведений о системе и управление процессами
- •Сценарий: Сбор сведений о системе
- •Сценарий: Управление процессами с помощью сигналов
- •Сценарий: Выполнение задач в фоновом режиме
- •Сценарий: Запуск демонов
- •Сценарий: Изменение приоритетов выполняющихся программ
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Сбор сведений о системе и управление процессами
- •Глава 5. Практическое занятие по безопасности unix
- •Методические указания по командам управления безопасностью в unix Команды по управлению правами
- •Команды по управлению пользователями
- •Практическое занятие. Управление доступом. Управление пользователями Сценарий: Вход в систему и завершение сеанса
- •Сценарий: Изучение базовых прав доступа
- •Сценарий: Переход в режим суперпользователя
- •Сценарий: Изучение базы данных пользователей
- •Сценарий: Добавление и удаление пользователей
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Управление доступом. Управление пользователями
- •Глава 6. Практические занятия по сетям в unix
- •Методические указания по командам управления сетью в unix Команды по конфигурированию сети
- •Команды по диагностике сети
- •Сценарий: Настройка таблицы маршрутизации
- •Сценарий: Изучение службы доменных имён
- •Сценарий: Простая диагностика работы сети
- •Сценарий: Работа по удалённому терминалу
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Управление сетью
- •Практическое занятие. Расширенная диагностика и настройка сети
- •Сценарий: Сканирование локальной сети
- •Сценарий: Сканирование удалённых хостов
- •Сценарий: Настройка сетевого экрана
- •Задания для самоподготовки
- •Сценарии практического занятия на тему: Расширенная диагностика и настройка сети
- •Глава 7. Обзор прикладных программ
- •Программы сетевого обмена sendmail: программа отправления почты
- •Параметры команды
- •Wget: консольный загрузчик файлов
- •Параметры команды
- •Настройка
- •Глава 8. Практические занятия по базовому администрированию unix
- •Методические указания по командам управления службами и журналами Текстовые редакторы
- •Рабочий экран
- •Управляющие клавиши
- •Встроенные команды
- •Настройка
- •Рабочий экран
- •Управляющие клавиши
- •Встроенные команды
- •Настройка
- •Режимы работы
- •Команды по управлению службами
- •Команды по мониторингу пользователей
- •Практическое занятие. Управление службами
- •Сценарий: Загрузка системы
- •Команды по работе с репозитарием пакетов
- •Установка или обновление пакета
- •Удаление установленного пакета
- •Обновление всех установленных пакетов
- •Поиск пакетов
- •Приложение a. Список вопросов
Практическое занятие. Управление службами
Цель занятия: знакомство с этапами загрузки системы и уровнями выполнения, изучение команд управления службами, изучение отдельных служб (планирования заданий и системного журнала), команд мониторинга пользователей.
Изучаемые команды: chkconfig, crontab, faillog, init, last, lastlog, reboot, service, shutdown
Сценарий: Загрузка системы
Сценарий рассматривает процесс загрузки операционной системы.
Начальные условия: Выключенный компьютер.
Во время загрузки компьютер последовательно исполняет несколько программ. Первая из них – программа BIOS, производящая проверку оборудования. BIOS передаёт исполнение программе загрузчика, которая запускает Linux-систему.
Загрузчик передаёт управление ядру системы. Ядро выводит отладочную информацию в процессе загрузки:
Linux version 2.6.9-42.0.2.EL (bhcompile@ls20-bc1-13.build.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)) #1 Thu Aug 17 17:36:53 EDT 2006
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000d2000 - 00000000000d4000 (reserved)
BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000003ff60000 (usable)
BIOS-e820: 000000003ff60000 - 000000003ff77000 (ACPI data)
BIOS-e820: 000000003ff77000 - 000000003ff79000 (ACPI NVS)
BIOS-e820: 000000003ff80000 - 0000000040000000 (reserved)
BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved)
127MB HIGHMEM available.
896MB LOWMEM available.
Using x86 segment limits to approximate NX protection
zapping low mappings.
On node 0 totalpages: 261984
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 32608 pages, LIFO batch:7
DMI present.
ACPI: RSDP (v002 IBM ) @ 0x000f6e00
...
Когда загрузка ядра завершена, монтируется корневая файловая система, и управление передаётся процессу init, специфичного для конкретной UNIX-системы:
...
init производит загрузку системы на определённый уровень выполнения, запуская соответствующие службы:
...
Когда все системные службы загружены, запускается программа управления терминалом, и пользователь может войти в систему:
...
Сценарий: Системные службы: запуск и остановка
В сценарии будут рассмотрены основные системые службы, команды их запуска и остановки.
Начальные условия: Командная строка, права суперпользователя.
Сценарий: Уровни выполнения системы
В сценарии рассматривается программа init, уровни выполнения системы, переключение между уровнями выполнения и их конфигурирование.
Начальные условия: Командная строка, права суперпользователя.
Сценарий: Остановка и перезагрузка системы
Сценарий посвящен командам остановки и перезагрузки системы.
Начальные условия: Командная строка, права суперпользователя.
Сценарий: Использование службы планировщика заданий
В сценарии рассматривается служба планировщика cron, её конфигурирование. Цель сценария – научиться запускать программ по расписанию.
Начальные условия: Командная строка после входа в систему.
Сценарий: Системные журналы
Сценарий рассматривает основные системные журналы и процесс ротации журналов.
Начальные условия: Командная строка, права суперпользователя.
Сценарий: Мониторинг пользователей
Сценарий рассматривает основные системные журналы, связанные с аутентификацией и соответствующие им команды мониторинга пользователей системы.
Начальные условия: Командная строка, права суперпользователя.
Сценарии практического занятия на тему: Управление службами
«Сценарий: Загрузка системы»
«Сценарий: Системные службы: запуск и остановка»
«Сценарий: Уровни выполнения системы»
«Сценарий: Остановка и перезагрузка системы»
«Сценарий: Использование службы планировщика заданий»
«Сценарий: Системные журналы»
«Сценарий: Мониторинг пользователей»
Методические указания по командам управления программным обеспечением
Программы сборки и установки программ
make
rpm
Рассмотрим основные операции, выполняемые с помощью программы rpm. Любые действия по изменению состава пакетов в системе требуют прав суперпользователя.
Установка пакета:
rpm -i имя_пакета
Менеджер пакетов проверяет зависимости и конфликты для данного пакета, а затем разворачивает его в операционной системе.
Обновление пакета:
rpm -U имя_пакета
Менеджер пакетов проверяет возможность обновления установленного в системе пакета данным пакетом, затем разворачивает новые файлы в системе. При этом используется специальных механизм для сохранения старых версий изменённых файлов (например, конфигурационных).
Удаление пакета:
rpm -e имя_пакета
Менеджер пакетов удаляет пакет, предварительно проверяя наличие обратных зависимостей от этого пакета.
Получение информации о пакетах. Информация обо всех установленных пакетах сохраняется и индексируется в специальной базе данных. С помощью следующих команд можно узнать как информацию об установленных пакетах, так и информацию, извлекаемую из локальных .rpm-файлов.
Список установленных пакетов:
rpm -qa
Менеджер пакетов выводит список всех пакетов, установленных в системе. Вот пример вывода такой команды:
Пример 8.1. Получение списка установленных пакетов
user@desktop ~ $ rpm -qa
rpm -qa
apt-0.5.15lorg2-alt3
nvidia_glx_1.0.7676-1.0.7676-alt17
gnupg-1.4.2.2-alt1
libpcap0.8-0.9.4-alt1
printer-drivers-base-2.1-alt5
...
Поиск пакета по файлу:
rpm -qf имя_файла
Полезной функцией является поиск пакета, который содержит заданный файл.
Пример 8.2. Получение пакета по имени файла
user@desktop ~ $ rpm -qf /var/log/messages
syslog-common-1.4.1-alt23
Информация о пакете:
rpm -qi имя_пакета
С помощью этой команды можно узнать сведения о пакете: название и версию программы, организацию и человека, собравших этот пакет, время создания пакета, лицензию и т. п.. В пример Пример 8.3, «Получение информации о пакете» показана информация о пакете «bash», установленном в системе.
Пример 8.3. Получение информации о пакете
user@desktop ~ $ rpm -qi bash
Name : bash Relocations: (not relocateable)
Version : 3.1.17 Vendor: ALT Linux Team
Release : alt1 Build Date: Птн 14 Апр 2006 00:38:44
Install date: Птн 12 Май 2006 03:24:15 Build Host: ldv.hasher.altlinux.org
Group : Интерпретаторы команд Source RPM: bash-3.1.17-alt1.src.rpm
Size : 1019953 License: GPL
Packager : Dmitry V. Levin <ldv@altlinux.org>
URL : http://www.gnu.org/software/bash/
Summary : The GNU Bourne Again SHell (Bash)
Description :
Bash is an sh-compatible command language interpreter that executes
commands read from the standard input or from a file. Bash also
incorporates useful features from the Korn and C shells (ksh and csh).
Most sh scripts can be run by bash without modifiation.
Bash is ultimately intended to be a conformant implementation of the
IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2).
Список файлов в пакете:
rpm -ql имя_пакета
С помощью этой команды можно увидеть полный список файлов в пакете.
Пример 8.4. Получение информации о пакете
user@desktop ~ $ rpm -ql gzip
/bin/gunzip
/bin/gzip
/bin/zcat
/usr/bin/gunzip
/usr/bin/gzip
/usr/bin/zcat
/usr/share/doc/gzip-1.3.5
/usr/share/doc/gzip-1.3.5/AUTHORS
/usr/share/doc/gzip-1.3.5/ChangeLog.bz2
/usr/share/doc/gzip-1.3.5/NEWS
/usr/share/doc/gzip-1.3.5/README
/usr/share/doc/gzip-1.3.5/THANKS
/usr/share/doc/gzip-1.3.5/TODO
/usr/share/info/gzip.info.bz2
/usr/share/man/man1/gunzip.1.gz
/usr/share/man/man1/gzip.1.gz
/usr/share/man/man1/zcat.1.gz
Файлы, изменённые после установки: Во время обновления пакетов часто бывает нужно узнать изменения, произошедшие с момента установки пакета. Это можно сделать, выполнив следующую команду:
rpm -V имя_пакета
...