Вопросы по линукс для собеседования
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 сервер, который не запустился после рестарта. Что вы будете делать?
- Какие ключи содержатся в
/.ssh/authorized_keys и для чего нужен этот файл?
- Запущенный процесс получает 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 выведите сумму/количество указанной ошибки, которая повторяется каждый час, или указанный час.
Некоторые вопросы ‘заимствованы’ из других замечательных ссылок, например:
Источник
25 вопросов задаваемых на собеседовании системным администраторам Linux
Вопрос:2 Как узнать когда файловая система проверялась последний раз?
Вопрос:3 Как изменить срок действия пароля пользователя без изменения самого пароля?
Вопрос:4 Как заставить fsck проверить файловую систему ОС при следующей перезагрузке?
Вопрос:5 Каким инструментом анализируются дампы краха системы или файл vmcore в ОС CentOS 7 & RHEL 7?
Вопрос:6 Как установить все патчи за исключением патчей ядра в CentOS и RHEL?
Параметр ‘–exclude=kernel*’ команды yum позволяет установить все патчи кроме предназначенных для ядра. Например так:
# yum update –exclude=kernel*
Если добавить следующую строку в файл ‘/etc/yum.conf’ мы предотвратим любые обновления ядра навсегда:
exclude=kernel*
Вопрос:7 Как проверить, что вы работаете на физическом или виртуальном сервере?
Вопрос:8 Что такое automounter и для чего он служит?
Вопрос:9 Как принудить пользователя изменить пароль при регистрации?
Вопрос:10 Как узнать как завершилась последняя команда — успешно или нет?
Вопрос:11 Как узнать, установлен ли конкретный rpm-пакет?
]# rpm -q postfix –last
postfix-2.10.1-6.el7.x86_64 Saturday 27 February 2016 11:56:43 PM EST
[root@cloud
Для этих же целей мы можем воспользоваться командой yum:
[root@cloud
]# yum history package postfix
Вопрос:12 Как войти в режим одиночного пользователя (single user mode) в RHEL 7?
Вопрос:13 Какая команда позволяет изменить имя хоста навсегда в CentOS 7 & RHEL 7?
Команда ‘hostnamectl’ используется для задания или изменения имени хоста. Например, так:
# hostnamectl set-hostname «New_HostName»
Кроме hostnamectl могут быть использованы команда ‘nmtui’& ‘nmcli’, которые тоже могут изменять имя хоста в CentOS 7 и RHEL 7.
Вопрос:14 Как включить политики паролей (password policies) в Linux?
Вопрос:15 Как узнать, какие модуля ядра загружены в ОС Linux?
Вопрос:16 Какой командой можно проверить состояние ввода-вывода в Linux?
Вопрос:17 Каково назначение файлов ‘/etc/lvm/backup’ и ‘/etc/lvm/archive’?
Вопрос:18 Как просмотреть таблицу маршрутизации в Linux?
Вопрос:19 Что происходит на фоне когда вы заходите по ssh на сервер Linux?
/.ssh/known_hosts’ мы получим подсказку ssh.
Вопрос:20 Как изменить порт по-умолчанию для SSH на сервере Linux?
Вопрос:21 Как увидеть временные метки dmesg в RHEL7?
Вопрос:22 Как узнать модель физического сервера из командной строки?
С помощью команды dmidecode можно узнать производителя и модель физического сервера. Например:
# dmidecode -t system
…
Handle 0x0011, DMI type 1, 27 bytes
System Information
Manufacturer: HP
Product Name: ProLiant DL580 Gen8
Version: P79
Serial Number: CKX42926E0
UUID: 97387735-1541-238A-1B33-533850564430
Wake-up Type: Power Switch
SKU Number: 728551-B21
Family: ProLiant
…
Вопрос:23 Как узнать версию BIOS сервера из командной строки?
С помощью команды dmidecode можно получить версию bios:
# dmidecode -t bios
# dmidecode 2.12
SMBIOS 2.8 present.
Handle 0x0010, DMI type 0, 24 bytes
BIOS Information
Vendor: HP
Version: P79
Release Date: 04/01/2014
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 16384 kB
…
Вопрос:24 Как расширить существующую группу томов lvm?
Вопрос:25 Как посмотреть номер WWN на карте HBA на сервере Linux?
Существует как минимум, два способа с помощью которых можно узнать номер WWN для карты HBA.
Первый, с использованием команды systool. Например так:
# systool -c fc_host -v | grep «port_name»
Второй способ — просмотреть содержимое файла классов в файловой системе sys:
# cat /sys/class/fc_host/host*/port_name
0x7001639028cbeca0
0x7001639028cbefa2
0x7001639028cbf5d8
0x7001639028cbf6da
Источник