Системный администратор линукс собеседование

KAZARIN OnLine

Blog about IT, Me, education, etc…

Вопросы для собеседования Системного администратора или DevOps инженера Linux. Часть 3. Medium Linux Questions — 1

Всем привет! В прошлой статье мы продолжили разбор статьи с GitHub — Linux System Administrator/DevOps Interview Questions.
Сегодня будет пачка вопрос из раздела «Средние» — экзамен на звание Middle Linux administrator. Так как в оригинальной статье этот блок вышел довольно объемным (49 вопросов), я решил разбить его на 2 части (29 и 30 соответственно).

Вопросы среднего уровня сложности / Medium Linux Questions

1. Что делают следующие команды и как вы можете их использовать? (What do the following commands do and how would you use them?): tee, awk, tr, cut, tac, curl, wget, watch, head, tail

  • tee — читает со стандартного ввода (stdin) и выводит на стандартный вывод (stdout) и в указанный файл. Очень удобно когда вашему скрипту нужно и лог писать, и интерактивно сообщения на экран отправлять
  • awk — потоковый редактор который помогает управлять текстом при выводе. Я например использую его для удобного оперирования многоколоночным текстом.
  • tr — утилита для управления символами во входящем потоке текста. Подставлять или удаляет указанные символы
  • cut — утилита обработки текста, позволяющая выбирать колонки из текста или поля из строки
  • tac — команда, обратная команде cat — выводит файл (или конкатенацию файлов) но задом-наперед
  • curl клиентская программа для взаимодействия с серверами, поддерживающими формат url обращений, обычно веб серверами. Лично я применяю ее как консольный клиент для работы с веб серверами- проверить доступность, статус, дернуть api и тд.
  • wget — утилита для сетевой загрузки файлов.
  • watch — утилита позволяющая отслеживать вывод не интерактивной программы, запуская ее многократно, с указанным интервалом времени. Удобно когда вы хотите посмотреть какой то процесс в динамике — например “watch cat /proc/mdstat”
  • head — утилита обработки текста. Вывод указанное число строк с начала файла
  • tail утилита обработки текста. Вывод указанное число строк с конца файла. Может работать в режиме постоянного чтения и вывода на экран информации, дописываемой другим процессом в конец файла. Удобно смотреть логи в режиме реального времени

2. Что сделает символ &, введенный сразу после команды? (What does an & after a command do?)

Автоматически отправляет команду работать в виде фонового процесса Вашей текущей сессии. Посмотреть список таких процессов можно командой jobs, вернуть назад при помощи команды fg:

$ ping ya .ru > / dev / null &

3. Что такое пакетный фильтр и как он работает? (What is a packet filter and how does it work?)

Пакетный фильтр — обобщенное название системы фильтрации трафика в linux-based операционных системах. Подсистема ядра, занимающаяся анализом и обработкой всех входящих сетевых пакетов заданным администратором правилам. Трафик либо пропускается, либо отбрасывается, либо каким-то образом маршрутизируется, либо логируется. Так же возможны некоторые комбинации этих действий.

4. Что такое виртуальная память? (What is Virtual Memory?)

Метод управления памятью, позволяющий выделить процессу памяти больше, чем на самом деле это возможно сделать. Программе “выделяется” некий пул страниц памяти, которые в дальнейшем могут быть перемещены на диск, в специализированную область подкачки, либо наоборот, “подняты” из нее в случае необходимости.

5. Что такое swap и для чего он используется? (What is swap and what is it used for?)

Специально выделенная область диска или файл, использующийся для расширения виртуального адресного пространства памяти ( см виртуальная память) за счет места на дисковом устройстве.

6. Что такое A, NS, PTR и CNAME записи? (What is an A record, an NS record, a PTR record, a CNAME record, an MX record?)

Ресурсные записи системы dns:

  • A — основная запись, ставящая человеко-читаемое имя в формате fqdn в соответствие ip адресу.
  • NS — ресурсная запись, содержащая информацию об ip адресе dns сервера, обслуживающего данный домен
  • PTR — т.н. “обратная” ресурсная запись, противоположная А, ставящая в соответствие ip адресу имя в формате fqdn
  • CNAME — ресурсная запись- псевдоним, позволяющая создать одноуровневую переадресацию, задавая соответствие имя-имя (например для сервера srv.example.com, функциональный псевдоним mail.example.com)

7. Какие есть еще ресурсные записи и для чего они используются? (Are there any other RRs and what are they used for?)

  • MX — ресурсная запись, указывающая на сервер, обслуживающий почту в домене
  • TXT — произвольная текстовая запись. Часто используется для различных проверок
  • SRV — сервисная ресурсная запись. Указывает на местоположение серверов, обеспечивающих тот или иной сервис. Пример — Active Directory
  • SOA — Базовая запись DNS зоны с ее параметрами и прочими ресурсными записями внутри.
  • AAAA — то же самое что и A, только для ipv6

8. Что такое расщепление горизонта в терминах dns? (What is a Split-Horizon DNS?)

Прием, используемый для разрешения одного и того же DNS имени в разные ( по смыслу) IP адреса, например mail.example.com изнутри сети направит клиентов непосредственно на внутренний почтовый сервер, а снаружи, пользователи будут направлены на сервер, стоящий перед почтовиком и выполняющий роль антивирусного и спам сканера.

Читайте также:  Linux time real user sys

9. Что такое “липкий” бит? (What is the sticky bit?)

Дополнительный атрибут файла в UNIX файловых системах. Изначально он означал что программа, будучи запущена, должна оставаться в оперативной памяти целиком для ускорения работы и повторных обращений. С ростом объема оперативной памяти это стало не актуально и теперь этот бит выполняет роль защитного предохранителя для каталогов — если на каталог установлен “липкий бит”, пользователь, даже имея все необходимые права, сможет удалить только те файлы, владельцем которых он является.

10. Что означает для файла выставленный иммутабельный бит? (What does the immutable bit do to a file?)

Дополнительный атрибут файла в UNIX файловых системах, который будучи установленным для конкретного файла, не позволяет записывать в него изменения, тем самым принудительно устанавливая на него режим “только для чтения” (даже если редактировать его попытается пользователь с привилегиями root).

11. В чем разница между жесткой ссылкой/хардлинком и мягкой ссылкой/симлинком? Что происходит когда вы удаляете хардлинк/симлинк? (What is the difference between hardlinks and symlinks? What happens when you remove the source to a symlink/hardlink?)

Хардлинк — это по сути имя файла, символическое значение, ссылающееся на значение inode в файловой системе. Именно поэтому нельзя создать хардлинк на другой раздел. Хардлинков может быть создано более одного — это будут разные имена одного и того же файла. До тех пор пока существует хотя бы один хардлинк, файл существует.

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

12. Что такое айнода и что хранится в ней? (What is an inode and what fields are stored in an inode?)

Структура данных файловой системы в которой хранится информация о файле ( по одной айноде на файл), такая как:

  • Блок данных с которого файл начинается
  • Дата создания, изменения
  • Права доступа
  • Владелец

Имя файла не хранится в айноде — это хардлинк

13. как принудительно заставить систему выполнить проверку файловой системы при следующей загрузке? (How to force/trigger a file system check on next reboot?)

Мне известны два способа:

  • Создать в корне пустой файл: touch /forcefsck — его наличие переопределяет все настройки для fsck в файле /etc/fstab и заставляет систему принудительно проверить корневую файловую систему при запуске. После успешной проверки файл удаляется
  • Использовать команду tune2fs -c 1 /dev/sdb1 чтобы включить проверку файловой системы на sdb1 при следующей загрузке.

14. Что такое snmp и для чего он используется? (What is SNMP and what is it used for? )

simple network management protocol. переводить я думаю не нужно) Является стандартом дефакто в мире сетевого мониторинга, позволяя снимать различные метрики с хостов, устройств и любых объектов, которые могут быть подключены к сети и на которых производитель реализовал поддержку этого протокола.

15. Что такое уровень запуска и как посмотреть текущий? (What is a runlevel and how to get the current runlevel? )

Нумерованный режим функционирования операционной системы. В зависимости от номера ( уровня) зависит объем задействованных возможностей, например:

  • 1 — однопользовательский режим, предназначен для различных административных действий по восстановлению системы; на этом уровне выполнения система полностью сконфигурирована, но не запущен ни один сервис, а из пользователей может работать только один root;
  • 2 — многопользовательский режим без поддержки сети
  • 3 — многопользовательский режим с поддержкой сети, нормальный режим работы сервера;
  • 5 — загрузка в многопользовательском режиме с графическим входом в систему;

Текущий уровень можно посмотреть командой runlevel:

Источник

Системный администратор линукс собеседование

Copy raw contents

Copy raw contents

Вопросы для интервью системного администратора Linux/DevOps

Коллекция вопросов для собеседования linux сисадмина/devops. Не стесняйтесь добавлять свои через pull request’ы, issues или сообщением по электронной почте.

  • Что вы узнали за вчера/эту неделю?
  • Расскажите о предпочитаемом окружении разработчика/администратора. (OS, редактор, браузеры, инструменты и т.п.)
  • Расскажите о последнем проекте на Linux, который вы закончили.
  • Расскажите о самой большой неудаче, которую вы допустили [какой-то период времени] и как вы изменились на сегодняшний день. Что вы вынесли из этого опыта?
  • Почему мы должны выбрать вас?
  • Какую роль играет DNS в сети?
  • Что такое HTTP?
  • Что такое HTTP прокси и как он работает?
  • Опишите кратко как работает HTTPS?
  • Что такое SMTP? Расскажите кратко сценарий доставки сообщения через SMTP.
  • Что такое RAID? Что такое RAID0, RAID1, RAID5, RAID10?
  • Что такое резервная копия 0-го уровня? Что такое инкрементальная резервная копия?
  • Опишите иерархию файловой системы в Linux.
  • Какое имя и UID администратора?
  • Как посмотреть все файлы в каталоге, включая скрытые?
  • Какая команда в Unix/Linux удаляет каталог со всем его содержимым?
  • Какая команда в Unix/Linux показывает свободную/используемую память? Существует ли свободная память в Linux?
  • Как найти строку «my konfu is the best» в файлах каталога рекурсивно?
  • Как подключиться к удаленному серверу или что такое SSH?
  • Как получить все переменные окружения и как их можно использовать?
  • Я получил «command not found» при запуске ifconfig -a . Что может быть не так?
  • Что произойдет, если я нажму TAB-TAB?
  • Какая команда показывает доступное свободное пространство на диске в Unix/Linux?
  • Какие команды вы знаете, которые могут быть использованы для проверки DNS записей?
  • Какая команда Unix/Linux используется для изменения владельца файла, прав доступа к файлу?
  • Что делает команда chmod +x FILENAME ?
  • Что означают права 0750 для файла?
  • Что означают права 0750 для каталога?
  • Как добавить пользователя без прав входа в систему?
  • Как добавить/убрать пользователя в/из группы?
  • Что такое bash алиас?
  • Как установить email для пользователя root?
  • Что делает Ctrl+c?
  • Что содержится в файле /etc/services?
  • Как перенаправить STDOUT и STDERR в bash?
  • Какая разница между UNIX и Linux?
  • В чем разница между Telnet и SSH?
  • Объясните три усредненных значения load average и что они означают? Какой командой можно посмотреть load average?
  • Можете назвать букву в нижнем регистре, которая не является валидной опцией для GNU ls ?
  • Что такое модуль ядра Linux?
  • Расскажите по шагам как загрузить систему в однопользовательском режиме для решения проблем.
  • Расскажите по шагам как вы будете решать проблему с ошибкой 404 в веб-приложении, которое вы обслуживаете.
  • Что делают следующие команды и как вы из будете использовать?
  • tee
  • awk
  • tr
  • cut
  • tac
  • curl
  • wget
  • watch
  • head
  • tail
  • Что делает & в конце команды?
  • Что делает & disown в конце команды?
  • Что такое пакетный фильтр и как он работает?
  • Что такое виртуальная память?
  • Что такое swap и для чего он используется?
  • Что такое A-запись, NS-запись, PTR-запись, CNAME-запись, MX-запись?
  • Знаете ли вы еще какие-либо RR-записи и для чего они используются?
  • Что такое Split-Horizon DNS?
  • Что такое sticky bit?
  • Что делает установленный на файл immutable bit?
  • Какая разница между символическими и жесткими ссылками? Что произойдет если удалить символическую/жесткую ссылку?
  • Что такое inode и какая информация хранится в inode?
  • Как принудительно запустить проверку файловой системы при следующей перезагрузке?
  • Что такое SNMP и для чего он используется?
  • Что такое уровень запуска и как узнать текущий?
  • Что такое SSH port forwarding?
  • Какая разница между локальным и удаленным пробросом портов SSH?
  • Какие шаги надо предпринять, чтоб добавить пользователя в систему не используя утилиты useradd/adduser?
  • Что такое MAJOR и MINOR нумерация спец. файлов?
  • Опишите команду mknod и когда она используется?
  • Опишите сценарий, когда вы можете получить ошибку «filesystem is full», но ‘df’ показывает наличие свободного места.
  • Опишите сценарий, когда вы удаляете файл,но ‘df’ не показывает, что место освободилось.
  • Опишите как работает ‘ps’.
  • Что случиться, если процесс-потомок умрет и не будет процесса-родителя, ожидающего его и что в этом плохого?
  • Объясните кратко каждое из состояний процесса.
  • Как узнать какой процесс слушает указанный порт?
  • Что такое зомби-процесс и какова его причина возникновения?
  • Вы запускаете bash скрипт и хотите видеть его вывод на экране и одновременно сохранить этот вывод в файл. Как это сделать?
  • Объясните, что делает echo «1» > /proc/sys/net/ipv4/ip_forward.
  • Кратко объясните, какие шаги надо предпринять, чтоб создать и установить сертификат для сайта https://foo.example.com.
  • Можно ли создать несколько HTTPS виртуальных хостов, используя один IP?
  • Что такое wildcard сертификат?
  • Какие типы файловых систем в Linux вам известны?
  • В чем разница между процессом и потоком? И родительским и потомком процессами после системного вызова fork?
  • В чем разница между exec и fork?
  • Для чего используется nohup ?
  • В чем разница между этими двумя командами?
  • myvar=hello
  • export myvar=hello
  • Как много NTP севреров настроено в вашем локальном ntp.conf?
  • Что означает колонка ‘reach’ в выводе ntpq-p ?
  • Вам необходимо обновить ядро на 100-1000 серверах, как вы будете это делать?
  • Как можно получить Host, Channel, IS, LUN для SCSI диска?
  • Как можно ограничить использование памяти для процесса?
  • Что такое быстрый поиск и замена в bash (^x^y)?
  • Какие вы знаете альтернативные оболочки? Какую вы используете?
  • Что такое tarpipe (или, как вы будете копировать все, включая жесткие ссылки и специальные файлы, с одного сервера на другой)?
  • Как можно проверить, что пакет httpd уже был установлен?
  • Как посмотреть содержимое установочного пакета?
  • Как вы определите какой пакет лучше: openssh-server-5.3p1-118.1.el6_8.x86_64 или openssh-server-6.6p1-1.el6.x86_64?
  • Как вы можете объяснить мне разницу между хранилищем, основанным на блоках и объектах?
  • Что такое туннель и как вы можете обойти http прокси?
  • В чем разница между IDS и IPS?
  • Какие горячие клавиши вы используете регулярно?
  • Что такое Linux Standard Base?
  • Что такое атомарная операция?
  • Вы только что настроили http сервер, который не запустился после рестарта. Что вы будете делать?
  • Какие ключи содержатся в
Читайте также:  Как узнать что занимает оперативную память linux

/.ssh/authorized_keys и для чего нужен этот файл?

  • Я добавил свой публичный ключ в authorized_keys, но до сих пор получаю запрос пароля. Что может быть не так?
  • Вы когда-нибудь собирали RPM, DEB или solaris пакеты?
  • Что сделает :()< :|:& >;: с вашей системой?
  • Как можно перехватить Linux сигнал из скрипта?
  • Можно ли перехватить SIGKILL?
  • Что происходит, когда ядро Linux запускает OOM killer и как он выбирает какой процесс необходимо убить в первую очередь?
  • Опишите процесс загрузки Linux с максимально возможным количеством деталей, начиная с момента включения компьютера и заканчивая получением приглашения командной строки.
  • Что такое закрытие в chroot?
  • При попытке отмонтировать каталог получаем ошибку занятости, как найти какой PID держит каталог?
  • Что такое LD_PRELOAD и когда он используется?
  • Вы запустили бинарник и ничего не произошло. Как вы будете искать проблему?
  • Что такое cgroups? Можете ли вы указать сценарий, когда это может быть использовано?
  • Как можно удалить файл, имя которого содержит непечатные символы?
  • Как можно увеличить/уменьшить приоритет процесса в Linux?
  • Что такое run-levels в Linux?
    • Запущенный процесс получает EAGAIN: Resource temporarily unavailable при чтении сокета. Как можно закрыть этот плохой сокет/файловый дескриптор без убивания процесса?
    • Что такое localhost и почему ping localhost может не работать?
    • В чем сходство между «ping» и «traceroute»? Как traceroute находит промежуточные хосты?
    • Какая команда можно использовать для поиска всех открытых портов и/или соединений с сокетами на машине?
    • Валидный ли IP адрес 300.168.0.123?
    • Какие IP диапазоны/подсети являются частными или не маршрутизируемыми (RFC 1918)?
    • Что такое VLAN?
    • Что такое ARP и для чего используется?
    • В чем разница между TCP и UDP?
    • Какова цель шлюза по умолчанию?
    • Какая команда используется для просмотра таблицы маршрутизации в Linux?
    • TCP-соединение в сети может быть однозначно определено четырьмя вещами. Что это за вещи?
    • Когда клиент использует бразер для подключения к веб-серверу, какие порты источника и назначения будут у этого соединения?
    • Как можно добавить IPv6 адрес для конкретного интерфейса?
    • Вы добавили IPv4 и IPv6 адреса на eth0 интерфейс. Ping на v4 адрес работает, но ping на v6 адрес дает ответ sendmsg: operation not permitted . Что может быть не так?
    • Что такое SNAT и когда он должен быть использован?
    • Объясните, как можно войти по ssh на Linux сервер, который сбрасывает (DROP) все новые входящие пакеты, используя SSH туннель.
    • Как вы будете противодействовать DDoS атаке?
    • Как можно посмотреть содержимое ip пакета?
    • Что такое IPoAC (RFC 1149)?
    • Как создать пользователя?
    • Как предоставить права пользователю?
    • В чем разница между ‘left’ и ‘right’ join?
    • Объясните кратко разницу между InnoDB и MyISAM.
    • Зачем надо запускать «mysql_secure_installation» после установки MySQL?
    • Как проверить какие задачи запущены?
    • Как вы делаете бекап MySQL?
    • Как вы можете описать ваш workflow при создании скрипта?
    • Что такое GIT?
    • Что такое динамически/статически слинкованные файлы?
    • Что делает «./configure && make && make install»?
    • Для чего используется puppet/chef/ansible?
    • Для чего используется Nagios/Zenoss/NewRelic?
    • Для чего используется Jenkins/TeamCity/GoCI?
    • В чем разница между контейнеризацией и виртуализацией?
    • Как создать нового postgres пользователя?
    • Что такое виртуальный IP адрес? Что такое кластер?
    • Как вывести все строки печатных символов, присутствующих в файле?
    • Как найти зависимости для библиотеки?
    • Что такое Automake и Autoconf?
    • ./configure вывела ошибку, что libfoobar не найдена в система, как вы будете исправлять это? Что может быть не так?
    • Какие преимущества/недостатки у скриптов против компилируемых программ?
    • Какая связь между непрерывной доставкой (continuous delivery) и DevOps?
    • Каковы важные аспекты системы непрерывной интеграции и развертывания?
    • Как бы вы включили совместное использование сетевых файлов в AWS, которые позволили бы экземплярам EC2 в нескольких зонах доступности обмениваться данными?
    • Небрежный сисадмин запустил команду chmod 444 /bin/chmod — как ву будете исправлять проблему?
    • Я потерял пароль пользователя root. Что мне делать?
    • Я перезагрузил удаленный сервер, но спустя 10 минут все еще не могу зайти по SSH. Что может быть не так?
    • Если бы вы попали на пустынный остров с 5 утилитами коммандной строки, то какие утилиты это были бы?
    • Вы сталкиваетесь с случайным компьютером и, похоже, это консоль к мирозданию. Что первое вы наберете?
    • Расскажите о креативном использовании ssh в вашей практике?
    • Вы случайно удалили запущенный скрипт, как вы будете его восстанавливать?
    • Что случится 19 января 2038 года?
    • Как перезагрузить сервер когда команда reboot не доступна?
    • Распакуйте test.tar.gz без использования man и google.
    • Удалите все «*.pyc» файлы рекурсивно из testdir.
    • Найдите все «my konfu is the best» во всех *.py файлах.
    • Замените все вхождения «my konfu is the best» на «I’m a linux jedi master» во всех *.txt файлах.
    • Проверьте доступность 443 порта на машине с IP X.X.X.X.
    • Получите страницу http://myinternal.webserver.local/test.html при помощи telnet.
    • Как отправить email без почтового клиента, только с помощью командной строки?
    • Напишите метод get_prim в python/perl/bash/pseudo.
    • Найдите все файлы, доступ к которым был осуществлен за последние 30 дней.
    • Объясните следующую команду (date ; ps -ef | awk ‘‘ | sort | uniq | wc -l ) >> Activity.log
    • Напишите скрипт, показывающий разницу двух каталогов.
    • Из лог файла, содержащего : [MESSAGE] : [ERROR_NO] — Human readable text выведите сумму/количество указанной ошибки, которая повторяется каждый час, или указанный час.

    Некоторые вопросы ‘заимствованы’ из других замечательных ссылок, например:

    Источник

    Читайте также:  Tparser org mac os
    Оцените статью