
БОС1 / БОС_ЛР_5
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
АДМИНИСТРИРОВАНИЕ ASTRA LINUX
Отчет по лабораторной работе №5
по дисциплине «Безопасность операционных систем»
Выполнил: Студент гр. 712-1
_______ Будаев А.Г.
_______
Руководитель:
Преподаватель кафедры КИБЭВС
_______ _______ Вовченко А.В.
_______
Томск 2024
Введение
В лабораторной работе будут изучены процессы в Linux:
—Общие понятия о программах, процессах и потоках выполнения
—Жизненный цикл процесса
—Виды межпроцессного взаимодействия
—Настройка доступа к общим библиотекам
—Мониторинг процессов
—Управление приоритетом процесса
—Сигналы
—Управление заданиями
Также будет изучено управление учетными записями пользователей и групп:
—Подготовка к созданию учетных записей
—База данных локальных учетных записей
—Команды и графические утилиты для создания, изменения и удаления учетных записей
—Управление паролями
—Настройка окружения пользователя
—Управление аутентификацией и авторизацией с помощью PAM
2

1 ПРОЦЕССЫ В LINUX
Для того чтобы посчитать количество процессов, имеющих несколько потоков выполнения можем воспользоваться командой ps -eLf | grep -v '^ *1 ' | wc -l (рис. 1.1), она выводит все процессы с их потоками выполнения, затем фильтрует только те строки, где количество потоков выполнения больше 1, и
подсчитывает количество таких строк с помощью wc -l.
Рисунок 1.1 – Количество процессов, имеющих несколько потоков
Теперь откроем top и перейдем в меню настроек нажав F (рис. 1.2),
внесем изменения (рис. 1.3).
Рисунок 1.2 – Окно конфигурации top
Рисунок 1.3 – Измененный top 3

Откроем новое окно терминала и введем команду passwd (рис. 1.4).
Рисунок 1.4 – Новое окно терминала
Выведем все процессы, для которых реальным пользователем является пользователь, которым мы вошли в сеанс «u» (рис. 1.5).
Рисунок 1.5 – Процессы нашего пользователя
Найдем процесс passwd, нажмём O и введем COMMAND=passwd (рис.
1.6)
Рисунок 1.6 – Процесс passwd
Отправим этому процессу сигналы 15 (SIGTERM), 2 (SIGINT), 3 (SIGQUIT), 9(SIGKILL) (рис. 1.7).
4

SIGTERM (15) — это аналог SIGINT (2). Если у процесса нет управляющего терминала, то отправить ему клавиатурный сигнал не получится, поэтому используется этот сигнал.
SIGINT (2) — клавиатурный сигнал, срабатывает когда мы нажимаем
Ctrl+c. Это штатное завершение, то есть процесс будет завершён корректно
(если процесс вообще умеет завершаться корректно).
SIGQUIT (3) — клавиатурный сигнал, срабатывает когда мы нажимаем
Ctrl+\. Аварийное завершение с выдачей отладочной информации.
SIGKILL (9) — этот сигнал сразу завершает процесс (некорректно). И
это поведение нельзя изменить, то есть программист не может сам указать программе, что делать в случае получения этого сигнала.
Рисунок 1.7 – Отправленные сигналы
Зайдем в текстовый редактор vim, выполнив команду vim ~/file.txt (рис.
1.8).
Рисунок 1.8 – Работа с текстовым редактором vim
5

Выполним команду sleep 600, нажмите Ctrl-Z и выполните команду jobs (рис. 1.9). Отправим последнее задание в фоновый режим командой bg (рис. 1.10).
Рисунок 1.9 – Команда sleep
Рисунок 1.10 – Последняя команда была отправлена в фоновый режим
Изменим число NICE у задания (sleep 600), сделав его равным 10.
Проверим, что число NICE у этого задания изменилось (рис. 1.11).
Рисунок 1.11 – Изменение значения NICE у процесса
Сделаем процесс vim фоновым (рис. 1.12).
Рисунок 1.12 – Vim в фоне
6

Отправим сигнал 15 (SIGTERM) заданию sleep 600 и выполните команду jobs (рис 1.13).
Рисунок 1.13 – Сигнал 15
Создадим перехватчик сигналов SIGINT и SIGQUIT внутри командного интерпретатора, который выводит сообщение «Сигнал заблокирован» (рис.
1.14). Команда устанавливает обработчик сигнала для SIGINT (Ctrl+C) и SIGQUIT (Ctrl+), который будет выводить сообщение "Сигнал заблокирован",
когда соответствующий сигнал будет получен.
Рисунок 1.15 – Перехватчик сигналов
7

2 ОСНОВЫ РАБОТЫ В КОМАНДНОЙ СТРОКЕ OC ASTRA LINUX
С помощью команд useradd, groupadd, passwd создайте учетную запись
user1 со следующими параметрами (рис. 2.1):
—UID - 1500;
—основная (первичная) группа user1 (GID 1500);
—дополнительная группа - video;
—домашний каталог должен быть создан;
—входной командный интерпретатор - /bin/bash;
—задать пароль по своему усмотрению;
—время действия пароля - 60 дней;
—пользователь должен сменить пароль при первом входе в систему.
Рисунок 2.1 – Создание новой учётной записи пользователя
Проверим, что атрибуты учетной записи и параметры пароля установлены верно (воспользуйтесь командами id и chage), зайдите в систему,
используя созданную учетную запись пользователя (рис. 2.2 – 2.4).
8

Рисунок 2.2 – Проверка id пользователя
Рисунок 2.3 – Параметры пароля пользователя
Рисунок 2.4 – Авторизация под новым пользователем
С помощью утилит adduser и addgroup добавим учетную запись user2 со следующими параметрами:
—UID - 2000;
—основная группа user2 (GID 2000);
—дополнительная группа users;
—GECOS: полное имяПользователь 2, номер комнаты - 111,
рабочий телефон 111-111, остальные поля пустые;
— зададим пароль по своему усмотрению. В файле /etc/adduser.conf
установить параметр (чтобы не добавлялись вторичные группы,
указанные в параметре EXTRA_GROUPS) (рис. 2.5). 9

Рисунок 2.5 – Добавления второго пользователя
Проверим, что учетная запись создана согласно требованиям из предыдущего пункта (используйте команду lslogins) и зайдем в систему под учетной записью user2 (рис. 2.6).
Рисунок 2.6 – Вывод lslogins
Изменим обои у новых пользователей (рис. 2.7 – 2.8).
10