Техническое задание № ТЗ-03/2026 · ООО «Пятый склад»
Закрытие доступа уволенного администратора и аудит сервера ops-03
Блокировка входа без удаления учётной записи, группы и правила sudo, процессы и сигналы, передача каталогов и прав, поиск файлов и программ с setuid, копия данных, скрипт аудита и акт для службы безопасности
Скачать ТЗ в PDFбланк с подписями, лист согласования и акт сдачи-приёмки
187 015, г. Северогорск, Складской проезд, д. 5
ИНН 9905 405 512 · КПП 990501001 · ОГРН 1199900054410
+7 (900) 505-55-05 · it@5sklad.example
от 13.10.2026
ООО «Пятый склад»
исполнителям технического задания № ТЗ-03/2026
О задачах работы
Дмитрий Козлов четыре года администрировал сервер ops-03. На этом сервере лежат скрипты выкладки интернет-магазина и ключ доступа к его рабочим серверам, общая папка для обмена файлами и платёжные документы бухгалтерии. Сегодня у Дмитрия последний рабочий день.
Увольнение плановое. Регламент прекращения доступа РД-05 применяется ко всем увольнениям одинаково: к 18:00 вход уволенного сотрудника на сервер закрыт всеми способами, его зона ответственности передана, а всё, что он оставил на сервере, найдено и разобрано. Учётную запись удалять нельзя: 30 дней она нужна для возможных расследований.
Зону ответственности Дмитрия принимает Анна Орлова. Бухгалтер Ирина Лебедева в это время работает с платёжными документами в /srv/finance, и её работа не должна прерываться.
Служба информационной безопасности Андрея Тимофеева ждёт акт аудита: что найдено на сервере, чем это опасно, что сделано и какие пароли, токены и ключи нужно сменить вне сервера. Скрипт аудита из этого задания группа эксплуатации будет запускать при каждом следующем увольнении.
Требования и порядок приёмки изложены ниже. По вопросам о составе акта обращайтесь к Андрею Тимофееву, по работе с сервером — к наставнику Анне Орловой.
ООО «Пятый склад»
1. Ситуация
«Пятый склад» хранит товары интернет-магазинов и доставляет их покупателям: 14 складов в Северогорске и области, 600 курьеров, около 9 000 отправлений в день. Клиенты оформляют доставку на сайте и в приложении, оплату принимает собственный сервис billing, обращения клиентов разбирает отдел поддержки в сервисе helpdesk.
23 человека: разработка, группа эксплуатации (5 инженеров) и служба информационной безопасности. Внутренние сервисы работают на серверах Ubuntu 24.04 в собственной серверной. Группа эксплуатации устанавливает сервисы по стандарту, следит за их работой и закрывает доступ уволенным сотрудникам. С октября 2026 года в группе эксплуатации проходят производственную практику практиканты колледжа. Они работают парами, получают заявки из очереди группы и сдают работу наставнику. Изменения на рабочих серверах вносит дежурный инженер по отчёту и журналу работ пары.
Группа эксплуатации обслуживает три сервера: helpdesk-01 — сервис заявок отдела поддержки; billing-02 — приём платежей и ночная сверка с банком; ops-03 — сервер группы эксплуатации: скрипты выкладки магазина, общие папки, документы бухгалтерии. Это задание относится к серверу ops-03. Работа ведётся по регламентам компании РД-05 «Регламент прекращения доступа», ПД-02 «Политика доступа», ПР-06 «Порядок работы группы эксплуатации»; выдержки из них — в Приложении Б.
1.1. Заявка
Работа начинается с заявки в очереди группы эксплуатации. Её текст приводится полностью.
Сегодня последний рабочий день администратора Дмитрия Козлова (kozlov). Закрыть его доступ к серверу ops-03 и передать его зону ответственности Анне Орловой (orlova).
Бухгалтер Ирина Лебедева (lebedeva) работает с каталогом /srv/finance, её работа не должна прерваться.
Учётную запись не удалять: 30 дней она нужна для расследований. Всё, что может понадобиться, сохранить в /var/backups/offboarding/kozlov, доступ к копии — только у root.
1.2. Хронология и участники
События до выдачи задания и после него расположены по времени. Ниже — сотрудники, которых касается задание; их учётные записи используются в работе так, как они записаны в таблице.
| Когда | Что произошло |
|---|---|
| 29.09.2026 | Козлов подал заявление об увольнении. |
| 13.10.2026, 08:30 | Служба информационной безопасности открыла заявку SEC-2026-0088. |
| 13.10.2026 | Заявка передана паре практикантов. Учётная запись kozlov активна, его процессы работают. |
| 13.10.2026, 18:00 | Срок: вход закрыт, дела переданы, акт аудита передан в службу безопасности. |
| 12.11.2026 | Окончание 30 дней хранения учётной записи. Удаление — по отдельной заявке. |
| Сотрудник | Должность | Учётная запись | Роль в задании |
|---|---|---|---|
| Власова Елена Сергеевна | директор по информационным технологиям | — | утверждает задания и отчёты группы эксплуатации |
| Орлова Анна Викторовна | инженер эксплуатации, наставник | orlova | принимает работу практикантов, отвечает в #ops |
| Козлов Дмитрий Игоревич | инженер эксплуатации, администратор ops-03 | kozlov | последний рабочий день — день выдачи ТЗ № 3 |
| Лебедева Ирина Николаевна | бухгалтер | lebedeva | работает с платёжными документами в /srv/finance |
| Тимофеев Андрей Геннадьевич | руководитель службы информационной безопасности | — | принимает акты аудита |
1.3. Что есть на сервере
На копии сервера, которую разворачивает стенд, находятся файлы и программы из таблицы. С них начинается осмотр сервера.
| Файл или каталог | Назначение |
|---|---|
/srv/devops | скрипты выкладки и ключ доступа к продуктовым серверам; владелец сейчас kozlov |
/srv/finance | платёжные документы бухгалтерии |
/srv/share | общая папка для обмена файлами |
/home/kozlov | домашний каталог уволенного |
Из заявки и обстановки на сервере следует задача пары. Она описана в части 2 как перечень требований: каждое требование проверяется при приёмке.
2. Задача
Результат работы описывается пятью целями:
- Закрыть вход учётной записи
kozlovвсеми способами и убрать её права, сохранив саму учётную запись и домашний каталог. - Завершить процессы уволенного сотрудника, предварительно записав, что они делали.
- Передать каталог выкладки новому ответственному так, чтобы работа выкладки и бухгалтерии не прервалась.
- Найти всё, что сотрудник оставил на сервере, и по каждой находке принять решение: передать, сохранить в копию или удалить.
- Получить скрипт аудита учётной записи
audit-user.shи акт аудита для службы информационной безопасности.
Схема показывает части работы и порядок, в котором они связаны. Номер в блоке — раздел задания, где эта часть описана.
Требования ниже сгруппированы по тем же частям. Слова «должен» и «обязательно» обозначают требование, которое проверяется при приёмке. Номер требования записывается в журнал работ рядом с командами, которые его выполняют. Если требование и регламент расходятся, выполняется требование.
2.1. Учётная запись
- 2.1.1Вход запрещён: пароль заблокирован, срок действия учётной записи истёк, оболочка —
nologin. Учётная запись и домашний каталог остаются. - 2.1.2kozlov исключён из всех дополнительных групп. Личных правил sudo не осталось ни в одном файле.
- 2.1.3Все процессы kozlov завершены. Перед завершением записано, что это за процессы: командная строка, родитель, текущий каталог, с какого времени работают.
2.2. Передача дел
- 2.2.1Каталог
/srv/devopsсо всем содержимым принадлежит orlova, группа —devops; права не ослаблены; ключ выкладки доступен только владельцу. - 2.2.2orlova запускает
deploy.shи читает ключ выкладки. lebedeva по-прежнему работает в/srv/finance.
2.3. Аудит файлов
- 2.3.1Найдены все файлы kozlov вне его домашнего каталога, по каждому принято решение: передать, перенести в копию или удалить.
- 2.3.2Дамп базы с персональными данными клиентов убран из общей папки в копию.
- 2.3.3Из домашнего каталога в копию перенесены
notes.txtи.ssh. - 2.3.4Найдены программы с битом setuid, которые не принадлежат пакетам системы. Посторонние удалены.
2.4. Акт аудита
- 2.4.1Каждая находка: что найдено, чем опасно, что сделано. Отдельный раздел — что нужно сделать вне сервера: какие пароли, токены и ключи kozlov знал и кому их сменить.
2.5. Задачи по выбору
Эти задачи выполняются после основных требований и дают дополнительные баллы. Файлы кладутся в папку optional/; при приёмке пара запускает скрипт на стенде или показывает документ.
| Файл | Что сделать | Баллы |
|---|---|---|
lock-user.sh | Скрипт блокировки входа: для имени из аргумента закрывает вход тремя способами и исключает из дополнительных групп. С ключом --check только печатает текущее состояние учётной записи и ничего не изменяет. | +2 |
access-review.md | Пересмотр доступа остальных пользователей ops-03 по политике ПД-02: кто входит в группу sudo, какие правила лежат в /etc/sudoers.d, кому принадлежат каталоги в /srv. Для каждого отступления от политики — предложение, что изменить. | +2 |
Требования выполняются на копии сервера, вдвоём, в течение 14 дней. Как устроены стенд, работа в паре и этапы, описано в части 3.
3. Порядок работы
3.1. Копия сервера
Изменения на рабочем сервере ops-03 вносит дежурный инженер по отчёту пары. Пара работает на копии сервера: её разворачивает скрипт стенда в виртуальной машине с Ubuntu 24.04 из занятия 1. У каждого практиканта своя машина и свой стенд; нужно не меньше 2 ГБ свободного места и 2 ГБ памяти.
Перед первым запуском стенда в VirtualBox создаётся снимок состояния машины: к нему возвращаются, если машина перестала загружаться или потерян доступ к sudo. Стенд создаёт и удаляет учётные записи, правила sudo и каталоги служб, поэтому запускается только в виртуальной машине. Повторный запуск возвращает копию сервера в исходное состояние.
cd ~/Downloads wget https://algorthimization-course-vvodnoe.vercel.app/op05-operacionnye-sistemy-i-sredy/proekty/ekspluataciya-servera/materials/offboarding-stand.sh wget https://algorthimization-course-vvodnoe.vercel.app/op05-operacionnye-sistemy-i-sredy/proekty/ekspluataciya-servera/materials/offboarding-acceptance.sh sudo bash offboarding-stand.sh
Стенд создаёт учётные записи kozlov, orlova и lebedeva, каталоги команды и запускает процессы kozlov. Перед изменениями стенд записывает список программ с setuid, чтобы приёмка увидела новые.
Скрипт приёмки ничего не изменяет: он проверяет копию сервера и печатает OK или FAIL по каждому из 17 пунктов. Пункт FAIL показывает, какое требование не выполнено; перевод пунктов — в Приложении А. Подгонять сервер под скрипт в обход требований запрещено.
sudo bash ~/Downloads/offboarding-acceptance.sh | tee acceptance.txt
3.2. Работа в паре
Работа делится на две части, общую часть пара выполняет вместе. Кто из пары практикант 1 и кто практикант 2, записывается в README.md. При приёмке каждый отвечает и за свою часть, и за часть напарника.
| Кто | Что делает |
|---|---|
| Практикант 1 · учётная запись и доступ | блокировка входа, группы, правила sudo, поиск и описание процессов kozlov, их завершение. |
| Практикант 2 · файлы | поиск файлов kozlov по всей системе, передача /srv/devops, копия в /var/backups, дамп из общей папки, программы с setuid. |
| Вместе | приёмка, скрипт audit-user.sh, акт аудита. |
У пары один репозиторий — tz-03-offboarding: его создаёт практикант 1 и добавляет напарника в Settings → Collaborators. Каждый работает в своей ветке (part-1, part-2) и открывает Pull Request в main. Напарник повторяет команды на своём стенде, оставляет замечания и одобряет слияние. Журнал работ runbook.md общий: время, кто из пары, команда, результат, номер требования; ошибки и откаты тоже записываются.
3.3. Этапы
День 0 — дата выдачи задания. К концу каждого этапа результат загружен в репозиторий, наставник может проверить его без предупреждения.
| Этап | Срок | Результат этапа |
|---|---|---|
| 1. Подготовка | день 2 | Репозиторий, стенд у каждого, распределение частей, паспорт сервера server-passport.md |
| 2. Части практикантов | день 7 | Каждый выполнил свою часть требований и открыл Pull Request |
| 3. Ревью | день 9 | Напарник повторил часть на своём стенде, замечания исправлены, ветки слиты |
| 4. Сведение | день 12 | Общая часть, скрипт audit-user.sh, документ «акт аудита», финальная приёмка на стенде заново |
| 5. Сдача | день 14 | Проверка по части 4 в присутствии обоих практикантов |
3.4. Материалы
В работе используются методичка (порядок работы, частые сообщения об ошибках, Git в паре), справочник команд, шаблоны документов и каркасы скриптов и лекции занятий 3–8. Что изучить по каждой задаче, сказано в разделе «Куда смотреть» в конце страницы. PDF этого ТЗ содержит лист согласования и акт сдачи-приёмки.
Работа заканчивается сдачей репозитория и проверкой в присутствии пары. Что сдаётся и как выставляются баллы, описано в части 4.
4. Сдача и проверка
4.1. Что сдаётся
Работа сдаётся одной ссылкой на репозиторий GitHub. README.md начинается с таблицы: практикант 1 и практикант 2, за что отвечает каждый, итог приёмки «N из 17»; ниже — команды стенда, решения и приёмки по порядку. В конце две строки: «Не получилось: ___» и «Нейросеть использовалась для: ___».
tz-03-offboarding/ ├── README.md состав пары, кто за что отвечает, итог приёмки ├── server-passport.md паспорт сервера до изменений ├── runbook.md журнал работ ├── audit.md акт аудита ├── audit-user.sh скрипт повторяемости ├── acceptance.txt вывод приёмки после финального прогона ├── optional/ задачи по выбору └── screenshots/ снимки из таблицы ниже
| Файл | Что в нём |
|---|---|
server-passport.md | паспорт сервера до изменений: версия системы, учётные записи и группы из задания, процессы и их владельцы, заполнение разделов, каталоги из раздела 1.3. Для каждого сведения — команда, которой оно получено. |
audit.md | акт аудита: находки, действия, что сменить вне сервера. |
audit-user.sh | скрипт: для имени пользователя из аргумента печатает группы, правила sudo, процессы, файлы вне домашнего каталога. Проверка: стенд заново, sudo bash audit-user.sh kozlov находит всё, что вошло в акт. |
runbook.md | журнал работ: время, кто из пары, команда, результат. |
screenshots/ | процессы kozlov до завершения, найденные файлы и программы с setuid, вывод приёмки со всеми OK. |
Шаблоны README.md, журнала работ, паспорта сервера и документа «акт аудита», а также каркас скрипта audit-user.sh — в архиве шаблонов. Команды и их вывод в документах — только с вашей виртуальной машины.
4.2. Проверка
Проверка проходит в присутствии обоих практикантов и состоит из пяти испытаний. Пара заранее открывает виртуальную машину со снимком, репозиторий и журнал работ. Если испытание не пройдено, пара один раз устраняет замечания в течение 3 дней.
| № | Что проверяется | Действие Заказчика | Ожидаемый результат |
|---|---|---|---|
| И-01 | Решение и приёмка | Заказчик разворачивает стенд заново. Пара выполняет решение по журналу работ и своим скриптам, затем запускает скрипт приёмки | Не дольше 30 минут; все 17 пунктов OK, вывод совпадает с acceptance.txt |
| И-02 | Повторяемость | Стенд заново, затем sudo bash audit-user.sh kozlov | Скрипт находит всё, что вошло в акт: группы, правила sudo, процессы, файлы вне домашнего каталога |
| И-03 | Вход закрыт | Попытаться войти под kozlov через su - kozlov | Вход отклонён; Исполнитель показывает три способа блокировки и команду проверки каждого |
| И-04 | Процессы | Заказчик выбирает процесс из акта аудита | Исполнитель рассказывает по записям, что делал процесс, и объясняет, каким сигналом и почему он завершён |
| И-05 | Журнал и часть напарника | Заказчик выбирает строку runbook.md из части напарника | Практикант объясняет команду, её ключи и вывод, называет номер требования |
4.3. Оценка
Работа оценивается в 30 баллов. Оценку получает пара, вклад каждого виден по коммитам, Pull Request и журналу работ.
| Что оценивается | Баллы |
|---|---|
| Приёмка на стенде, развёрнутом заново (И-01): баллы пропорциональны числу пунктов OK из 17 | 10 |
Скрипт audit-user.sh выполняет свою задачу на чистом стенде (И-02) | 5 |
| Документ «акт аудита»: по фактам, с командами и выводом | 5 |
| Паспорт сервера и журнал работ | 4 |
| Работа в паре: свои ветки, Pull Request, ревью с замечаниями | 3 |
| Ответы на испытаниях И-03 — И-05 | 3 |
| Итого | 30 |
| Дополнительно: задачи по выбору | +4 |
| Баллы | 27–30 | 23–26 | 18–22 | меньше 18 |
|---|---|---|---|---|
| Оценка | 5 | 4 | 3 | работа возвращается на доработку |
Работа не принимается, если решение не воспроизводится на стенде, развёрнутом заново, нет журнала работ или права ослаблены ради запуска службы или пункта приёмки.
Куда смотреть
Что изучить и чем себя проверить по каждой задаче. Сначала попробуйте разобраться сами, открывайте, когда застряли. Готовых решений здесь нет.
Сбор сведений
Сначала соберите всё, ничего не меняя: это первая часть акта. После блокировки часть сведений будет уже не получить.
Инструментыid, getent, grep -r по каталогам настроек, ps -u ИМЯ
Блокировка входа
Нужные ключи — в справке usermod. Каждый замок проверяется своей командой.
Инструментысамопроверка: passwd -S, chage -l, getent passwd
Права root
Выясните все источники, из которых пользователь может получить права root, и проверьте каждый.
Инструментысамопроверка: sudo -l -U ИМЯ
Процессы
До завершения выясните про каждый процесс, что он делает: командная строка, родитель, рабочий каталог, открытые файлы и сетевые порты. Если процесс не завершается — разберитесь почему.
Инструментыps -o pid,ppid,lstart,cmd, /proc/PID/cwd, /proc/PID/fd, sudo ss -ltnp
Файлы
Ищите по всей системе. По каждому найденному файлу примите решение и запишите его в акт.
Инструментыfind / -xdev -user ИМЯ 2>/dev/null
Передача каталога
Смена владельца не должна менять права. Сравните до и после.
Инструментыls -lR до и после, проверка от имени нового владельца
setuid
Найдите все программы с этим битом и для каждой выясните, откуда она на сервере.
Инструментыfind / -xdev -perm -4000, dpkg -S ПУТЬ
Акт аудита
Каждая находка: что найдено, чем опасно, что сделано, что осталось сделать вне сервера. Значения паролей и токенов в акт не записывают.
Инструментышаблон audit.md
Приложение А. Пункты скрипта приёмки
Скрипт offboarding-acceptance.sh печатает пункты на английском языке, сгруппированные по частям. В таблице — что означает каждый пункт и какое требование части 2 он проверяет. Требования, которые скрипт проверить не может, проверяются по документам и на испытаниях части 4.
| № | Строка в выводе | Что проверяется | Требование |
|---|---|---|---|
| Account | |||
| 1 | kozlov: password locked | пароль заблокирован | 2.1.1 |
| 2 | kozlov: account expired | срок действия учётной записи истёк | 2.1.1 |
| 3 | kozlov: no login shell | оболочка без входа | 2.1.1 |
| 4 | kozlov: not in devops, finance, sudo | не состоит в дополнительных группах | 2.1.2 |
| 5 | kozlov: no sudo rules | личных правил sudo нет | 2.1.2 |
| 6 | kozlov: no running processes | процессов нет | 2.1.3 |
| 7 | kozlov: home directory kept | домашний каталог сохранён | 2.1.1 |
| Files | |||
| 8 | /srv/devops belongs to orlova:devops | каталог выкладки передан | 2.2.1 |
| 9 | orlova runs deploy.sh | новый ответственный запускает выкладку | 2.2.2 |
| 10 | orlova reads prod_deploy_key | новый ответственный читает ключ | 2.2.2 |
| 11 | deploy key closed for group and others | ключ доступен только владельцу | 2.2.1 |
| 12 | lebedeva still works in /srv/finance | работа бухгалтерии не прервана | 2.2.2 |
| 13 | no files of kozlov outside home and backup | вне домашнего каталога и копии файлов kozlov нет | 2.3.1 |
| 14 | database dump removed from /srv/share | дамп базы убран из общей папки | 2.3.2 |
| 15 | backup: root only, notes, keys and dump inside | копия закрыта для всех, кроме root, и содержит нужные файлы | 2.3.2, 2.3.3 |
| 16 | home of kozlov has no notes and ssh keys | заметки и ключи перенесены из домашнего каталога | 2.3.3 |
| System | |||
| 17 | no setuid files added after the stand | посторонних программ с setuid нет | 2.3.4 |
Приложение Б. Выдержки из регламентов
Регламенты ИТ-отдела ООО «Пятый склад», которые относятся к этому заданию. Полные тексты хранятся во внутренней базе знаний группы эксплуатации.
РД-05 «Регламент прекращения доступа»
Что делает группа эксплуатации, когда сотрудник с доступом к серверам уходит из компании.
1. Учётная запись
- Учётная запись не удаляется 30 дней: она нужна для расследований. Вход запрещается всеми способами: пароль, срок действия, оболочка.
- Сотрудник исключается из всех дополнительных групп, его личные правила sudo удаляются.
2. Пути доступа
- Проверяются все способы, которыми сотрудник может работать на сервере или получать с него данные: процессы, ключи доступа, открытые сетевые порты.
- Перед завершением процесса записывается, что это за процесс. Перед удалением файла сохраняется копия (раздел 3).
3. Файлы
- Файлы сотрудника вне домашнего каталога передаются новому ответственному или переносятся в копию.
- Копия —
/var/backups/offboarding/<логин>/, доступ только root. - Проверяется, не появились ли на сервере программы с повышенными правами, которых нет в пакетах системы.
4. Акт
- По итогам составляется акт аудита для службы информационной безопасности: находки, принятые меры, секреты, которые нужно сменить вне сервера.
ПД-02 «Политика доступа»
Кто и как получает доступ к серверам, данным и правам администратора.
1. Принцип
- Каждый сотрудник и каждый сервис получает только те права, которые нужны для его работы. Доступ «на всякий случай» не выдаётся.
- Права выдаются группам: роль — группа, сотрудник входит в группу своей роли.
2. Права администратора
- Группа
sudo— только у сотрудников группы эксплуатации. - Остальным сотрудникам sudo разрешает конкретные команды по их роли. Правило — отдельный файл
/etc/sudoers.d/<сервис>, права 440, правка только черезvisudo. - Правила вида
ALL=(ALL) NOPASSWD: ALLдля отдельных сотрудников запрещены.
3. Секреты
- Пароли, токены и ключи хранятся в файлах, доступных только root или учётной записи сервиса.
- Секреты не хранятся в домашних каталогах, общих папках и заметках.
4. Проверка
- Доступ проверяется от имени каждой роли: что роли нужно — работает, что не нужно — запрещено. Результат проверки прикладывается к отчёту.
ПР-06 «Порядок работы группы эксплуатации»
Как оформляется любая работа по заявке.
1. Журнал работ
- Каждая команда, изменяющая сервер, записывается: время, кто, команда, результат. Ошибки и откаты тоже.
2. Работа в паре
- Заявку выполняет пара. Работа делится на части, каждая часть проходит ревью напарника: он повторяет её на своей копии сервера.
- Изменения хранятся в репозитории пары: ветка на каждого, Pull Request, ревью, слияние.
3. Сдача
- Работа сдаётся отчётом по форме заявки и выводом скрипта приёмки, полученным на копии сервера, развёрнутой заново.
- Ослаблять права, чтобы сервис запустился, запрещено. Причину отказа ищут в сообщении сервиса и его журнале.
Кейс ОП.05: организация, реквизиты, сотрудники, печать и подписи вымышлены.