- •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. Список вопросов
Сценарии практического занятия на тему: Управление доступом. Управление пользователями
«Сценарий: Вход в систему и завершение сеанса»
exit
«Сценарий: Изучение базовых прав доступа»
ls -l
ls -l /bin/bash
ls -ld /tmp
rm /bin/bash
chmod a=r test.txt
chmod go-rwx test.txt
«Сценарий: Переход в режим суперпользователя»
ls -l /bin/passwd
passwd
ps aux | grep passwd
su -
exit
«Сценарий: Изучение базы данных пользователей»
cat /etc/passwd
man 5 passwd
cat /etc/group
«Сценарий: Добавление и удаление пользователей»
useradd testuser -d /home/users/testuser -s /bin/sh
cat /etc/passwd | grep testuser
passwd testuser
usermod -s /bin/false testuser
userdel testuser
Глава 6. Практические занятия по сетям в unix
Содержание
Методические указания по командам управления сетью в UNIX
Команды по конфигурированию сети
Команды по диагностике сети
Команды удалённого терминала
Команды по управлению сетевым экраном
Резюме
Дополнительные материалы
Практическое занятие. Управление сетью
Сценарий: Настройка сетевого интерфейса
Сценарий: Настройка таблицы маршрутизации
Сценарий: Изучение службы доменных имён
Сценарий: Простая диагностика работы сети
Сценарий: Работа по удалённому терминалу
Задания для самоподготовки
Сценарии практического занятия на тему: Управление сетью
Практическое занятие. Расширенная диагностика и настройка сети
Сценарий: Сканирование локальной сети
Сценарий: Сканирование удалённых хостов
Сценарий: Настройка сетевого экрана
Задания для самоподготовки
Сценарии практического занятия на тему: Расширенная диагностика и настройка сети
Методические указания по командам управления сетью в unix Команды по конфигурированию сети
ifconfig
Команда используется для настройки сетевых интерфейсов
Команда ifconfig имеет следующий синтаксис:
ifconfig [-L] [-m] interface [create] [address_family] [address [dest_address]] [parameters]
ifconfig interface destroy
ifconfig -a [-L] [-d] [-m] [-u] [address_family]
ifconfig -l [-d] [-u] [address_family]
ifconfig [-L] [-d] [-m] [-u] [-C]
Команда ifconfig используется для настройки сетевых интерфейсов. Команда должна использоваться при загрузке системы для настройки адресов каждого сетевого интерфейса, а также может использоваться после загрузки для изменения параметров сетевых интерфейсов. Если команда введена без аргументов, ifconfig выдает информацию о состоянии активных интерфейсов. Если в качестве аргумента указан какой-либо интерфейс, то выдается информация только о состоянии этого интерфейса; если указан один аргумент -a, выдается информация о состоянии всех интерфесов, даже отключенных. Пример:
user@desktop$ ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:febb:5f1%rl0 prefixlen 64 scopeid 0x3
inet 192.168.19.86 netmask 0xffffff00 broadcast 192.168.19.255
ether 00:50:22:bb:05:f1
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
Иначе команда конфигурирует указанный интерфейс. Изменить настройки какого-либо интерфейса может только суперпользователь.
Опции:
-
интерфейс
– имя интерфейса (например, rl0 в BSD или eth0 в Linux).
up
– вызывает активизацию интерфейса. Задается неявно при присвоении адреса интерфейсу.
down
– вызывает остановку работы драйвера для интерфейса.
[-]arp
– включает или отключает использование протокола ARP для интерфейса.
[-]promisc
– включает или отключает неразборчивый режим (promiscuous mode) работы интерфейса. В этом режиме все проходящие по сети пакеты будут приниматься интерфейсом.
[-]allmulti
– включает или отключает режим all-multicast. В этом режиме все многоадресные (multicast) пакеты в сети будут приниматься интерфейсом.
metric N
– устанавливает метрику интерфейса.
mtu N
– устанавливает максимальный размер пакета (Maximum Transfer Unit - MTU) для интерфейса.
адрес
– IP-адрес, присваиваемый интерфейсу.
netmask адрес
– устанавливает маску сети IP для этого интерфейса. По умолчанию используется обычная маска сети класса A, B или C (что определяется по IP-адресу интерфейса), но можно усановить любое значение.
add адрес/длина_префикса
– добавляет адрес IPv6 для интерфейса.
del адрес/длина_префикса
– удаляет адрес IPv6 для интерфейса.
irq адрес
– устанавливает аппаратное прерывание, используемое устройством. Не для всех устройств можно динамически менять значение IRQ.
media тип
– устанавливает физический порт или тип носителя, используемый устройством. Не для всех устройств можно менять этот параметр, и для разных устройств могут поддерживаться различные значения. Типичные значения типа - 10base2 (коаксиальный кабель Ethernet), 10baseT (витая пара Ethernet 10 Мбит/сек), AUI (внешний передатчик) и т.д. Специальный тип носителя auto можно использовать, чтобы потребовать от драйвера автоматически обпределять тип носителя. Не все драйверы могут это делать.
[-]broadcast [адрес]
– если указан аргумент адрес, задает соответствующий протоколу широковещательный адрес для интерфейса. В противном случае устанавливает (или сбрасывает) флаг IFF_BROADCAST для интерфейса.
Пример. изменение IP-адреса интерфейса rl0:
user@desktop ~ $ ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:febb:5f1%rl0 prefixlen 64 scopeid 0x3
inet 192.168.19.86 netmask 0xffffff00 broadcast 192.168.19.255
ether 00:50:22:bb:05:f1
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
user@desktop ~ $ ifconfig rl0 192.168.0.1
user@desktop ~ $ ifconfig rl0
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU>
inet6 fe80::250:22ff:febb:5f1%rl0 prefixlen 64 scopeid 0x3
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.19.255
ether 00:50:22:bb:05:f1
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
arp
Команда arp отображает ARP-таблицу данного хоста. С помощью параметра -i можно специфицировать сетевой интерфейс, информация о котором интересует.
desktop ~ # arp -i eth0
Address HWtype HWaddress Flags Mask Iface
DIMON.mshome.net ether 00:50:BF:12:8A:9E C eth0
Таблица с информацией о канальном уровне содержит связь IP- и MAC-адресов. При использовании параметра -n IP-адреса не будут заменяться символьными именами хостов.
route
Эта команда используется для просмотра и изменения таблицы маршрутизации хоста. Для этой команды также работает параметр -n, при использовании которого IP-адреса не будут заменяться символьными именами хостов.
Пример обычной таблицы маршрутизации для отдельного компьютера в сети:
desktop ~ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.5.254 0.0.0.0 UG 0 0 0 eth1
Особый интерес представляет адрес 0.0.0.0, который соответствует хосту назначения по умолчанию.
Для добавление нового маршрута к определённому хосту используются параметры add и -host:
desktop ~ # route add -host 192.168.0.1 eth0
Эта команда создаёт новую строку в таблице маршрутизации, согласно которой все пакеты к узлу 192.168.0.1 должны отправляться в сетевой интерфейс eth0.
Также можно добавлять шлюз для отправки пакетов в определённую сеть или к хосту:
desktop ~ # route add -net 192.168.1.0 gw 192.168.0.5
Таким образом, все пакеты для сети 192.168.1.0 будут направляться на узел 192.168.0.5.
Аналогично, маршруты удаляются параметром del с указанием всей информации о маршруте:
desktop ~ # route del default gw 192.168.0.1
Эта команда удаляет маршрут по умолчанию через хост 192.168.0.1.
