Вопросы на собеседовании: Системный администратор
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Junior.
Смотреть пример резюме: Системный администратор →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
/ является корнем иерархии файловой системы и содержит все остальные пути либо предоставляет к ним доступ.
- /etc хранит системные файлы конфигурации конкретного компьютера.
- /var хранит изменяемые данные, например журналы, кеши, очереди и файлы состояния.
- /home содержит домашние каталоги и личные файлы обычных пользователей.
- /tmp предназначен для временных файлов и может автоматически очищаться, в том числе при перезагрузке.
Зачем это спрашивают: Эти каталоги разделяют по назначению корневую иерархию, конфигурацию, изменяемые данные, пользовательские данные и временные данные.
Абсолютный путь начинается от корневого каталога, а относительный интерпретируется от текущего рабочего каталога.
- Абсолютный путь начинается с /, например /etc/hosts.
- Относительный путь не начинается с /, например documents/report.txt.
- . обозначает текущий каталог.
- .. обозначает родительский каталог.
Зачем это спрашивают: Один и тот же относительный путь может указывать на разные объекты при смене текущего рабочего каталога.
Первый символ строки ls -l показывает тип объекта файловой системы.
- - означает обычный файл, а d означает каталог.
- l означает символическую ссылку.
- b и c означают блочное и символьное устройства.
- p означает именованный канал, а s означает сокет.
Зачем это спрашивают: Этот символ типа отделен от следующих за ним девяти символов прав доступа.
Жесткая ссылка является еще одной записью каталога для того же inode, а символическая ссылка является отдельным файлом, который хранит путь к целевому объекту.
- Жесткие ссылки используют общий inode и общее содержимое целевого файла.
- Символические ссылки имеют собственный inode и могут указывать на каталоги.
- Жесткая ссылка обычно не может пересекать границы файловых систем, а символическая может.
- Удаление исходного имени не нарушает жесткую ссылку, но может сделать символическую ссылку недействующей.
Зачем это спрашивают: Различие связано с прямой ссылкой на inode и ссылкой на другой путь.
У каждого файла Linux есть один пользователь-владелец и одна группа-владелец, которые учитываются при проверке прав доступа.
- Права владельца применяются, когда обращающийся пользователь является владельцем файла.
- Права группы применяются к подходящим участникам группы файла, если права владельца не применяются.
- Права остальных применяются, если не подходят ни класс владельца, ни класс группы.
Зачем это спрашивают: Владение определяет, какой класс прав пользователя, группы или остальных будет проверен для доступа.
Биты rwx действуют по-разному для обычного файла и каталога.
- Для обычного файла r разрешает читать содержимое, w изменять его, а x выполнять файл как программу.
- Для каталога r разрешает получать список записей, w создавать, удалять или переименовывать записи, а x проходить через каталог и обращаться к записям по имени.
- Для операций с каталогом часто нужны сочетания прав, например r вместе с x для полноценного просмотра списка или w вместе с x для изменения записей.
Зачем это спрашивают: Права каталога управляют именами и проходом по пути, а не чтением, записью или выполнением самого каталога.
Символьная запись chmod указывает, чьи права меняются, какую операцию нужно выполнить и какие биты прав затронуты.
- u, g, o и a выбирают владельца, группу, остальных или все классы.
- + добавляет права, - удаляет их, а = точно задает выбранные права.
- r, w и x обозначают права чтения, записи и выполнения.
- chmod u+x,g-w file добавляет владельцу право выполнения и удаляет у группы право записи.
Зачем это спрашивают: Символьная запись позволяет изменить права, не заменяя несвязанные с изменением биты.
Числовая запись chmod представляет права каждого класса восьмеричной цифрой, полученной сложением значений прав.
- Чтение имеет значение 4, запись 2, а выполнение 1.
- Три цифры обычно обозначают владельца, группу и остальных именно в таком порядке.
- Каждая цифра принимает значение от 0 без прав до 7 с правами чтения, записи и выполнения.
- chmod 640 file дает владельцу rw, группе r, а остальным не дает прав.
Зачем это спрашивают: Восьмеричная запись кодирует сочетание rwx каждого класса одной цифрой.
chown изменяет владельца файла, а chgrp изменяет группу-владельца файла.
- chown user file задает нового пользователя-владельца.
- chown user:group file задает одновременно пользователя-владельца и группу-владельца.
- chgrp group file изменяет только группу-владельца.
Зачем это спрашивают: Эти команды изменяют метаданные владения, а не биты прав rwx.
umask является настройкой процесса, которая удаляет биты прав из базового режима, запрошенного при создании нового файла или каталога.
- Для обычных файлов обычно используется базовый режим 666 без битов выполнения.
- Для каталогов обычно используется базовый режим 777.
- Каждый установленный в umask бит удаляется из соответствующего базового режима.
- При umask 022 обычный результат равен 644 для файлов и 755 для каталогов.
Зачем это спрашивают: Umask ограничивает запрошенные права по умолчанию и не добавляет права, которых нет в базовом режиме.
/etc/passwd хранит открытые данные учетных записей, а /etc/shadow хранит защищенные данные о паролях и сроках их действия.
- Каждая запись /etc/passwd содержит имя пользователя, UID, основной GID, описательное поле, домашний каталог и командную оболочку.
- В поле пароля файла /etc/passwd обычно стоит x, который указывает, что данные о пароле находятся в /etc/shadow.
- /etc/shadow содержит хеш пароля или маркер блокировки входа по паролю, но не пароль в открытом виде.
- /etc/shadow также хранит параметры срока действия пароля и обычно доступен для чтения только привилегированным процессам.
Зачем это спрашивают: Разделение открытых данных учетной записи и защищенных данных аутентификации позволяет обычным программам определять пользователей, не раскрывая хеши паролей.
Группы Linux назначают общий идентификатор и права нескольким пользователям.
- /etc/group обычно содержит имя группы, заполнитель пароля, числовой GID и список дополнительных участников через запятую.
- Основная группа пользователя задается через GID в его записи /etc/passwd, поэтому пользователь может отсутствовать в списке участников /etc/group.
- id показывает UID пользователя, основной GID и дополнительные группы, обычно одновременно в числовом и текстовом виде.
- groups выводит названия групп текущего или указанного пользователя.
Зачем это спрашивают: Основная и дополнительные группы позволяют выдавать общий доступ без отдельной настройки прав для каждого пользователя.
sudo запускает разрешенную команду с правами другого пользователя, а su запускает оболочку или команду от имени другого пользователя.
- sudo обычно проверяет пароль текущего пользователя и применяет правила, настроенные именно для него.
- su обычно требует пароль целевого пользователя и без указания команды открывает оболочку от его имени.
- sudo позволяет разрешить узкий набор административных команд и оставляет более понятный журнал, чем общий пароль root.
- Принцип наименьших привилегий требует выдавать роли только необходимые команды и доступ на необходимый срок.
Зачем это спрашивают: Точные правила sudo уменьшают объем доступных полномочий по сравнению с постоянной работой в неограниченной сессии root.
PID идентифицирует запущенный процесс, а PPID идентифицирует процесс, который создал его или принял как родительский.
- Ядро назначает каждому процессу числовой идентификатор PID.
- Идентификатор родительского процесса PPID отражает связь процессов в их иерархии.
- ps выводит снимок процессов и может показывать PID, PPID, пользователя, состояние, процессорное время и команду.
- Варианты ps -ef, ps aux и ps -o pid,ppid,user,stat,command выбирают разные наборы процессов и форматы вывода.
Зачем это спрашивают: Значения PID и PPID позволяют идентифицировать процессы и понимать их место в иерархии.
Задание переднего плана занимает терминал, а фоновое задание выполняется, не удерживая приглашение оболочки.
- Символ & после команды запускает ее в фоне и сразу возвращает приглашение оболочки.
- jobs выводит задания, которые отслеживает текущая оболочка, включая их номера и состояния.
- bg продолжает остановленное задание в фоне, обычно по номеру задания, например %1.
- fg переводит фоновое или остановленное задание на передний план и снова подключает его к терминалу.
Зачем это спрашивают: Управление заданиями позволяет работать с несколькими командами в одном терминале и отличает номера заданий оболочки от системных PID.
Сигналы являются асинхронными уведомлениями для процессов, а команда kill отправляет эти сигналы.
- SIGTERM, сигнал 15, запрашивает штатное завершение и может быть обработан, чтобы процесс успел корректно закончить работу.
- SIGKILL, сигнал 9, немедленно завершает процесс, и его нельзя перехватить, заблокировать или игнорировать.
- SIGHUP, сигнал 1, исторически сообщает об отключении терминала, а также часто используется для запроса перезагрузки конфигурации.
- По умолчанию kill отправляет SIGTERM, но имя или номер позволяет явно выбрать другой сигнал.
Зачем это спрашивают: Разные сигналы передают разные запросы, поэтому kill не всегда означает немедленное принудительное завершение.
Код завершения является целым числом, с помощью которого команда сообщает оболочке об успехе или виде ошибки.
- По соглашению код 0 означает успех, а ненулевой код означает, что команда не завершилась успешно.
- Специальный параметр $? раскрывается в код завершения последней выполненной команды или конвейера.
- Следующая команда заменяет значение, доступное через $?, поэтому его нужно прочитать или сохранить сразу.
- Конструкции оболочки &&, || и if используют коды завершения для выбора следующей команды или ветви.
Зачем это спрашивают: Коды завершения дают скриптам и интерактивной оболочке стандартный способ принимать решения по результатам команд.
Команды обычно используют три стандартных потока, которые оболочка может соединять с файлами или другими командами.
- Стандартный ввод имеет файловый дескриптор 0 и обычно получает данные из терминала.
- Стандартный вывод имеет дескриптор 1 для обычных результатов, а стандартный поток ошибок имеет дескриптор 2 для ошибок и диагностических сообщений.
- Операторы <, >, >> и 2> перенаправляют ввод, заменяют вывод, дописывают вывод или перенаправляют ошибки.
- Конвейер | соединяет стандартный вывод команды слева со стандартным вводом команды справа.
Зачем это спрашивают: Раздельные потоки и соединения оболочки позволяют комбинировать небольшие команды и отделять обычные результаты от диагностических сообщений.
Переменная оболочки принадлежит текущей оболочке, а экспортированная переменная окружения наследуется дочерними процессами.
- Присваивание NAME=value создает или обновляет переменную в текущей оболочке.
- export NAME или export NAME=value помечает переменную для включения в окружение команд, которые будут запущены после этого.
- Дочерние процессы наследуют копии экспортированных значений, но не получают неэкспортированные переменные оболочки.
- Дочерний процесс не может напрямую изменить переменную или значение окружения в родительской оболочке.
Зачем это спрашивают: Экспорт определяет, какие значения оболочки пересекают границу процесса и попадают в запущенные из нее программы.
Кавычки и экранирование определяют, какие символы оболочка интерпретирует перед передачей аргументов команде.
- Одинарные кавычки сохраняют каждый символ внутри них буквально до закрывающей одинарной кавычки.
- Двойные кавычки сохраняют пробелы и символы шаблонов, но допускают раскрытие переменных и подстановку команд.
- Обратная косая черта снимает специальное значение следующего символа там, где это допускают правила кавычек оболочки.
- Незаключенные в кавычки шаблоны, например *.log, оболочка раскрывает в подходящие имена путей до запуска команды.
Зачем это спрашивают: Правильные кавычки определяют, передаст ли оболочка текст буквально или преобразует его с помощью раскрытия.
Закрытые вопросы
- 21
Что такое шебанг, бит исполнения, позиционные аргументы и код завершения Bash-скрипта?
bashscripting - 22
Что делают apt update, apt install, apt remove и apt upgrade в Debian и Ubuntu?
packages - 23
Какие роли выполняют DNF, YUM и RPM в Linux-системах семейства RHEL?
linuxpackagessystem-design - 24
Что такое репозитории пакетов, метаданные репозитория и подписи пакетов?
- 25
Что такое юниты и сервисные юниты systemd и что делают основные команды systemctl для сервисов?
linuxsystem-design - 26
Чем systemctl enable и disable отличаются от запуска и остановки службы?
linuxsystem-design - 27
Что такое цели systemd и что означают After, Requires и Wants в зависимостях юнитов?
dependencieslinuxsystem-design - 28
Как journalctl фильтрует записи журнала systemd по юниту, загрузке, времени и приоритету?
linuxloggingsystem-design - 29
Что представляют собой традиционные файлы в /var/log и для чего нужен logrotate?
- 30
Что обозначают IPv4-адрес, префикс подсети и шлюз по умолчанию?
gatewaynetworkingip-addressing - 31
Чем различаются частные, публичные и loopback-адреса IPv4?
- 32
Каковы основные различия между TCP и UDP и где обычно применяется каждый протокол?
networkingprotocols - 33
Что такое порты и слушающие сокеты и как их можно посмотреть в Linux?
linux - 34
Что делает DNS-резолвер и какие данные хранят записи A, AAAA, CNAME, MX и PTR?
dnsnetwork-services - 35
Что такое аренда DHCP и какие основные сетевые параметры обычно выдаёт DHCP?
network-services - 36
Что такое SSH и как идентификация сервера и аутентификация пользователя связаны с SSH-соединением?
sshremote-accessauth - 37
Как работают открытый и закрытый SSH-ключи пользователя и какие права должны защищать их файлы?
sshremote-accesspermissions - 38
Чем управляет sshd_config и какие базовые настройки делают доступ по SSH безопаснее?
sshremote-access - 39
Что делает межсетевой экран хоста и как с ним связаны правила с отслеживанием состояния, UFW и firewalld?
network-securitynetworking - 40
Как устроена пользовательская запись cron и что нужно знать о её окружении и выводе?
cronscheduling - 41
В чём основное различие между таймерами systemd и заданиями cron?
linuxcronscheduling - 42
Что такое блочные устройства и разделы, и что показывают lsblk и blkid?
partitioning - 43
Что означают создание, монтирование и размонтирование файловой системы?
storage - 44
Какие поля содержит запись /etc/fstab и почему в ней часто используют UUID?
primary-keys - 45
Чем отличаются df и du и что такое исчерпание inode?
storage - 46
Чем отличаются полные и инкрементальные резервные копии и какие базовые правила делают копирование надёжным?
backupsbackup - 47
Чем архив tar отличается от синхронизации с помощью rsync?
linuxbackup - 48
Что такое гипервизор и чем гипервизоры первого типа отличаются от второго типа?
virtualization - 49
Из каких ресурсов состоит виртуальная машина и что такое гостевая операционная система?
system-designvirtualization - 50
Чем снимок виртуальной машины отличается от резервной копии?
backupsbackupvirtualization - 51
После перезагрузки веб-сервис под управлением systemd не запускается. Как вы будете искать причину?
linuxsystem-design - 52
Сервис сообщает об успешном запуске, но через несколько секунд завершается. Что вы проверите?
- 53
Нужно применить изменение конфигурации рабочего сервиса. Как сделать это безопасно?
config - 54
Пользователи жалуются на медленную работу сервера, предположительно из-за высокой нагрузки на процессор. Как вы проведете диагностику?
- 55
На сервере занято много памяти и начала использоваться подкачка. Как вы будете диагностировать нехватку памяти?
memory - 56
Процесс не отвечает, и его необходимо остановить. Как вы поступите?
concurrency - 57
Сервер работает медленно, и вы подозреваете дисковый ввод-вывод. Как провести диагностику базовыми инструментами?
storage - 58
Файловая система заполнена. Как найти источник расхода места, не сканируя посторонние точки монтирования?
storage - 59
На файловой системе есть свободное место, но приложения не могут создавать новые файлы. Как проверить исчерпание inode?
storage - 60
Смонтированная файловая система внезапно перешла в режим только для чтения. Как вы отреагируете?
storage - 61
Linux-сервер внезапно потерял сетевое подключение. Как вы проведете диагностику, не меняя конфигурацию преждевременно?
configlinux - 62
Сервер перестал разрешать имена хостов. Как вы докажете, что проблема связана именно с DNS, и исследуете ее?
dnsnetwork-services - 63
Пользователи не могут подключиться к TCP-порту удаленного приложения, хотя хост отвечает на ping. Как вы найдете место сбоя?
networkingprotocols - 64
SSH-подключение либо сообщает connection refused, либо долго ожидает и завершается по тайм-ауту. Чем будет отличаться ваша диагностика этих симптомов?
sshremote-access - 65
SSH соединяется с сервером, но аутентификация по публичному ключу отклоняется. Как вы безопасно найдете причину?
sshremote-accessauth - 66
Сайт под управлением NGINX недоступен после изменения. В какой последовательности вы будете искать причину?
web-server - 67
NGINX отвечает, но для одного домена отдает не тот сайт. Как вы диагностируете выбор виртуального хоста?
web-server - 68
Linux-хост с DHCP не получает адрес после загрузки. Как вы будете исследовать проблему?
configlinuxnetwork-services - 69
Нужно разрешить доступ к одной новой службе через UFW или firewalld. Как сделать это без лишнего расширения доступа?
network-securitynetworking - 70
Пользователи сообщают о периодических задержках и потере пакетов при доступе к Linux-службе. Как вы соберете полезные данные без дополнительного риска?
latencytroubleshootinglinux - 71
Разработчику нужно перезапускать один сервис приложения на Linux-сервере, но полный доступ администратора ему давать нельзя; как вы создадите учетную запись и выдадите только нужные права?
linux - 72
Сотрудник увольняется сегодня, но в его домашнем каталоге находятся проектные файлы, которые могут понадобиться команде; как вы безопасно отключите доступ?
- 73
Команде нужен общий каталог в Linux, где новые файлы остаются доступными участникам команды, но закрыты для остальных пользователей; как вы его настроите?
configlinux - 74
Пользователь получает Permission denied при открытии /srv/projects/report/data.csv, хотя сам файл выглядит доступным для чтения; как вы найдете причину?
permissions - 75
Скрипт обслуживания должна запускать группа эксплуатации, но изменять его могут только администраторы; как вы установите его и настроите права?
permissions - 76
Вы обнаружили, что права конфигурационного файла случайно изменили на 777; как вы исправите их без догадок?
config - 77
Новый сотрудник прислал вам открытый SSH-ключ для доступа к Linux-серверу; как вы безопасно его добавите?
sshlinuxremote-access - 78
Пользователь, который входил вчера, теперь видит сообщение о блокировке или истечении учетной записи; как вы исследуете проблему и восстановите доступ при наличии разрешения?
- 79
Сканирование показало неожиданный TCP-порт, который прослушивается на Linux-сервере; как вы определите сервис и уменьшите доступность извне?
networkingprotocolslinux - 80
Вам поручили плановые обновления безопасности Linux-сервера; как вы безопасно примените их и решите, нужна ли перезагрузка?
linux - 81
Нужно архивировать журналы приложения старше 14 дней, не затрагивая активные файлы и не перезаписывая существующий архив. Как вы напишете и проверите Bash-скрипт?
bashscripting - 82
Bash-скрипт обслуживания принимает целевой каталог и режим, а затем запускает несколько команд. Как сделать обработку входных данных и ошибок надежной для запуска по расписанию?
scripting - 83
Нужно ежедневно запускать /opt/acme/bin/backup.sh через cron в 02:15. Как настроить cron, чтобы окружение было предсказуемым, вывод сохранялся, а запуски не пересекались?
backupsbackupcron - 84
Команда резервного копирования работает в вашей оболочке, но задание cron не создает копию. Как найти различие, не переписывая скрипт сразу?
backupsbackupcron - 85
Приложение запускается командой /opt/widget/bin/widget-server и должно постоянно работать из /opt/widget под непривилегированной учетной записью. Какой базовый unit systemd вы создадите и как его проверите?
linuxsystem-design - 86
Приложению под управлением systemd нужны параметры базы данных и API-токен, а его unit-файл только что изменился. Как безопасно передать значения и применить изменение?
linuxapidatabase - 87
Приложение непрерывно пишет в /var/log/widget/app.log от пользователя widget. Как настроить logrotate, чтобы хранить и сжимать журналы, но не оставить приложение пишущим в старый файл?
config - 88
В большом текстовом журнале доступа адрес клиента находится в поле 1, а HTTP-статус в поле 9. Как найти самые частые статусы ошибок и адреса клиентов, которые их создают?
http - 89
Мониторинг сообщает о повторных неудачных входах по SSH на Linux-сервер. Как выяснить кто, когда и откуда подключался, сохранив достаточно контекста для эскалации?
monitoringsshlinux - 90
Нужен небольшой playbook Ansible, который устанавливает nginx на нескольких Debian-узлах и обеспечивает его запуск сейчас и после перезагрузки. Как реализовать и проверить это идемпотентно?
ansibleautomationidempotency - 91
К Linux-серверу подключили новый пустой диск, который должен хранить данные приложения. Как вы безопасно подготовите и смонтируете его?
storagelinux - 92
Новая файловая система работает при ручном монтировании, и теперь она должна подключаться после перезагрузки. Что вы сделаете?
storage - 93
После запуска системы отсутствует файловая система, которая должна быть смонтирована. Как вы найдете причину, не рискуя данными?
storage - 94
Нужно настроить через rsync регулярную базовую копию /srv/data на другую смонтированную файловую систему. Как вы сделаете это безопасно?
storagelinuxbackup - 95
Задание резервного копирования завершилось успешно, и вас просят доказать, что файлы действительно восстанавливаются. Что вы сделаете?
backupsbackup - 96
Пользователю нужно восстановить один каталог из большого tar-архива, не перезаписав посторонние рабочие пути. Как вы поступите?
- 97
В команде ежедневно создаются резервные копии, но никто давно не проверял, пригодны ли они. Какую процедуру проверки вы предложите?
backupsbackup - 98
Виртуальная машина нормально загружается, но не может обратиться ни к одному сетевому ресурсу. Как вы локализуете неисправность?
virtualization - 99
Виртуальная машина сообщает, что ее корневая файловая система почти заполнена. Как вы поступите, если может потребоваться дополнительная емкость?
capacitystoragevirtualization - 100
Пользователи сообщают, что production-сервер работает крайне медленно и иногда не отвечает. Опишите первичную системную диагностику.
system-design