## 🧱 Основы системы ### Анкета: Структура файловой системы #### 🟢 Уровень 1: Основы + **1. Что такое корневой каталог в Linux и как он обозначается?** + A) Домашний каталог текущего пользователя, обозначается `~` + B) Каталог для программ администратора, обозначается `/root` + C) Главный каталог файловой системы, содержащий всё остальное, обозначается `/` + D) Каталог с загрузочными файлами ядра, обозначается `/boot` + **2. Для чего в основном используется каталог `/home`?** + A) Для хранения общесистемных конфигурационных файлов. + B) Для хранения личных файлов и настроек пользователей. + C) Для временного хранения файлов удалённых пользователей. + D) Для хранения файлов веб-сервера. + **3. Каково назначение каталога `/bin`?** + A) Это "корзина" для удалённых файлов. + B) В нём хранятся двоичные файлы драйверов устройств. + C) В нём хранятся все исполняемые файлы системы. + D) В нём хранятся основные исполняемые файлы, доступные всем пользователям. #### 🟢🟢 Уровень 2: Продвинутый пользователь + **4. В чем ключевое различие между каталогами `/bin` и `/sbin`?** + A) В `/bin` находятся исполняемые файлы, а в `/sbin` — их исходные коды. + B) `/bin` содержит команды для всех пользователей, а `/sbin` — команды, требующие прав суперпользователя (администратора). + C) `/bin` — это реальный каталог, а `/sbin` — символическая ссылка на него. + D) В `/bin` хранятся 32-битные программы, а в `/sbin` — 64-битные. + **5. Какую роль выполняет каталог `/etc`?** + A) Хранит исполняемые файлы дополнительных (et cetera) программ. + B) Используется для временного хранения электронных текстовых документов. + C) Содержит общесистемные конфигурационные файлы. + D) Содержит шаблоны для создания домашних каталогов новых пользователей. + **6. Что такое Filesystem Hierarchy Standard (FHS)?** + A) Утилита для проверки файловой системы на наличие ошибок. + B) Стандарт, описывающий структуру каталогов и расположение файлов в UNIX-подобных системах. + C) Модуль ядра, отвечающий за поддержку файловых систем, таких как ext4 и XFS. + D) Сетевой протокол для организации общего доступа к файлам. #### 🟢🟢🟢 Уровень 3: Эксперт + **7. Какова основная функция каталога `/proc`?** + A) Хранение лог-файлов всех системных процессов. + B) Хранение предварительно скомпилированного программного кода для ускорения запуска. + C) Это защищённый каталог для хранения микрокода процессора. + D) Это виртуальная файловая система, предоставляющая доступ к информации о процессах и параметрах ядра. + **8. Что такое inode (индексный дескриптор)?** + A) Структура данных, хранящая метаданные файла (права доступа, размер, владелец), но не его имя и содержимое. + B) Специальный файл, который содержит имя и полный путь к файлу. + C) Блок на диске, в котором хранится непосредственно содержимое (данные) файла. + D) Запись в системном журнале об операциях, произведенных с файлом. + **9. Что означает фундаментальная концепция Linux "всё есть файл"?** + A) Все данные на диске, включая свободное пространство, организованы в виде скрытых файлов. + B) Все программы в Linux должны быть написаны в виде одного исполняемого файла. + C) Ресурсы системы, такие как устройства (диски, терминалы), представляются в файловой системе и с ними можно работать как с файлами. + D) Все пользовательские данные должны храниться исключительно в текстовых файлах для универсальности. --- ### Анкета: Права доступа и владение #### 🟢 Уровень 1: Основы + **10. Что означают права доступа `rwx` для файла?** + A) Read, Write, Execute (Чтение, Запись, Исполнение) + B) Read, Watch, Extract (Чтение, Наблюдение, Извлечение) + C) Run, Wait, Exit (Запуск, Ожидание, Выход) + D) Rewrite, Work, eXamine (Перезапись, Работа, Изучение) + **11. Какая команда используется для изменения прав доступа к файлу или каталогу?** + A) `chown` + B) `chgrp` + C) `chmod` + D) `access` + **12. Для чего предназначена команда `chown`?** + A) Для изменения прав доступа. + B) Для изменения владельца и/или группы файла. + C) Для создания нового владельца в системе. + D) Для просмотра текущего владельца файла. #### 🟢🟢 Уровень 2: Продвинутый пользователь + **13. Какие права доступа устанавливает команда `chmod 755` для файла?** + A) `rwxr-xr-x` (владелец может всё, группа и остальные могут читать и исполнять) + B) `rwxr-xr--` (владелец может всё, группа может читать и исполнять, остальные только читать) + C) `rwx--x--x` (все могут исполнять, но только владелец может читать и писать) + D) `rwxrwxrwx` (все могут делать всё) + **14. Что означает SUID-бит (Set User ID), установленный на исполняемый файл?** + A) Файл может быть запущен только пользователем с указанным ID. + B) Файл при запуске выполняется с правами владельца файла, а не пользователя, который его запустил. + C) Любой пользователь может сменить владельца этого файла. + D) Файл будет автоматически удалён после первого успешного запуска. + **15. Что даёт SGID-бит (Set Group ID), установленный на каталог?** + A) Только члены группы-владельца могут входить в этот каталог. + B) Все новые файлы, созданные в этом каталоге, будут наследовать группу каталога. + C) Запрещает создание подкаталогов внутри. + D) При входе в каталог первичная группа пользователя временно меняется на группу-владельца каталога. #### 🟢🟢🟢 Уровень 3: Эксперт + **16. Каково назначение "sticky bit" (липкого бита), установленного на каталог (например, `/tmp`)?** + A) Файлы в этом каталоге нельзя изменить после создания. + B) Каталог нельзя удалить, пока он не пуст. + C) Удалить файл в этом каталоге может только владелец файла, владелец каталога или root. + D) Все файлы, перемещенные в этот каталог, "прилипают" к нему и не могут быть перемещены. + **17. Что такое `umask`?** + A) Команда, которая показывает маску подсети для сетевых интерфейсов. + B) Маска прав доступа, которая определяет права по умолчанию для вновь создаваемых файлов и каталогов. + C) Утилита для скрытия (маскировки) файлов от определённых пользователей. + D) Системный параметр, определяющий максимальное количество файлов, которые может создать пользователь. + **18. В чем отличие прав доступа символической ссылки от прав её цели?** + A) У символических ссылок всегда полные права (`rwxrwxrwx`). + B) Права символической ссылки полностью копируются с цели в момент создания. + C) Права на символическую ссылку не имеют значения; важны только права на файл, на который она указывает. + D) При изменении прав на цель, права на ссылку автоматически меняются. --- ### Анкета: Пользователи и группы #### 🟢 Уровень 1: Основы + **19. Кто такой пользователь `root` в Linux?** + A) Первый созданный в системе пользователь. + B) Пользователь с ограниченными правами. + C) Суперпользователь, имеющий полный доступ ко всем файлам и командам. + D) Системная учётная запись для запуска служб, не требующих прав. + **20. Какая команда используется для добавления нового пользователя в систему?** + A) `newuser` + B) `adduser` (или `useradd`) + C) `personadd` + D) `mkuser` + **21. В каком файле в основном хранится информация об учётных записях пользователей?** + A) `/etc/users` + B) `/etc/config` + C) `/home/users.list` + D) `/etc/passwd` #### 🟢🟢 Уровень 2: Продвинутый пользователь + **22. Что такое первичная и вторичная группа пользователя?** + A) Первичная — для входа в систему, вторичная — для доступа к сети. + B) Первичная — группа, с которой создаются файлы по умолчанию; вторичные — предоставляют доп. права доступа. + C) Первичная группа имеет ID до 1000, вторичные — после 1000. + D) Пользователь может менять свою вторичную группу, но не первичную. + **23. Для чего используется команда `sudo`?** + A) Для полного переключения на другого пользователя, включая его окружение. + B) Для выполнения одной команды с правами другого пользователя (по умолчанию `root`). + C) Для просмотра списка всех пользователей в системе. + D) Для установки прав `SUID` на файл. + **24. Как изменить домашний каталог и оболочку (shell) для уже существующего пользователя?** + A) Отредактировав файл `/etc/passwd` вручную. + B) С помощью команды `usermod`. + C) С помощью команды `useredit`. + D) Необходимо удалить пользователя и создать его заново с новыми параметрами. #### 🟢🟢🟢 Уровень 3: Эксперт + **25. Каково назначение оболочки `/sbin/nologin`?** + A) Это специальная оболочка для удалённого входа, которая не ведёт лог-файлы. + B) Это оболочка, которая немедленно завершает сессию, эффективно запрещая интерактивный вход. + C) Оболочка, которая используется по умолчанию, если другая не указана. + D) Оболочка с повышенным уровнем безопасности. + **26. В чём принципиальное различие между командами `su` и `sudo`?** + A) `su` требует пароль целевого пользователя, а `sudo` — пароль текущего пользователя. + B) `sudo` позволяет выполнять только одну команду, а `su` открывает полноценную сессию. + C) `su` — более старая команда, `sudo` — более новая; функционально они идентичны. + D) `sudo` позволяет тонко настраивать, какие именно команды может выполнять пользователь. + **27. Что такое UID (User ID) и какое значение имеет UID 0?** + A) Уникальный идентификатор пользователя; UID 0 зарезервирован для суперпользователя `root`. + B) Уникальный идентификатор диска; UID 0 обозначает системный раздел. + C) Индекс пользователя в файле `/etc/passwd`; UID 0 — первая запись. + D) Приоритет пользователя в системе; UID 0 имеет самый низкий приоритет. --- ### Анкета: Kernel/userspace взаимодействие (/proc, /sys) #### 🔴 Уровень 3: Эксперт + **28. В чем основное различие между `/proc` и `/sys`?** + A) `/proc` используется ядром, а `/sys` — системными службами. + B) `/proc` ориентирован на информацию о процессах, тогда как `/sys` представляет иерархию устройств и драйверов. + C) Данные в `/proc` можно только читать, а в `/sys` — читать и изменять. + D) `/proc` — это реальная файловая система на диске, а `/sys` — виртуальная. + **29. Как можно изменить параметр ядра "на лету" (без перезагрузки), используя файловую систему?** + A) Записав новое значение в соответствующий файл в `/sys/kernel/`. + B) Записав новое значение в соответствующий файл в `/proc/sys/`. + C) Изменив конфигурационный файл в `/etc/kernel/` и перезапустив службу ядра. + D) С помощью специальной команды `kernel_update`, указав параметр и значение. + **30. Что представляет собой `kobject` в контексте `sysfs`?** + A) Объект ядра, который представляет собой каталог в `/sys`. Вся иерархия `/sys` построена на них. + B) Бинарный файл в `/sys`, содержащий скомпилированный код драйвера. + C) Скрипт конфигурации для конкретного объекта ядра. + D) Блокировка, которая предотвращает одновременный доступ нескольких процессов к одному файлу в `/sys`. --- ### Анкета: Работа с устройствами (/dev, udev) #### 🟡 Уровень 2: Продвинутый пользователь + **31. Какова роль каталога `/dev`?** + A) В нём содержатся инструменты для разработчиков (development tools). + B) Он содержит файлы устройств, которые представляют собой интерфейсы к оборудованию. + C) Это основной каталог для хранения драйверов устройств. + D) Временный каталог для обмена данными между устройствами. + **32. Какова основная задача службы `udev`?** + A) Управлять обновлениями (updates) установленных драйверов. + B) Динамически создавать и удалять файлы устройств в `/dev` при подключении/отключении оборудования. + C) Проверять подлинность устройств, подключаемых к системе. + D) Предоставлять универсальный API для доступа к устройствам (Universal Device API). + **33. В чем разница между блочным (block) и символьным (character) устройством?** + A) Блочные устройства передают данные большими блоками и буферизуются (диски), а символьные — посимвольно (терминал, мышь). + B) Блочные устройства нельзя удалить из системы, а символьные можно. + C) Блочные устройства находятся в `/dev/block/`, а символьные — в `/dev/char/`. + D) Блочные устройства — это физическое оборудование, а символьные — виртуальное. #### 🔴 Уровень 3: Эксперт + **34. Что такое правило `udev` и где обычно размещают пользовательские правила?** + A) Это скрипт, выполняемый при загрузке системы; размещается в `/etc/udev/init.d`. + B) Это файл конфигурации, описывающий, что делать при появлении устройства; размещается в `/etc/udev/rules.d/`. + C) Это бинарный файл драйвера; размещается в `/lib/udev/devices/`. + D) Это настройка ядра, задающая поведение `udev`; размещается в `/proc/sys/dev/`. + **35. Что такое старший (major) и младший (minor) номера файла устройства?** + A) Старший номер указывает на версию драйвера, младший — на версию прошивки устройства. + B) Старший номер идентифицирует драйвер устройства, а младший — конкретное устройство, управляемое этим драйвером. + C) Старший номер — это приоритет устройства, младший — его порт подключения. + D) Это серийный номер устройства, разделенный на две части. + **36. Каково практическое назначение устройства `/dev/null`?** + A) Это "черная дыра": всё, что в него записывается, исчезает, а чтение из него сразу возвращает конец файла. + B) Это временное хранилище, которое очищается при перезагрузке. + C) Это файл, содержащий список всех неиспользуемых (NULL) устройств. + D) Это символическая ссылка на корневой каталог, используемая для отладки. --- ## 💻 Работа с файлами и текстом ### Анкета: Работа с файлами и каталогами #### 🟢 Уровень 1: Основы + **37. Какая команда используется для вывода содержимого текущего каталога?** + A) `list` + B) `dir` + C) `ls` + D) `show` + **38. С помощью какой команды можно создать новый каталог с именем `test`?** + A) `newdir test` + B) `mkdir test` + C) `crdir test` + D) `makedir test` + **39. Какая команда используется для удаления пустого каталога `mydir`?** + A) `del mydir` + B) `rm mydir` + C) `rmdir mydir` + D) `erase mydir` #### 🟢🟢 Уровень 2: Продвинутый пользователь + **40. Что делает команда `ln -s /path/to/file link_name`?** + A) Создаёт жёсткую ссылку на файл. + B) Создаёт символическую (мягкую) ссылку на файл. + C) Копирует файл с сохранением метаданных. + D) Проверяет, существует ли файл. + **41. Какая команда найдёт все файлы с расширением `.log` в текущем каталоге и всех его подкаталогах?** + A) `grep .log` + B) `search *.log` + C) `ls -R *.log` + D) `find . -name "*.log"` + **42. В чем основное отличие жёсткой ссылки от символической?** + A) Жёсткая ссылка не может указывать на каталог, а символическая может. + B) Жёсткая ссылка указывает на тот же inode, что и оригинал; символическая — это файл с путём к оригиналу. + C) Жёсткую ссылку нельзя удалить, пока существует оригинал. + D) Символическая ссылка работает быстрее, чем жёсткая. #### 🟢🟢🟢 Уровень 3: Эксперт + **43. Что делает команда `find . -type f -exec chmod 644 {} \;`?** + A) Находит все каталоги и меняет их права на 644. + B) Находит все файлы и меняет их права на 644, запуская `chmod` для каждого файла отдельно. + C) Находит все файлы и передаёт их список в `chmod` одной командой. + D) Ищет файлы с правами 644. + **44. Для чего используется команда `stat`?** + A) Для вывода статистики использования файловой системы. + B) Для вывода подробной информации о файле или файловой системе, включая inode, права, временные метки. + C) Для отображения статуса системных служб. + D) Для статической компиляции программ. + **45. Как с помощью `find` и `xargs` удалить все файлы, заканчивающиеся на `.tmp`?** + A) `find . -name "*.tmp" | xargs rm` + B) `find . -name "*.tmp" -exec rm` + C) `xargs rm < find . -name "*.tmp"` + D) `rm $(find . -name "*.tmp")` --- ### Анкета: Работа с текстом и потоками (grep, awk, sed, cut, sort, uniq) #### 🟡 Уровень 2: Продвинутый пользователь + **46. Какая команда выведет все строки из файла `access.log`, содержащие слово "ERROR"?** + A) `find "ERROR" access.log` + B) `grep "ERROR" access.log` + C) `cat access.log | search "ERROR"` + D) `text "ERROR" < access.log` + **47. Что делает команда `sort file.txt | uniq -c`?** + A) Сортирует строки в файле и удаляет дубликаты. + B) Сортирует строки, считает количество каждой уникальной строки и выводит результат. + C) Считает количество уникальных строк в отсортированном файле. + D) Удаляет все строки, кроме уникальных. + **48. Как вывести только третье поле из строк файла `data.csv`, где разделителем является запятая?** + A) `grep -f3 ',' data.csv` + B) `awk -f3 ',' data.csv` + C) `cut -d',' -f3 data.csv` + D) `sed 's/,/ /3' data.csv` #### 🔴 Уровень 3: Эксперт + **49. Какая команда `sed` заменит первое вхождение "apple" на "orange" в каждой строке файла `fruits.txt`?** + A) `sed 's/apple/orange/g' fruits.txt` + B) `sed 's/apple/orange/' fruits.txt` + C) `sed 'r/apple/orange/' fruits.txt` + D) `sed '/apple/orange/' fruits.txt` + **50. Какая команда `awk` напечатает второе поле каждой строки, если первое поле равно "user1"?** + A) `awk '$1 == "user1" {print $2}'` + B) `awk '{if $1 = "user1" print $2}'` + C) `awk 'print $2 where $1 == "user1"'` + D) `awk '/user1/ {print $2}'` + **51. Что делает `grep -E '^(root|admin)' /etc/passwd`?** + A) Ищет строки, которые содержат "root" или "admin" в любом месте. + B) Ищет строки, которые начинаются со слов "root" или "admin", используя расширенные регулярные выражения. + C) Ищет строки, которые заканчиваются на "root" или "admin". + D) Ищет файлы с именами `root` или `admin` в каталоге `/etc/passwd`. --- ### Анкета: Перенаправления и пайпы #### 🟢 Уровень 1: Основы + **52. Что делает оператор `>` в команде `ls > file.txt`?** + A) Добавляет вывод `ls` в конец `file.txt`. + B) Считывает ввод для `ls` из `file.txt`. + C) Перенаправляет стандартный вывод `ls`, перезаписывая `file.txt`. + D) Сравнивает вывод `ls` с содержимым `file.txt`. + **53. Что означает символ `|` (пайп) в команде `cat file.txt | grep "word"`?** + A) Выполняет обе команды одновременно. + B) Передаёт стандартный вывод `cat` на стандартный ввод `grep`. + C) Выполняет вторую команду только если первая завершилась успешно. + D) Записывает вывод `cat` во временный файл и передаёт его `grep`. + **54. В чем разница между `>` и `>>`?** + A) `>` работает с текстовыми файлами, `>>` — с бинарными. + B) `>` перезаписывает файл, а `>>` добавляет данные в конец файла. + C) `>` перенаправляет стандартный вывод, `>>` — стандартную ошибку. + D) Разницы нет, это синонимы. #### 🟢🟢 Уровень 2: Продвинутый пользователь + **55. Что делает конструкция `2> errors.log`?** + A) Перенаправляет стандартный вывод (дескриптор 2) в файл. + B) Перенаправляет стандартную ошибку (дескриптор 2) в файл. + C) Создаёт 2 копии файла `errors.log`. + D) Добавляет вывод второй запущенной команды в `errors.log`. + **56. Каково назначение команды `tee` в `command | tee file.log`?** + A) Выводит результат `command` на экран и одновременно записывает его в `file.log`. + B) Записывает результат `command` только в `file.log`, подавляя вывод на экран. + C) Фильтрует вывод `command`, оставляя только строки, содержащие `file.log`. + D) Ставит выполнение `command` на паузу. + **57. Как перенаправить и стандартный вывод, и стандартную ошибку в один файл `all.log`?** + A) `command > all.log < all.log` + B) `command > all.log 2> all.log` + C) `command &> all.log` (или `command > all.log 2>&1`) + D) `command | all.log` #### 🟢🟢🟢 Уровень 3: Эксперт + **58. Что такое "here document" (heredoc)?** + A) Встроенный в команду файл документации. + B) Способ передать многострочный текст на стандартный ввод команды, используя `<<`. + C) Специальный файл в `/dev`, который дублирует свой ввод на вывод. + D) Скрипт, который документирует сам себя. + **59. Что делает конструкция `diff <(sort file1) <(sort file2)`?** + A) Сортирует `file1` и `file2` и сохраняет их во временные файлы перед сравнением. + B) Сравнивает результат выполнения команд `sort file1` и `sort file2` без создания реальных файлов на диске. + C) Сравнивает файлы с именами `<(sort file1)` и `<(sort file2)`. + D) Сравнивает `file1` и `file2`, а затем сортирует результат. + **60. Что означает команда `exec 3> output.log`?** + A) Выполняет команду `3` и перенаправляет её вывод в `output.log`. + B) Открывает файл `output.log` для записи под файловым дескриптором 3. + C) Запускает 3 копии процесса, пишущего в `output.log`. + D) Копирует содержимое дескриптора 3 в `output.log`. --- ### Анкета: Архивация и резервное копирование (tar, gzip, rsync) #### 🟢 Уровень 1: Основы + **61. Какая команда создаст архив `archive.tar` из каталога `mydir`?** + A) `tar -xvf mydir archive.tar` + B) `tar -cvf archive.tar mydir` + C) `gzip mydir > archive.tar` + D) `archive mydir archive.tar` + **62. Как извлечь файлы из архива `archive.tar`?** + A) `tar -cvf archive.tar` + B) `unzip archive.tar` + C) `tar -xvf archive.tar` + D) `untar archive.tar` + **63. Что делает команда `gzip file.txt`?** + A) Создаёт архив `file.txt.zip`. + B) Сжимает `file.txt` и заменяет его на `file.txt.gz`. + C) Показывает содержимое `file.txt` в сжатом виде. + D) Архивирует, но не сжимает `file.txt`. #### 🟢🟢 Уровень 2: Продвинутый пользователь + **64. Какая команда создаст сжатый gzip-архив `files.tar.gz` из каталога `files`?** + A) `tar -cvf files.tar.gz files` + B) `tar -czvf files.tar.gz files` + C) `tar -c files | gzip > files.tar.gz` + D) `gzip -c files > files.tar.gz` + **65. Для чего в основном используется утилита `rsync`?** + A) Для удалённого выполнения скриптов. + B) Для асинхронного копирования файлов. + C) Для эффективной синхронизации файлов и каталогов, в том числе по сети. + D) Для сжатия файлов в реальном времени. + **66. Какой ключ `tar` используется для сжатия с помощью `bzip2`?** + A) `-z` + B) `-b` + C) `-j` + D) `-Z` #### 🟢🟢🟢 Уровень 3: Эксперт + **67. Что означает флаг `--delete` в `rsync`?** + A) Удалять исходные файлы после успешного копирования. + B) Удалять файлы в месте назначения, которых нет в источнике. + C) Спрашивать подтверждение перед удалением каждого файла. + D) Не копировать файлы, помеченные для удаления. + **68. Как создать полную копию диска `/dev/sda` в файл `image.img`?** + A) `rsync /dev/sda image.img` + B) `cp /dev/sda image.img` + C) `dd if=/dev/sda of=image.img` + D) `tar -cvf image.img /dev/sda` + **69. Какая команда позволит заархивировать удалённый каталог `/var/log` с хоста `server1` в локальный файл `logs.tar`?** + A) `tar -cvf logs.tar server1:/var/log` + B) `rsync -avz server1:/var/log logs.tar` + C) `ssh server1 "tar -c /var/log" > logs.tar` + D) `scp server1:/var/log/*.log logs.tar` --- ### Анкета: Компиляция и сборка программ из исходников #### 🟡 Уровень 2: Продвинутый пользователь + **70. Каков типичный порядок команд для сборки программы из исходного кода?** + A) `make` -> `make install` -> `./configure` + B) `make install` -> `./configure` -> `make` + C) `./configure` -> `make` -> `make install` + D) `compile` -> `build` -> `install` + **71. Каково назначение скрипта `configure`?** + A) Он компилирует исходный код. + B) Он устанавливает скомпилированную программу в систему. + C) Он проверяет наличие необходимых библиотек и создаёт `Makefile`. + D) Он скачивает исходный код программы. + **72. Что делает команда `make install`?** + A) Скачивает и устанавливает все зависимости. + B) Компилирует программу. + C) Копирует скомпилированные файлы в системные каталоги (например, `/usr/local/bin`). + D) Удаляет временные файлы, созданные во время компиляции. #### 🔴 Уровень 3: Эксперт + **73. Для чего используется команда `ldd`?** + A) Для загрузки драйверов устройств. + B) Для отображения списка динамических библиотек, от которых зависит исполняемый файл. + C) Для линковки объектных файлов в исполняемый файл. + D) Для вывода логов системного загрузчика. + **74. В чем разница между статической и динамической линковкой?** + A) Статическая линковка происходит при загрузке системы, динамическая — во время работы программы. + B) При статической линковке код библиотек включается в исполняемый файл; при динамической — загружается во время выполнения. + C) Статическая линковка используется для скриптов, динамическая — для бинарных файлов. + D) Статическая линковка быстрее, но создаёт большие файлы; динамическая — медленнее, но файлы меньше. + **75. Какова роль `pkg-config` в процессе сборки?** + A) Управляет пакетами программ в системе, аналог `apt` или `yum`. + B) Предоставляет компилятору пути к заголовочным файлам и библиотекам установленных пакетов. + C) Настраивает конфигурацию ядра для сборки модулей. + D) Проверяет целостность скачанных пакетов с исходным кодом. --- ## ⚙️ Процессы и выполнение Продолжаю. --- ## ⚙️ Процессы и выполнение ### Анкета: Работа с процессами #### 🟢 Уровень 1: Основы + **76. Какая команда выводит список запущенных в данный момент процессов?** + A) `list proc` + B) `ps` + C) `proc` + D) `top` + **77. Что такое PID?** + A) Process Priority (Приоритет процесса). + B) Parent ID (ID родительского процесса). + C) Process ID (Уникальный идентификатор процесса). + D) Program ID (Идентификатор программы). + **78. Какая команда используется для завершения процесса с известным PID?** + A) `stop` + B) `exit` + C) `end` + D) `kill` #### 🟢🟢 Уровень 2: Продвинутый пользователь + **79. Что делает команда `kill -9 1234`?** + A) Вежливо просит процесс с PID 1234 завершиться. + B) Принудительно и немедленно завершает процесс с PID 1234 (сигнал SIGKILL). + C) Приостанавливает процесс с PID 1234. + D) Отправляет процессу с PID 1234 девятое по счёту уведомление. + **80. Какая команда покажет дерево процессов (родительские и дочерние)?** + A) `ps -tree` + B) `pstree` (или `ps axjf`) + C) `ls -proc` + D) `top -tree` + **81. Что означает "зомби-процесс" (zombie process)?** + A) Процесс, который потребляет 100% CPU. + B) Процесс, который завершился, но его запись в таблице процессов всё ещё существует, так как родительский процесс не считал его код завершения. + C) Процесс, который невозможно завершить командой `kill`. + D) Скрытый процесс, работающий в фоновом режиме. #### 🟢🟢🟢 Уровень 3: Эксперт + **82. Чем отличается "демон" (daemon) от обычного процесса?** + A) Демон всегда запускается от имени `root`. + B) Демон — это процесс, работающий в фоновом режиме без привязки к терминалу, обычно для выполнения служебных задач. + C) Демон нельзя завершить командой `kill`. + D) Демон не имеет PID. + **83. Для чего используется команда `pgrep`?** + A) Для поиска PID процесса по его имени или другим атрибутам. + B) Для приостановки всех процессов, принадлежащих группе. + C) Для графического отображения дерева процессов. + D) Для изменения приоритета процесса. + **84. Что такое PPID?** + A) Primary Process ID (PID основного процесса). + B) Process Priority ID (ID приоритета процесса). + C) Parent Process ID (PID родительского процесса). + D) Process Path ID (ID пути к исполняемому файлу процесса). --- ### Анкета: Сигналы и взаимодействие процессов #### 🟡 Уровень 2: Продвинутый пользователь + **85. Какой сигнал обычно отправляется процессу при нажатии `Ctrl+C` в терминале?** + A) `SIGKILL` (9) + B) `SIGTERM` (15) + C) `SIGHUP` (1) + D) `SIGINT` (2) + **86. В чем разница между сигналами `SIGTERM` и `SIGKILL`?** + A) `SIGTERM` — это запрос на завершение, который процесс может проигнорировать; `SIGKILL` — принудительное завершение, которое нельзя перехватить. + B) `SIGKILL` завершает процесс, а `SIGTERM` — только приостанавливает. + C) `SIGTERM` используется для системных служб, а `SIGKILL` — для пользовательских приложений. + D) Разницы нет, это синонимы. + **87. Какой сигнал традиционно используется для того, чтобы демон перечитал свой конфигурационный файл?** + A) `SIGSTOP` + B) `SIGCONT` + C) `SIGHUP` + D) `SIGUSR1` #### 🔴 Уровень 3: Эксперт + **88. Для чего предназначена команда `killall`?** + A) Для завершения всех процессов в системе. + B) Для отправки сигнала всем процессам с указанным именем. + C) Для отправки сигнала всем дочерним процессам текущей оболочки. + D) Для завершения всех процессов, запущенных текущим пользователем. + **89. Что произойдёт с дочерними процессами, если их родительский процесс завершается?** + A) Они немедленно завершаются вместе с родителем. + B) Они становятся "осиротевшими" и "усыновляются" процессом `init` (PID 1) или его аналогом. + C) Они становятся зомби-процессами. + D) Они продолжают работать, но больше не могут создавать свои дочерние процессы. + **90. Можно ли перехватить или проигнорировать сигнал `SIGKILL`?** + A) Да, с помощью системного вызова `signal()`. + B) Да, если процесс имеет права `root`. * C) Нет, этот сигнал обрабатывается непосредственно ядром и не может быть перехвачен процессом. + D) Да, но только если процесс запущен с опцией `--ignore-kill`. --- ### Анкета: Сессии, терминалы, pty #### 🟡 Уровень 2: Продвинутый пользователь + **91. Для чего используется команда `nohup`?** + A) Для запуска команды с повышенным приоритетом. + B) Для запуска команды, которая продолжит выполняться даже после закрытия терминала. + C) Для запуска команды без вывода в консоль. + D) Для запрета команде использовать сеть. + **92. Что такое `screen` или `tmux`?** + A) Утилиты для записи видео с экрана. + B) Утилиты для удалённого управления рабочим столом. + C) Терминальные мультиплексоры, позволяющие управлять несколькими сессиями терминала в одном окне. + D) Драйверы для виртуальных дисплеев. + **93. Что представляет собой файл в `/dev/pts/` (например, `/dev/pts/0`)?** + A) Файл, представляющий псевдотерминал, связанный с сессией SSH или эмулятором терминала. + B) Файл конфигурации для последовательного порта (COM-порта). + C) Физический порт на материнской плате. * D) Драйвер для сенсорного экрана. #### 🔴 Уровень 3: Эксперт + **94. В чём разница между сессией (session) и группой процессов (process group)?** + A) Сессия — это набор групп процессов, обычно связанных с одним терминалом. + B) Сессия — это синоним группы процессов. + C) Сессия относится к пользователю, а группа процессов — к программам. + D) В сессии может быть только один процесс, в группе — много. + **95. Что такое управляющий терминал (controlling terminal) процесса?** + A) Терминал, на котором отображается вывод процесса. + B) Терминал, с которого процесс был запущен и который может отправлять ему сигналы (например, `Ctrl+C`). + C) Терминал, который имеет права на управление этим процессом. + D) Главный терминал системы (`/dev/tty1`). + **96. Для чего нужен `disown` в `bash`?** + A) Чтобы передать владение процессом другому пользователю. + B) Чтобы отвязать запущенный в фоне процесс от текущей сессии shell, предотвращая его завершение при выходе. + C) Чтобы запретить процессу доступ к файловой системе. + D) Чтобы удалить процесс из списка `jobs`. --- ### Анкета: Переменные окружения и shell #### 🟢 Уровень 1: Основы + **97. Какая команда выводит значение переменной окружения `HOME`?** + A) `print $HOME` + B) `var HOME` + C) `show $HOME` + D) `echo $HOME` + **98. Каково назначение переменной `PATH`?** + A) Она указывает путь к домашнему каталогу пользователя. + B) Она содержит список каталогов, в которых оболочка ищет исполняемые файлы. + C) Она хранит путь к текущему рабочему каталогу. + D) Она определяет путь для сохранения временных файлов. + **99. Как установить переменную окружения `MYVAR` со значением `hello` для текущей сессии и дочерних процессов?** + A) `set MYVAR=hello` + B) `let MYVAR="hello"` + C) `export MYVAR="hello"` + D) `env MYVAR="hello"` #### 🟢🟢 Уровень 2: Продвинутый пользователь + **100. В чем разница между `VAR=value` и `export VAR=value` в `bash`?** + A) `export` делает переменную доступной только для чтения. + B) `VAR=value` создаёт локальную переменную оболочки; `export` делает её переменной окружения, видимой в дочерних процессах. + C) `export` работает только для системных переменных. * D) Разницы нет, `export` — это устаревший синтаксис. + **101. Какой файл обычно используется для установки переменных окружения для всех пользователей при входе в систему?** + A) `~/.bashrc` + B) `/etc/profile` + C) `~/.profile` + D) `/etc/environment` + **102. Что такое `PS1`?** + A) Переменная, определяющая основной системный прокси. + B) Переменная, управляющая внешним видом приглашения командной строки. + C) Переменная, указывающая на первый скрипт, запускаемый при старте сессии. + D) Переменная, хранящая PID текущего процесса оболочки. #### 🟢🟢🟢 Уровень 3: Эксперт + **103. Какая команда выполнит `my_command`, временно установив для неё переменную `DEBUG` в `true`?** + A) `export DEBUG=true && my_command` + B) `DEBUG=true my_command` + C) `my_command --env DEBUG=true` + D) `setenv DEBUG=true; my_command` + **104. Для чего используется команда `env`?** + A) Для редактирования переменных окружения. + B) Для вывода списка текущих переменных окружения или запуска команды в изменённом окружении. + C) Для загрузки переменных окружения из файла. + D) Для шифрования переменных окружения. + **105. Что произойдет, если выполнить `(cd /tmp && ls)`?** + A) Текущий каталог навсегда изменится на `/tmp`. + B) Команды будут выполнены в подоболочке (subshell), поэтому текущий каталог родительской оболочки не изменится. + C) Команда `ls` будет выполнена в `/tmp`, но сначала будет запрошено подтверждение. + D) Произойдет ошибка синтаксиса. --- ### Анкета: Bash-скрипты #### 🟡 Уровень 2: Продвинутый пользователь + **106. Что такое "shebang" (шибанг) в скрипте?** + A) Комментарий с именем автора скрипта. + B) Последняя строка скрипта, возвращающая код завершения. + C) Первая строка вида `#!/bin/bash`, указывающая интерпретатор для выполнения скрипта. + D) Специальная переменная для хранения аргументов командной строки. + **107. Как в bash-скрипте получить первый аргумент, переданный ему при запуске?** + A) `$ARG1` + B) `$1` + C) `%1` + D) `$$1` + **108. Что проверяет условная конструкция `if [ -f "file.txt" ]`?** + A) Что `file.txt` существует и является каталогом. + B) Что `file.txt` существует и является обычным файлом. + C) Что `file.txt` имеет права на исполнение. + D) Что `file.txt` не пустой. #### 🔴 Уровень 3: Эксперт + **109. Каково назначение `set -e` в начале bash-скрипта?** + A) Включить режим отладки, печатая каждую команду перед выполнением. + B) Немедленно завершить выполнение скрипта, если какая-либо команда завершится с ненулевым кодом выхода. + C) Запретить использование незаданных переменных. + D) Включить расширенный синтаксис (extended mode). + **110. Что хранится в переменной `$?`?** + A) PID текущего скрипта. + B) Количество аргументов, переданных скрипту. + C) Код возврата (exit code) последней выполненной команды. + D) Имя самого скрипта. + **111. В чём разница между одинарными (`'`) и двойными (`"`) кавычками в bash?** + A) Одинарные кавычки используются для строк, двойные — для чисел. + B) В двойных кавычках происходит подстановка переменных и команд, а в одинарных — нет, текст воспринимается буквально. + C) Двойные кавычки быстрее обрабатываются. + D) Разницы нет, они взаимозаменяемы. --- ## 🧠 Управление системой ### Анкета: Управление службами и демонами #### 🟢 Уровень 1: Основы + **112. Какая команда используется в современных системах с `systemd` для запуска службы `nginx`?** + A) `service nginx start` + B) `/etc/init.d/nginx start` + C) `systemctl start nginx` + D) `start nginx` + **113. Как проверить статус службы `sshd` с помощью `systemd`?** + A) `systemctl status sshd` + B) `service sshd status` + C) `check sshd` * D) `systemctl query sshd` + **114. Как сделать так, чтобы служба `apache2` автоматически запускалась при загрузке системы?** + A) `systemctl boot apache2` + B) `systemctl enable apache2` + C) `systemctl startup apache2` + D) `systemctl on apache2` #### 🟢🟢 Уровень 2: Продвинутый пользователь + **115. Что такое "юнит" (unit) в `systemd`?** + A) Это любой ресурс, которым управляет `systemd` (служба, точка монтирования, устройство и т.д.), описанный в конфигурационном файле. + B) Это исполняемый файл службы. + C) Это скрипт инициализации в стиле SysVinit. + D) Это модуль ядра, необходимый для работы `systemd`. + **116. Где обычно располагаются пользовательские unit-файлы `systemd`?** + A) `/lib/systemd/system/` + B) `/usr/share/systemd/` + C) `/etc/systemd/system/` + D) `/var/run/systemd/` + **117. Какая команда перезагрузит конфигурацию службы, не перезапуская её полностью (если служба это поддерживает)?** + A) `systemctl restart` + B) `systemctl reload` + C) `systemctl update` + D) `systemctl refresh` #### 🟢🟢🟢 Уровень 3: Эксперт + **118. Для чего нужен `systemd-analyze`?** + A) Для анализа логов, собранных `systemd`. + B) Для анализа производительности и времени загрузки системы и отдельных служб. + C) Для проверки синтаксиса unit-файлов. + D) Для анализа зависимостей между юнитами. + **119. Что такое "сокет-активация" (socket activation) в `systemd`?** + A) Способ активировать сетевой интерфейс при запуске службы. + B) `systemd` слушает сетевой сокет от имени службы и запускает её только при поступлении первого соединения. + C) Процесс привязки службы к конкретному IP-адресу и порту. + D) Механизм защиты сокетов с помощью файрвола. + **120. Как посмотреть все зависимости для юнита `multi-user.target`?** + A) `systemctl show-deps multi-user.target` + B) `systemctl depends multi-user.target` + C) `systemctl list-dependencies multi-user.target` + D) `systemctl graph multi-user.target` --- ### Анкета: Запуск и завершение системы (systemd, targets, runlevels) #### 🟡 Уровень 2: Продвинутый пользователь + **121. Что пришло на смену "уровням запуска" (runlevels) из SysVinit в `systemd`?** + A) Цели (targets) + B) Службы (services) + C) Режимы (modes) + D) Состояния (states) + **122. Какая цель (target) в `systemd` соответствует многопользовательскому режиму с поддержкой сети, но без графического интерфейса?** + A) `graphical.target` + B) `network.target` + C) `multi-user.target` + D) `rescue.target` + **123. Как переключиться в режим восстановления (rescue mode) в работающей системе?** + A) `systemctl rescue` + B) `systemctl isolate rescue.target` + C) `reboot --rescue` + D) `telinit 1` #### 🔴 Уровень 3: Эксперт + **124. Каков первый процесс, который ядро запускает в пользовательском пространстве в большинстве современных дистрибутивов Linux?** + A) `/sbin/init` (который обычно является ссылкой на `systemd`) + B) `/bin/bash` + C) `/etc/rc.local` + D) `/usr/bin/kdm` + **125. В чем основная идея параллельного запуска служб в `systemd` в отличие от последовательного в SysVinit?** + A) `systemd` запускает службы на разных ядрах процессора. + B) `systemd` анализирует зависимости и запускает службы, не зависящие друг от друга, одновременно, ускоряя загрузку. + C) `systemd` создаёт копии служб и запускает их параллельно. + D) `systemd` использует предзагрузку служб в память. + **126. Как изменить цель по умолчанию, в которую загружается система?** + A) Отредактировать файл `/etc/inittab`. + B) Использовать команду `systemctl set-default graphical.target`. + C) Изменить параметр ядра `systemd.default_target=graphical.target`. + D) Создать файл `/etc/systemd/default.target`. --- ### Анкета: Планировщики задач (cron, at, systemd timers) #### 🟢 Уровень 1: Основы + **127. Какая команда используется для редактирования `crontab` текущего пользователя?** + A) `cron -e` + B) `crontab -edit` + C) `crontab -e` + D) `edit cron` + **128. Что означает запись `* * * * * command` в `crontab`?** + A) Выполнять `command` один раз в час. + B) Выполнять `command` каждую минуту. + C) Выполнять `command` один раз в день. + D) Выполнять `command` при каждой загрузке. + **129. Для чего предназначена команда `at`?** + A) Для выполнения команды в определённое время в будущем, но только один раз. + B) Для измерения времени выполнения другой команды. + C) Для повторения команды через заданные интервалы. + D) Для просмотра запланированных задач. #### 🟢🟢 Уровень 2: Продвинутый пользователь + **130. Как будет интерпретироваться запись `0 3 * * 1 /scripts/backup.sh`?** + A) Каждый понедельник в 3:00 ночи. + B) Первого числа каждого месяца в 3:00 ночи. + C) Каждый день в 1:03 ночи. + D) Каждый понедельник в полночь и в 3:00. + **131. В чем преимущество использования `systemd timers` по сравнению с `cron`?** + A) Они имеют более простой синтаксис. + B) Они интегрированы с `systemd`, что даёт лучшее логирование и управление зависимостями. + C) Они могут запускать задачи чаще, чем раз в минуту. + D) Они не требуют прав `root`. + **132. Где находится системный `crontab` и файлы для `cron.d`?** + A) `/var/cron` + B) `/etc/crontab` и `/etc/cron.d/` + C) `/usr/lib/cron/` + D) `~/.crontab` #### 🟢🟢🟢 Уровень 3: Эксперт + **133. Что такое `anacron`?** + A) Альтернативный, более современный планировщик, заменяющий `cron`. + B) Планировщик, который выполняет пропущенные задачи `cron` при включении системы, если она была выключена во время их планового запуска. * C) Утилита для анализа и отладки `crontab`. + D) Сетевая версия `cron`. + **134. Как запустить скрипт `/opt/cleanup.sh` в 17:00 сегодня с помощью `at`?** + A) `at 17:00 < /opt/cleanup.sh` + B) `echo "/opt/cleanup.sh" | at 17:00` + C) `at run /opt/cleanup.sh at 17:00` + D) `at 17:00 -f /opt/cleanup.sh` + **135. Что определяет опция `OnCalendar=` в unit-файле `systemd.timer`?** + A) Календарь, который нужно использовать для определения даты. + B) Время и дату для запуска задачи, аналогично синтаксису `crontab`. + C) Дату, когда таймер должен быть автоматически удалён. + D) Путь к файлу календаря с событиями. --- ### Анкета: Системные журналы и логи #### 🟡 Уровень 2: Продвинутый пользователь + **136. Какая команда используется для просмотра логов, собранных `systemd-journald`?** + A) `cat /var/log/syslog` + B) `logread` + C) `journalctl` + D) `dmesg` + **137. Как с помощью `journalctl` посмотреть логи только от службы `sshd`?** + A) `journalctl | grep sshd` + B) `journalctl -u sshd` + C) `journalctl --unit=sshd` + D) `journalctl /units/sshd` + **138. Для чего используется `logrotate`?** + A) Для просмотра логов в реальном времени. + B) Для автоматического управления файлами логов: их ротации, сжатия и удаления. + C) Для отправки логов на удалённый сервер. + D) Для шифрования лог-файлов. #### 🔴 Уровень 3: Эксперт + **139. Что делает команда `journalctl -f`?** + A) Форматирует вывод лога в удобном виде. + B) Показывает только фатальные (fatal) ошибки. + C) Показывает последние записи в журнале и продолжает выводить новые по мере их поступления (аналог `tail -f`). + D) Ищет (find) записи по шаблону. + **140. В чем ключевое отличие `journald` от традиционного `syslog`?** + A) `journald` хранит логи в структурированном бинарном формате, а не в простом тексте. + B) `journald` не может отправлять логи по сети. + C) `journald` хранит логи только в оперативной памяти. + D) `syslog` может собирать логи только от ядра. + **141. Какая команда выведет сообщения ядра, записанные с момента последней загрузки?** + A) `journalctl -k` (или `dmesg`) + B) `journalctl --system` + C) `journalctl -p err` + D) `cat /var/log/kernel.log` --- ### Анкета: Безопасность и аудит #### 🟡 Уровень 2: Продвинутый пользователь + **142. Какой файл содержит информацию о том, кто, когда и откуда входил в систему?** + A) `/var/log/auth.log` (или `/var/log/secure`) + B) `/etc/passwd` + C) `~/.bash_history` + D) `/var/log/messages` + **143. Для чего используется команда `last`?** + A) Для просмотра последнего запущенного процесса. + B) Для отображения истории последних входов пользователей в систему. + C) Для просмотра последней строки в лог-файле. + D) Для поиска последнего измененного файла. + **144. Где по умолчанию логируются попытки использования `sudo`?** + A) В `~/.sudo_history`. + B) В `/var/log/sudo.log`. + C) В системном журнале, обычно в `/var/log/auth.log` или в журнале `systemd`. + D) Логи `sudo` не ведутся по умолчанию. #### 🔴 Уровень 3: Эксперт + **145. Что такое `fail2ban`?** + A) Утилита для поиска вирусов. + B) Файрвол, блокирующий все входящие соединения. + C) Служба, которая анализирует логи и блокирует IP-адреса, с которых производятся подозрительные действия (например, подбор пароля). + D) Система двухфакторной аутентификации. + **146. Для чего предназначена подсистема `auditd`?** + A) Для аудита производительности системы. + B) Для записи подробной информации о событиях, связанных с безопасностью, на уровне системных вызовов. + C) Для проверки целостности системных файлов. + D) Для управления пользователями и группами. + **147. Что делает команда `ausearch -k mykey`?** + A) Ищет в системе ключ шифрования с именем `mykey`. + B) Ищет в логах аудита события, помеченные ключом `mykey` в правилах `auditd`. + C) Ищет SSH-ключ `mykey`. + D) Ищет в логах все события, связанные с нажатием клавиш. --- ### Анкета: Управление доступом (sudo, su, capabilities) #### 🟡 Уровень 2: Продвинутый пользователь + **148. Какая команда позволяет выполнить `apt update` от имени `root`, не входя в его сессию?** + A) `su "apt update"` + B) `root apt update` + C) `sudo apt update` + D) `runas root apt update` + **149. В чем разница между `su` и `su -`?** + A) `su -` требует пароль, а `su` нет. + B) `su` просто меняет пользователя, а `su -` запускает полноценную сессию входа (login shell) с окружением целевого пользователя. + C) `su` переключает на `root`, а `su -` — на любого другого пользователя. + D) `su -` — это устаревшая форма команды `su`. + **150. Какой файл используется для настройки прав `sudo`?** + A) `/etc/sudo.conf` + B) `/etc/sudoers` + C) `/etc/passwd` + D) `~/.sudoers` #### 🔴 Уровень 3: Эксперт + **151. Что такое "Linux capabilities"?** + A) Список возможностей, которые поддерживает текущая версия ядра. + B) Механизм, который делит всемогущество `root` на отдельные привилегии, которые можно назначать процессам. + C) Утилита для измерения производительности системы. + D) Набор плагинов для расширения функциональности `sudo`. + **152. Как разрешить пользователю `user1` выполнять команду `/sbin/reboot` без пароля через `sudo`?** + A) Добавить в `/etc/sudoers` строку: `user1 ALL=(ALL) /sbin/reboot` + B) Добавить в `/etc/sudoers` строку: `user1 ALL=(ALL) NOPASSWD: /sbin/reboot` + C) Добавить `user1` в группу `reboot`. + D) Установить SUID-бит на `/sbin/reboot` и сделать `user1` его владельцем. + **153. Зачем использовать `visudo` для редактирования `/etc/sudoers`?** + A) `visudo` предоставляет графический интерфейс. + B) `visudo` автоматически делает резервные копии. + C) `visudo` проверяет синтаксис файла перед сохранением, чтобы не заблокировать систему. + D) `visudo` позволяет редактировать файл без прав `root`. --- ## 🌐 Сеть и взаимодействие ### Анкета: Настройка физических интерфейсов #### 🟡 Уровень 2: Продвинутый пользователь + **154. Какая современная команда используется для просмотра IP-адресов на всех интерфейсах?** + A) `ifconfig` + B) `netstat -i` + C) `ip addr show` + D) `ipconfig` + **155. Как временно добавить IP-адрес `192.168.1.100/24` на интерфейс `eth0`?** + A) `ifconfig eth0 add 192.168.1.100/24` + B) `ip addr add 192.168.1.100/24 dev eth0` + C) `net link add 192.168.1.100/24 dev eth0` + D) `echo "192.168.1.100/24" > /sys/class/net/eth0/address` + **156. Какая команда покажет текущую таблицу маршрутизации?** + A) `ip route show` (или `route -n`) + B) `ip forward list` + C) `netstat -r` + D) `ip gateway list` #### 🔴 Уровень 3: Эксперт + **157. Как изменить MTU (Maximum Transmission Unit) для интерфейса `eth1` на 1492?** + A) `ip link set mtu 1492 dev eth1` + B) `ip addr change mtu 1492 dev eth1` + C) `ifconfig eth1 mtu 1492` + D) `ethtool -S eth1 mtu 1492` + **158. Что такое `default route` (маршрут по умолчанию)?** + A) Маршрут к локальной сети. + B) Маршрут, который используется для пакетов, если для их адреса назначения нет более конкретного маршрута в таблице. + C) Маршрут к DNS-серверу. + D) Первый маршрут, добавляемый в таблицу при загрузке. + **159. Какая команда удалит маршрут по умолчанию через шлюз `192.168.1.1`?** + A) `ip route flush 192.168.1.1` + B) `ip route del default` + C) `ip route del 0/0 via 192.168.1.1` + D) `route del default gw 192.168.1.1` --- ### Анкета: Настройка виртуальных интерфейсов #### 🔴 Уровень 3: Эксперт + **160. Что такое `bridge` (сетевой мост) в Linux?** + A) Виртуальный сетевой интерфейс для соединения двух хостов. + B) Виртуальный коммутатор (switch), который объединяет несколько сетевых интерфейсов в один сегмент L2. + C) Устройство для преобразования IP-адресов (NAT). + D) Тип VPN-туннеля. + **161. Для чего используется `bonding` (агрегация каналов)?** + A) Для объединения нескольких физических интерфейсов в один логический для повышения отказоустойчивости или пропускной способности. + B) Для привязки IP-адреса к MAC-адресу. + C) Для создания виртуальных копий одного физического интерфейса. + D) Для разделения одного физического интерфейса на несколько виртуальных (VLAN). + **162. Что такое пара интерфейсов `veth` (Virtual Ethernet)?** + A) Два виртуальных интерфейса, подключенных друг к другу как патч-корд, используемые для соединения сетевых пространств имён (network namespaces). + B) Интерфейс для связи виртуальной машины с хостом. + C) Виртуальный интерфейс, который отбрасывает весь трафик. + D) Интерфейс для создания VLAN. --- ### Анкета: Управление маршрутизацией #### 🔴 Уровень 3: Эксперт + **163. Что такое `policy-based routing`?** + A) Маршрутизация на основе политик безопасности файрвола. + B) Маршрутизация пакетов на основе правил, которые могут учитывать не только адрес назначения, но и адрес источника, порт и т.д. + C) Динамическая маршрутизация с использованием протоколов OSPF или BGP. + D) Маршрутизация, которая меняется в зависимости от времени суток. + **164. Какая команда используется для управления правилами в `policy-based routing`?** + A) `ip route` + B) `ip rule` + C) `ip policy` + D) `iptables -t route` + **165. Что делает команда `ip route add 10.0.0.0/8 via 192.168.0.1`?** + A) Добавляет маршрут по умолчанию. + B) Добавляет маршрут для сети `10.0.0.0/8` через шлюз `192.168.0.1`. + C) Добавляет IP-адрес `10.0.0.1` на интерфейс со шлюзом `192.168.0.1`. + D) Запрещает весь трафик в сеть `10.0.0.0/8`. --- ### Анкета: Firewall и фильтрация трафика #### 🟡 Уровень 2: Продвинутый пользователь + **166. Каковы три основные предопределенные цепочки в таблице `filter` `iptables`?** + A) `ACCEPT`, `DROP`, `REJECT` + B) `IN`, `OUT`, `FORWARD` + C) `INPUT`, `OUTPUT`, `FORWARD` + D) `PRE_ROUTING`, `POST_ROUTING`, `ROUTING` + **167. В чем разница между `DROP` и `REJECT` в `iptables`?** + A) `DROP` тихо отбрасывает пакет, `REJECT` отбрасывает и отправляет в ответ сообщение об ошибке (например, `port unreachable`). + B) `DROP` блокирует, а `REJECT` перенаправляет трафик. + C) `DROP` используется для TCP, `REJECT` — для UDP. + D) Разницы нет, это синонимы. + **168. Что такое `firewalld`?** + A) Старая утилита для управления `iptables`. + B) Динамический менеджер файрвола с поддержкой "зон" для управления правилами. + C) Аппаратный файрвол для Linux-серверов. + D) Утилита для тестирования правил файрвола. #### 🔴 Уровень 3: Эксперт + **169. Что такое `nftables`?** + A) Новая система фильтрации пакетов, пришедшая на смену `iptables`. + B) Таблица в `iptables` для NAT. + C) Утилита для создания сетевых туннелей. + D) База данных для хранения правил файрвола. + **170. Какая цепочка `iptables` обрабатывает пакеты, которые предназначены для самого хоста?** + A) `PREROUTING` + B) `POSTROUTING` + C) `FORWARD` + D) `INPUT` + **171. Для чего используется `conntrack` (connection tracking)?** + A) Для отслеживания маршрутов к другим хостам. + B) Для отслеживания состояния сетевых соединений (например, `NEW`, `ESTABLISHED`, `RELATED`), что позволяет создавать stateful-файрвол. + C) Для подсчета количества пакетов, проходящих через интерфейс. + D) Для отслеживания физических подключений к коммутатору. --- ### Анкета: Диагностика сети #### 🟡 Уровень 2: Продвинутый пользователь + **172. Какая команда используется для проверки доступности хоста по IP-адресу или имени, отправляя ICMP-запросы?** + A) `netstat` + B) `traceroute` + C) `ping` + D) `ss` + **173. Для чего нужна утилита `traceroute` (или `tracepath`)?** + A) Для отслеживания маршрута (последовательности маршрутизаторов), который проходят пакеты до указанного хоста. + B) Для измерения скорости сетевого соединения. + C) Для сканирования открытых портов на хосте. + D) Для просмотра таблицы маршрутизации. + **174. Какая современная команда пришла на смену `netstat` для просмотра сетевых сокетов?** + A) `socket` + B) `ip socket` + C) `nstat` + D) `ss` #### 🔴 Уровень 3: Эксперт + **175. Каково назначение `tcpdump`?** + A) Для сброса (dump) TCP-соединений. + B) Для анализатора сетевого трафика, который позволяет перехватывать и отображать пакеты, проходящие через сетевой интерфейс. + C) Для создания TCP-туннелей. + D) Для вывода статистики по TCP-протоколу. + **176. Что показывает команда `ss -ltn`?** + A) Все установленные TCP-соединения. + B) Все TCP-сокеты в состоянии прослушивания (LISTEN), с отображением числовых портов и без разрешения имён. + C) Все UDP-сокеты. + D) Все сетевые туннели. + **177. Как с помощью `nmap` проверить, открыт ли TCP-порт 80 на хосте `example.com`?** + A) `nmap -p 80 example.com` + B) `nmap -check 80 example.com` + C) `nmap example.com | grep 80` + D) `nmap --port 80 --host example.com` --- ## 💾 Хранилище и файловые системы ### Анкета: Работа с файловыми системами #### 🟡 Уровень 2: Продвинутый пользователь + **178. Какая команда используется для монтирования файловой системы?** + A) `attach` + B) `connect` + C) `mount` + D) `fsck` + **179. Каково назначение файла `/etc/fstab`?** + A) Он содержит таблицу статических маршрутов. + B) Он содержит информацию о файловых системах и их точках монтирования, которые монтируются автоматически при загрузке. + C) Это скрипт для проверки файловых систем. + D) Он содержит список всех файлов в системе. + **180. Что делает команда `umount /mnt/data`?** + A) Форматирует устройство, смонтированное в `/mnt/data`. + B) Отмонтирует файловую систему от каталога `/mnt/data`. + C) Удаляет каталог `/mnt/data`. + D) Проверяет файловую систему на ошибки. #### 🔴 Уровень 3: Эксперт + **181. Что такое "ленивое" отмонтирование (`umount -l`)?** + A) Отмонтирование происходит с задержкой в несколько секунд. + B) Файловая система немедленно отсоединяется от иерархии, но остаётся занятой, пока все процессы, использующие её, не завершатся. + C) Отмонтируется только часть файловой системы. + D) Команда возвращает управление сразу, а отмонтирование происходит в фоновом режиме. + **182. Как перемонтировать файловую систему в режим "только для чтения" (read-only)?** + A) `mount -o remount,ro /path` + B) `remount ro /path` + C) `mount --change --readonly /path` + D) `fsck -r /path` + **183. Что такое `bind mount`?** + A) Монтирование файловой системы, защищенной паролем. + B) Монтирование одного каталога в другой каталог, делая его содержимое доступным по двум путям. + C) Монтирование сетевой файловой системы. + D) Монтирование зашифрованного раздела. --- ### Анкета: Работа с памятью и свопом #### 🟡 Уровень 2: Продвинутый пользователь + **184. Какая команда показывает информацию об использовании оперативной памяти и swap-раздела?** + A) `mem` + B) `top` + C) `free` + D) `vmstat` + **185. Что такое `swap` (своп) в Linux?** + A) Область на диске, используемая как виртуальное расширение оперативной памяти (RAM). + B) Быстрый кэш для часто используемых файлов. + C) Временный раздел для хранения загрузочных файлов. + D) Процесс обмена данными между ядром и пользовательским пространством. + **186. Как включить swap-файл `/swapfile`?** + A) `swapon /swapfile` + B) `mount /swapfile` + C) `swap enable /swapfile` + D) `mkswap /swapfile && activate` #### 🔴 Уровень 3: Эксперт + **187. Что показывает столбец `buff/cache` в выводе команды `free`?** + A) Память, используемую ядром для собственных нужд. + B) Память, используемую для дискового кэша (page cache) и буферов, которая может быть освобождена при необходимости. + C) Память, которая зарезервирована, но еще не используется. + D) Память, выделенную под swap. + **188. Для чего используется параметр ядра `swappiness`?** + A) Он определяет, насколько "охотно" ядро будет сбрасывать данные из оперативной памяти в swap. + B) Он задает максимальный размер swap-раздела. + C) Он включает или выключает использование swap. + D) Он задает приоритет использования разных swap-разделов. + **189. Что такое OOM Killer (Out of Memory Killer)?** + A) Утилита для очистки оперативной памяти. + B) Механизм ядра, который при нехватке памяти принудительно завершает процессы, чтобы освободить память. + C) Вирус, который потребляет всю доступную память. + D) Процесс, который отслеживает утечки памяти в приложениях. --- ## 📈 Наблюдение и оптимизация ### Анкета: Мониторинг ресурсов #### 🟢 Уровень 1: Основы + **190. Какая интерактивная утилита в реальном времени показывает список процессов, отсортированных по использованию CPU?** + A) `ps` + B) `free` + C) `top` (или `htop`) + D) `df` + **191. Какая команда показывает использование дискового пространства файловыми системами?** + A) `du` + B) `df` + C) `ls -l` + D) `free` + **192. Для чего нужна команда `du -sh /path/to/dir`?** + A) Чтобы показать количество файлов в каталоге. + B) Чтобы показать права доступа к каталогу. + C) Чтобы показать суммарный размер каталога `/path/to/dir` в удобном для чтения формате. + D) Чтобы показать свободное место в разделе, где находится каталог. #### 🟢🟢 Уровень 2: Продвинутый пользователь + **193. Что такое `iostat`?** + A) Утилита для мониторинга статистики ввода-вывода (чтения/записи) для дисковых устройств. + B) Утилита для мониторинга состояния сетевых интерфейсов. + C) Утилита для вывода информации об inode. + D) Утилита для измерения производительности CPU. + **194. Какая утилита предоставляет подробную информацию о статистике виртуальной памяти, процессов, прерываний, дискового ввода-вывода и CPU?** + A) `free` + B) `vmstat` + C) `meminfo` + D) `cpustat` + **195. В чем основное преимущество `htop` перед `top`?** + A) `htop` потребляет меньше ресурсов. + B) `htop` предустановлен во всех системах. * C) `htop` предоставляет более удобный и интерактивный интерфейс с цветной подсветкой, прокруткой и управлением процессами. + D) `htop` может показывать только процессы текущего пользователя. #### 🟢🟢🟢 Уровень 3: Эксперт + **196. Что означает `wa` (IO-wait) в выводе `top` или `vmstat`?** + A) Процент времени, в течение которого CPU простаивал, ожидая завершения операций ввода-вывода. + B) Процент времени, потраченный на ожидание ответа от сети. + C) Количество процессов, ожидающих своей очереди на выполнение. + D) Среднее время ожидания для завершенных процессов. + **197. Для чего используется `sar` (System Activity Reporter)?** + A) Для сбора, отчета и сохранения информации о системной активности (CPU, память, I/O) за длительный период. + B) Для отправки отчетов о сбоях системы разработчикам. + C) Для архивации системных логов. + D) Для поиска файлов в системе по их активности. + **198. Что делает команда `watch df -h`?** + A) Делает снимок вывода `df -h` и сохраняет его в файл. + B) Запускает `df -h` каждые 2 секунды (по умолчанию) и выводит результат на экран, позволяя наблюдать за изменениями. + C) Отслеживает изменения в файловой системе и запускает `df -h` при каждом изменении. + D) Запускает `df -h` в фоновом режиме. --- ### Анкета: Производительность #### 🟡 Уровень 2: Продвинутый пользователь + **199. Что такое `Load Average`?** + A) Средняя загрузка процессора в процентах за последние 1, 5 и 15 минут. + B) Среднее количество процессов в очереди на выполнение (или ожидающих I/O) за 1, 5 и 15 минут. + C) Средняя температура процессора. + D) Среднее использование оперативной памяти. + **200. Для чего используются команды `nice` и `renice`?** + A) Для установки "хорошего" имени для процесса. + B) Для изменения приоритета планировщика для новых (`nice`) или уже запущенных (`renice`) процессов. + C) Для проверки состояния процесса. + D) Для ограничения ресурсов, которые может использовать процесс. + **201. Что означает, если `Load Average` на 4-ядерном процессоре равен 4.0?** + A) Система перегружена, не хватает ресурсов. + B) Система простаивает. + C) Все ядра процессора полностью утилизированы, но очереди на выполнение нет. + D) Два из четырех ядер полностью загружены. #### 🔴 Уровень 3: Эксперт + **202. Какой инструмент позволяет трассировать системные вызовы и сигналы, получаемые процессом?** + A) `gdb` + B) `ltrace` + C) `strace` + D) `perf` + **203. Для чего используется команда `lsof`?** + A) Для вывода списка открытых файлов (List Open Files), включая сетевые сокеты, каналы и т.д. + B) Для поиска файлов по их содержимому. + C) Для блокировки файла от изменений. + D) Для вывода списка "мягких" (символических) ссылок. + **204. Что делает команда `dmesg`?** + A) Выводит сообщения из буфера сообщений ядра, что полезно для диагностики проблем с оборудованием и драйверами. + B) Показывает сообщения, отправленные другим пользователям. + C) Выводит отладочную информацию из запущенных приложений. + D) Форматирует и выводит системный журнал. --- ## 🧩 Изоляция и управление ресурсами ### Анкета: Namespaces и cgroups #### 🔴 Уровень 3: Эксперт + **205. Что такое `namespaces` (пространства имён) в ядре Linux?** + A) Механизм для организации файлов в каталоги. + B) Механизм изоляции, который позволяет процессам иметь собственный, отдельный от других, набор глобальных системных ресурсов (например, PID, сеть, точки монтирования). + C) Система именования переменных в ядре. + D) Способ управления доступом пользователей к файлам. + **206. Каково основное назначение `cgroups` (контрольных групп)?** + A) Для группировки пользователей с одинаковыми правами. + B) Для организации процессов в иерархические группы, а также для ограничения и учёта использования ресурсов (CPU, память, I/O) этими группами. + C) Для создания виртуальных сетевых интерфейсов. + D) Для контроля версий конфигурационных файлов. + **207. Какие два механизма ядра лежат в основе большинства современных систем контейнеризации, таких как Docker?** + A) `iptables` и `SELinux` + B) `namespaces` и `cgroups` + C) `KVM` и `QEMU` + D) `systemd` и `udev` --- ### Анкета: Контейнеризация #### 🟡 Уровень 2: Продвинутый пользователь + **208. Что такое `Docker`?** + A) Система виртуализации, эмулирующая аппаратное обеспечение. + B) Платформа для разработки, доставки и запуска приложений в контейнерах. + C) Система управления конфигурациями, аналог Ansible. + D) Менеджер пакетов для Linux. + **209. В чем ключевое отличие контейнера от виртуальной машины?** + A) Контейнер работает быстрее, но менее безопасен. + B) Контейнеры виртуализируют операционную систему, используя ядро хоста, а виртуальные машины эмулируют целое аппаратное обеспечение и запускают свою собственную ОС. + C) Виртуальные машины используют меньше дискового пространства. + D) Контейнеры не могут работать с сетью, в отличие от ВМ. + **210. Что такое "образ" (image) в Docker?** + A) Запущенный экземпляр контейнера. + B) Снимок состояния оперативной памяти контейнера. + C) Шаблон только для чтения с инструкциями для создания контейнера. + D) Файл резервной копии контейнера. #### 🔴 Уровень 3: Эксперт + **211. Что такое `Podman` и чем он отличается от `Docker`?** + A) `Podman` — это графический интерфейс для `Docker`. + B) `Podman` — это инструмент для управления контейнерами, который не требует центрального демона и может работать без прав `root`. + C) `Podman` — это форк `Docker`, разработанный Microsoft. + D) `Podman` используется для оркестрации контейнеров, а `Docker` — для их создания. + **212. Что такое `Dockerfile`?** + A) Файл журнала работающего контейнера Docker. + B) Текстовый файл с инструкциями для автоматической сборки образа Docker. + C) Конфигурационный файл для демона Docker. + D) Скрипт для запуска контейнера. + **213. Какая команда покажет список всех запущенных контейнеров Docker?** + A) `docker list` + B) `docker ps` + C) `docker images` + D) `docker top` --- ### Анкета: Виртуализация #### 🔴 Уровень 3: Эксперт + **214. Что такое `KVM` (Kernel-based Virtual Machine)?** + A) Полноценный гипервизор, работающий как отдельная ОС. + B) Механизм в ядре Linux, который превращает его в гипервизор 1-го типа, используя аппаратную виртуализацию. + C) Эмулятор аппаратного обеспечения, работающий в пользовательском пространстве. + D) Технология контейнеризации. + **215. Какую роль выполняет `QEMU` в связке с `KVM`?** + A) `QEMU` управляет сетевыми подключениями для `KVM`. + B) `KVM` обеспечивает ускорение, а `QEMU` эмулирует аппаратное обеспечение (диски, сетевые карты и т.д.) для виртуальной машины. + C) `QEMU` — это графический интерфейс для `KVM`. + D) `QEMU` не используется вместе с `KVM`. + **216. Что такое `libvirt`?** + A) Драйвер для виртуальных устройств. + B) Библиотека и набор инструментов для унифицированного управления различными технологиями виртуализации (`KVM`, `Xen`, `LXC` и др.). + C) Файловая система для виртуальных машин. * D) Протокол для удалённого доступа к виртуальным машинам. --- ### Анкета: Ограничение и распределение ресурсов #### 🔴 Уровень 3: Эксперт + **217. Как с помощью `systemd` ограничить использование памяти для службы `myservice.service` до 500 МБ?** + A) Добавить в unit-файл опцию `MemoryLimit=500M`. + B) Добавить в unit-файл опцию `MemoryMax=500M`. + C) Добавить в unit-файл опцию `MemoryAccounting=true` и `MemoryHigh=500M`. + D) Добавить в unit-файл опцию `LimitMEM=500M`. + **218. Что делает команда `ulimit -n 1024`?** + A) Ограничивает количество процессов до 1024. + B) Ограничивает использование памяти до 1024 КБ. + C) Ограничивает максимальное количество открытых файловых дескрипторов до 1024 для текущей сессии. + D) Ограничивает размер файла до 1024 байт. + **219. Какой механизм используется для управления ресурсами, выделенными для службы `systemd` или контейнера `docker`?** + A) `nice` + B) `ulimit` + C) `cgroups` (контрольные группы) + D) `namespaces` (пространства имён) --- ## 🔐 Ответы 1. **C** 2. **B** 3. **D** 4. **B** 5. **C** 6. **B** 7. **D** 8. **A** 9. **C** 10. **A** 11. **C** 12. **B** 13. **A** 14. **B** 15. **B** 16. **C** 17. **B** 18. **C** 19. **C** 20. **B** 21. **D** 22. **B** 23. **B** 24. **B** 25. **B** 26. **D** 27. **A** 28. **B** 29. **B** 30. **A** 31. **B** 32. **B** 33. **A** 34. **B** 35. **B** 36. **A** 37. **C** 38. **B** 39. **C** 40. **B** 41. **D** 42. **B** 43. **B** 44. **B** 45. **A** 46. **B** 47. **B** 48. **C** 49. **B** 50. **A** 51. **B** 52. **C** 53. **B** 54. **B** 55. **B** 56. **A** 57. **C** 58. **B** 59. **B** 60. **B** 61. **B** 62. **C** 63. **B** 64. **B** 65. **C** 66. **C** 67. **B** 68. **C** 69. **C** 70. **C** 71. **C** 72. **C** 73. **B** 74. **B** 75. **B** 76. **B** 77. **C** 78. **D** 79. **B** 80. **B** 81. **B** 82. **B** 83. **A** 84. **C** 85. **D** 86. **A** 87. **C** 88. **B** 89. **B** 90. **C** 91. **B** 92. **C** 93. **A** 94. **A** 95. **B** 96. **B** 97. **D** 98. **B** 99. **C** 100. **B** 101. **B** 102. **B** 103. **B** 104. **B** 105. **B** 106. **C** 107. **B** 108. **B** 109. **B** 110. **C** 111. **B** 112. **C** 113. **A** 114. **B** 115. **A** 116. **C** 117. **B** 118. **B** 119. **B** 120. **C** 121. **A** 122. **C** 123. **B** 124. **A** 125. **B** 126. **B** 127. **C** 128. **B** 129. **A** 130. **A** 131. **B** 132. **B** 133. **B** 134. **B** 135. **B** 136. **C** 137. **B** 138. **B** 139. **C** 140. **A** 141. **A** 142. **A** 143. **B** 144. **C** 145. **C** 146. **B** 147. **B** 148. **C** 149. **B** 150. **B** 151. **B** 152. **B** 153. **C** 154. **C** 155. **B** 156. **A** 157. **A** 158. **B** 159. **B** 160. **B** 161. **A** 162. **A** 163. **B** 164. **B** 165. **B** 166. **C** 167. **A** 168. **B** 169. **A** 170. **D** 171. **B** 172. **C** 173. **A** 174. **D** 175. **B** 176. **B** 177. **A** 178. **C** 179. **B** 180. **B** 181. **B** 182. **A** 183. **B** 184. **C** 185. **A** 186. **A** 187. **B** 188. **A** 189. **B** 190. **C** 191. **B** 192. **C** 193. **A** 194. **B** 195. **C** 196. **A** 197. **A** 198. **B** 199. **B** 200. **B** 201. **C** 202. **C** 203. **A** 204. **A** 205. **B** 206. **B** 207. **B** 208. **B** 209. **B** 210. **C** 211. **B** 212. **B** 213. **B** 214. **B** 215. **B** 216. **B** 217. **A** 218. **C** 219. **C**