Здравствуйте, уважаемые читатели!

Продолжаю разбор вопросов присланных читателями блога.

Предыдущие разборы Вы можете посмотреть по ссылкам:

Часть1, Часть 2, Часть 3Часть 4.

Напомню, что свои вопросы с вариантами ответов Вы можете отправить мне на почту – sandro331k@yandex.ru. При наличии времени, я обязательно проведу разбор и опубликую его в блоге. Ну что, начнём?

1. Укажите правильный порядок загрузки ОС Astra Linux.

Почти в каждом учебнике по Linux есть соответствующий раздел, рассказывающий о порядке загрузки операционной системы. В интернете тоже таких статей достаточно (вот пример одной и них — ссылка). Знания теоретические – но при наличии неполадок, они могут пригодиться.

Не буду переписывать раздел учебника, упрощу некоторые моменты и дополню их опытом со стороны эксплуатации.

Начинается всё с BIOS/UEFI. Из практики с UEFI намного больше проблем и особенностей настройки, чем с BIOS. Начиная с установки (особенно когда используется mdadm), заканчивая эксплуатацией. Со временем, всё становится понятно и логично, но факт остаётся фактом – с BIOS проще.

Далее BIOS/UEFI запускает GRUB. Случаев, когда повреждался загрузчик за всю мою практику – не более пяти. Причём подавляющее большинство таких ситуаций являются следствием выхода из строя жёсткого диска. Решение – повторно установить загрузчик с помощью «Режима восстановления» диска установки Astra Linux.

Загрузчик передаёт управление ядру Linux, которое после выполнения рада задач передаёт управление процессу init в initramfs. Почему это происходит и почему бы не передать управление systemd в корневом разделе? Дело в том, что корневой раздел может быть не простым. Возможно, используется программный RAID массив, LVM, LUKS, а возможно всё и сразу :-). Initramfs – временный корневой раздел содержащий модули ядра и выполняющий сценарии подготовки к запуску операционной системы на реальном корневом разделе.

К слову сказать, тот же модуль замкнутой программной среды (digsig) так же помещается в initramfs. Именно поэтому активация ЗПС требует обновления образа начальной загрузки и перезагрузки системы – в отличие от того же запрета исполняемого бита.

После того, как всё готово – монтируется корневой раздел и управление передаётся systemd – запускаются демоны в соответствии с целевым уровнем (target).

В ходе этого запуска – запускается agetty на первом виртуальном терминале.

И в финале стартует экранный менеджер fly-dm (или не стартует, если закончилось свободное место – ссылка).

Ответ: BIOS/UEFI, GRUB, ядро Linux, процесс init в initramfs, служба systemd, процессы agetty на виртуальных терминалах, экранный менеджер fly-dm

2. Создание нового юнита производится командой

Создавать новые юниты вам придётся периодически.

Когда это может пригодиться? Например, Вы захотите сканировать документы в секретном режиме. В этом случае сканер по умолчанию (AL SE  1.6, в 1.7 не тестировал) не запустится.

Пишем юнит с типом “oneshot”, используем скрипт с командой pdpl-file и всё прекрасно работает.

Есть такие проблемы, в которых Вы ещё не разобрались (но обязательно разберётесь), а пока стало ясно, что если перезапустить проблемный демон — всё заработает. Создаёте юнит запускающий Ваш скрипт, который проверяет — запущен ли демон и запускает его повторно — если нет (к слову это «опасная дорожка», увлекаться этим не стоит — нужно решать проблемы, а не создавать «костыли»).

Либо Вы написали собственную программу, которая будет работать в режиме демона – для неё тоже нужно написать собственный юнит.

Лично я не пользуюсь командой из теста, а просто создаю файл юнита копированием существующего, либо с помощью mcedit «с нуля».

Например:

mcedit /etc/systemd/system/example.service

Ответ: sudo systemctl —force —full edit example.service

3. Требуется выгрузить модуль ядра kvm. Напишите командную строку, которая решит эту задачу (части командной строки разделяйте одним пробелом).

Задача выгружать модули будет стоять перед Вами крайне редко.

Самая частая проблема с применением подобных знаний — проблема с оборудованием (плохо работающая сетевая карта, WEB камера, USB WIFI модуль). Вот тогда-то Вы и «выпьете эту чашу до дна» :-).

Ответ: modprobe —r kvm

 4. Какие репозитории используются в Astra Linux 1.7?

Ответ на данный вопрос можно найти на https://wiki.astralinux.ru в разделе «Структура репозиториев Astra Linux Special Edition (очередное обновление x.7)».

Ответ: Основной, базовый, расширенный

5. Параметр defaults, используемый в файле /etc/fstab, является композитным и включает в себя следующие параметры.

Ответ на данный вопрос можно найти в man fstab. А подробно прочитать о каждом параметре можно в man mount.

Кстати любопытный момент — в справочной информации к fstab сказано, что указанный файл только читается программами, но не записывается.

Это не правда, как минимум в момент установки циклов затирания в fly-admin-smc происходит перезапись файла (добавляется параметр secdel).

Ответ: exec, async, auto

6. В каком файле (кроме /etc/fstab) необходимо внести изменения для автоматического монтирования раздела LUKS во время загрузки ОС? (введите полное имя файла).

Шифрование файловых систем интересная тема, особенно если Вам есть что скрывать :-).

Наиболее целесообразно применять шифрование разделов на ноутбуках (так как их можно потерять). Настройка шифрования — отдельная статья, ну а сам вопрос не отличается особой сложностью.

Ответ: /etc/crypttab

7. В каком режиме может функционировать служба syslog-ng?

Syslog-ng – приложение для ведения системного журнала с открытым исходным кодом.

Работа с системными журналами – неотъемлемая часть работы системного администратора. В случае возникновения каких-либо проблем в системе, первым делом необходимо ознакомиться с журналом. Бывает так, что в журнале сразу содержится готовый ответ на Ваш вопрос (вот случай из практики – ссылка).

Само приложение syslog-ng представляет большой спектр возможностей, с которыми Вы будете знакомиться по мере освоения системы, но большая часть из них Вам вряд ли пригодится.

В Astra Linux SE  до 1.7 использовался rsyslog. Подход к конфигурационным файлам у syslog-ng и rsyslog разный, придётся освоить оба приложения.

С помощью syslog-ng Вы можете отправлять записи системного журнала (работа в качестве клиента) на удалённую систему (тот же syslog-ng на выделенном компьютере (работа в качесве сервера)). Кроме того, syslog-ng может работать в качестве ретранслятора (посредника) между сервером и клиентом.

Для повышения уровня безопасности информации желательно настроить в сети syslog-ng в режиме сервера. Так Вы уменьшите вероятность модификации системных журналов в случае взлома одного из компьютеров (так как при захвате системы системные журналы гарантированно будут удалены, либо модифицированы).

Ответ: сервер, клиент, ретранслятор

8. Вам нужно регулярно запускать периодические задания в строго указанное время. Какие службы для этого можно использовать?

Опять же актуальный вопрос для системного администратора. Если не считать использования «костылей» (про которые я писал во втором вопросе), периодическими заданиями могут быть – резервное копирование (которое целесообразно выполнять во время наименьшей нагрузки на сервера (в моей организации – ночью), либо антивирусная проверка, ротация логов или контроль целостности с помощью afick.

К слову из опыта эксплуатации, я предпочитаю настраивать запуск afick таким образом, чтобы он приходился на обед (для этого использую systemd). В противном случае пользователь включает компьютер (а просто так их никто не включает – только когда нужно срочно что-то сделать) и через пять минут anacron запускает контроль целостности. В совокупности с антивирусом это просто убивает компьютер и нервную систему пользователя — как следствие Вашу (берегите себя и свою нервную систему, настройте afick с помощью systemd).

Ответ: systemd, cron

9. Какие неисправности могут возникнуть на начальных стадиях загрузки ОС?

Как я говорил ранее в первом вопросе, периодически сталкиваюсь с этими проблемами – при выходе их строя жёсткого диска, ещё реже бывают скачки напряжения в сети, которые тоже приводят к печальным последствиям.

Где-то помогает переустановка загрузчика, где-то efibootmgr.

Мониторинг состояния жёстких дисков и использование источников бесперебойного питания позволяют снизить подобные риски.

Кроме того, нужно иногда принять как данность факт необходимости замены жёсткого диска – часто вижу в филиалах нашей бюджетной организации, как администратора ругают за плохо работающую систему. А по факту, там жёсткому диску уже ничем нельзя помочь – не надо бесконечно возиться с такими системами и восстанавливать их по 100 раз – это Сизифов труд. Если никто Вас не слушает – добивайте систему до конца. Сразу и диск найдётся, и спасибо Вам скажут.

 К слову, если система загружается по сети (например, тонкий клиент на базе Linux) проблемы могут быть и в работе сети (но авторы теста не берут это в расчёт, так как разговор об Astra Linux).

Ответы: Повреждение GRUB, повреждение MBR,EFI

10. Укажите файл, в котором хранятся адреса DNS серверов.

Интересно, что при таком массовом освещении systemd авторы не затронули systemd-resolved в данном вопросе. К слову я его тоже не использую, так как везде пишут о возможных рисках, так как не все приложения «умеют» с ним работать.

Ещё один интересный момент из опыта, при работе с данным файлом это NetworkManager – который этот файл переписывает. Помню, когда впервые в своей жизни настраивал сеть, не понимал, что происходит с системой – внезапно прекращал работать DNS.

Настройку производил через networking, но NetworkManager не маскировал.

С тех пор недолюбливаю NetworkManager, хоть и на самом деле его вины в этом не было, если бы настройка сети происходила через него, всё работало бы штатно.

Ответ: /etc/resolve.conf

11. Сопоставьте команды проверки сетевых настроек и выполняемые ими действия.

Использование разных форм вопросов при тестировании – хороший тон. Сопоставление на мой взгляд решается интереснее чем выбор из вариантов.

Да и сам вопрос полезный. В наше время любой системный администратор сталкивается с сетями. Без этих команд невозможно диагностировать работу сети.

ping – каждый кто хоть краем уха слышал про компьютерные сети (или игры) знает, что такое пинг. С помощью этой утилиты мы может понять, доступен ли хост (шлюз) или нет.

ip address show (обратите внимание, address с двумя буквами d – частая ошибка в конфигурациях) – к слову сказать команда ip позволяет использовать первые буквы своих аргументов (при отсутствии пересечений между аргументами) т.е. эту команду можно заменить на:

ip a s

С помощью неё мы можем проверить установленные ip адреса на интерфейсе.

ip route (исходя из того, что я сказал выше ip r) – позволяет проверить маршрут по умолчанию в таблице маршрутизации.

И наконец traceroute позволяет проверить маршрут и доступность удалённого хоста.

Ответы:
ping – проверка доступности шлюза;
ip address show – проверка установленного IP-адреса и его свойств;
ip route – проверка наличия маршрута по умолчанию в таблице маршрутизации;
traceroute – проверка маршрута и доступности удалённого хоста.

12. Укажите, как правильно проверить равенство двух символьных строк, хранящихся в переменных a и b?

Как я и говорил, знание bash необходимо администратору. К слову, касательно bash тут не всё так однозначно. Символ [ и test — это команды bash (выполняющие идентичную функцию), но в каталоге /bin вы найдёте и [, и test которые не являются командами bash, а вполне самостоятельные бинарные файлы. Чтобы проверить это используйте команду type (вы должны её помнить из курса 1702).

Кстати, кто-то мог задуматься – «Если “[“ — это команда, то, что такое “]” в условии [ “$a” == “$b” ]?

Хороший вопрос! ] — это аргумент команды [. Обожаю Linux в такие моменты :-).

А теперь к сути вопроса — Вы должны помнить, чтобы обратиться к  переменной, необходимо использовать символ $. Варианты ответов без этого символа сразу отпадают.

Изучив справку по команде test Вы узнаете, что строки сравниваются с помощью знака равенства (=), так Вы отсеете оставшиеся варианты.

Ответ: test “$a” == $b

13. Укажите, как правильно проверить равенство двух чисел, хранящихся в переменных a и b?

Освоив приёмы, которые мы использовали в вопросе 12, сразу исключим варианты со знаком равно (для команд test и [ ) и с именами переменных без знака $. При проверке равенства чисел с помощью команды test используется “-eq”.

Кроме того для сравнения чисел можно использовать встроенную арифметическую функцию в виде двойных скобок. В данном случае для сравнения не используется –eq, а используются знаки равенства (==).

Ответы: (( a==b )), [ “$a” -eq “$b” ], test “$a” –eq “$b”

14. С помощью какого параметра команды cryptsetup можно добавить бинарный ключ из файла, созданного командой dd?

И даже такую страшную картинку приложили, чтобы стало понятно – раз в дело вступила команда dd, просто ответить на данный вопрос не получится.

Когда моя жена видит на домашнем компьютере открытую консоль, всегда говорит, что видимо дело дрянь — тут похожая ситуация :-).

Но на самом деле картинку вставили просто так и для ответа она не нужна.

Ключ из файла можно добавить так же, как и новую парольную фразу — с помощью параметра luksAddKey.

Причём любого файла — не обязательно сгенерированного командой dd.  И так даже круче – ключом к зашифрованному разделу может быть фотография Вашего кота на флешке.

Ответ: luksAddKey

15. Какие методы шифрования данных на уровне блочных устройств используются в Linux?

Даже не зная о методах шифрования в вариантах ответа, можно отсеять те, что содержат FS (файловая система), ведь нас не интересует шифрование на уровне файловых систем.

Остаётся два варианта – dm-crypt+LUKS и Loop-AES, которые действительно используется для шифрования блочных устройств.

Ответы: dm-crypt+LUKS, Loop-AES

16. Что делает команда export elem?

Десятый вопрос третьей части разбора тестов (ссылка) является ответом к этому вопросу. Так сказать повторение – мать учения. На самом деле команда важная и полезная, но использую я её крайне редко.

Ответ: экспортирует переменную elem в дочерние процессы

17. Network Manager работает со следующими типами объектов.

Как я уже не раз писал ранее – не люблю NetworkManager и не использую его.

Объекты, с которыми работает NetworkManager можно посмотреть в man nmcli.

Это device, connection, networking (в тесте указано networking.service – это служба systemd, а не объект), general, radio.

Ответ: устройство (device), соединение (connection)

18. В какой файл нужно добавить строку: «* soft core unlimited» для включения возможности снимать дампы? (введите полное имя файла)

Снимать дампы Вам потребуется так же очень редко, только в момент существенных и необъяснимых проблем, в которых нужно разобраться. В моей практике снимать дампы не приходилось.

Решение проблем следует начинать с простого – с системных журналов, далее можно воспользоваться поиском в интернете, если результатов нет — нужно использовать команду strace (для трассировки процесса – мне несколько раз реально помогало), ну а когда ничего не остаётся, можете и дамп снять.

Кстати, вместо астериска (знак *) Вы можете использовать имя конкретного пользователя.

Ответ: /etc/security/limits.conf  

19. Вы изменили конфигурационный файл службы ssh. Какая команда позволит службе ssh перечитать изменённый конфигурационный файл?

Чтобы сервер ssh перечитал конфигурационный файл необходимо выполнить:

sudo systemctl reload ssh

Если Вы выполните:

sudo systemctl restart ssh

исправления в конфигурационном файле так же начнут действовать – разница в том, что в первом случае процесс ssh сервера останется тот же, во втором будет запущен новый процесс ssh, а старый прекратит своё существование.

Ответ: sudo systemctl reload ssh

20. Размонтирование файловой системы завершилось неудачей. Какая команда может помочь понять причину проблемы и выяснить, какие процессы не позволяют это сделать? (Введите только имя команды)

Команда периодически нужна, чтобы обнаружить, что размонтировать файловую систему не позволяет Антивирус Касперского, либо fly-fm, либо bash (когда находится в каталоге файловой системы на момент выхода). Редко можно увидеть какие-то другие процессы.

Ответ: fuser

21. Что можно сделать для устранения неисправностей, связанных с нехваткой места в каталоге /boot, в случае если необходимо пересоздать файл initrd.

Мне не очень нравится этот вопрос по ряду причин.

Во-первых, я не слышал, чтобы кому-то недоставало места в конкретном каталоге. В разделе с точкой монтирования в директории /boot может закончится место, а в самой директории /boot — нет.

Во-вторых, если раздел с директорией /boot заполнился на 100 % нужно его почистить и понять причину такой ситуации. Если директория /boot находится в корневом разделе, значит работа всей системы под угрозой, так как, скорее всего, директория /var так же находится в корневом разделе. В вопросе же – сложившаяся ситуация воспринимается как данность.

В-третьих, нужно стараться использовать LVM, чтобы таких ситуаций не возникало.

На мой взгляд, вопрос нужно либо убрать, либо перефразировать.

Ответ: Смонтировать в каталог /boot чистую файловую систему, имеющую свободное место; создать в каталоге /boot файл initrd, с помощью команды update-initramfs; скопировать созданный файл initrd на локальную ФС, размонтировать временную файловую систему, заменить старый файл initrd новым.

Добавить комментарий

Ваш e-mail не будет опубликован.