- 25 вопросов задаваемых на собеседовании системным администраторам Linux
- KAZARIN OnLine
- Blog about IT, Me, education, etc…
- Вопросы для собеседования Системного администратора или DevOps инженера Linux. Часть 2. Simple Linux Questions
- Простые вопросы / Simple Linux Questions
- Linux что нужно знать для собеседования
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
Источник
KAZARIN OnLine
Blog about IT, Me, education, etc…
Вопросы для собеседования Системного администратора или DevOps инженера Linux. Часть 2. Simple Linux Questions
Всем привет! в прошлой статье мы начали разбор статьи с GitHub — Linux System Administrator/DevOps Interview Questions.
Сегодня будет пачка вопрос из раздела «Простые» — экзамен на звание junior Linux administrator.
Простые вопросы / Simple Linux Questions
1. Какое имя и UID у администратора системы? (What is the name and the UID of the administrator user?)
В Linux системе, как в большинстве unix-like/base систем, администратором (а точнее суперпользователем, тк администратором может идейно выступать любой пользователь, сопровождающий систему и способный получить права суперпользователя) является пользователь с учетной записью root. Название является исторически сложившимся и в принципе может быть заменено на любое другой. Права суперпользователя зависят не от названия учетной записи, а от ее идентификатора — UID (User ID). Для суперпользователя uid=0 и именно это так отличает его учетную запись от всех прочих.
2. Как вывести список всех, даже скрытых файлов, находящихся в директории (How to list all files, including hidden ones, in a directory?)
За вывод содержимого текущего (если без аргументов, содержащих путь к какой-то определенной директории) отвечает команда ls — сокращение от слова list. Параметр -a (сокращение от all) позволяет посмотреть все файлы, даже скрытые ( их имя начинается с точки), а если комбинировать его с параметром -l (long) — то мы увидим подробную информацию. Есть еще одна команда — tree, которая не входит в стандартный комплект утилит, которая также может показывать содержимое каталогов ( однако в более удобном-наглядном древовидном представлении) и так же может показывать скрытые файлы, дополнительную информацию и тд.
3. Какая linux/unix команда позволяет удалить директорию и все ее содержимое? (What is the Unix/Linux command to remove a directory and its contents?)
Существует команда rmdir, созданная специально для удаления директорий, однако она не удалит их, если директории не пусты. Команда rm может помочь нам в этом — если применить флаг -r (recursive) она рекурсивно удаляет все содержимое каталога и потом его тоже. Флаг -f позволит сделать это игнорируя различные предупреждения, однако будьте осторожны с этой комбинацией rm -rf — так как она может запросто снести вам большую часть системы). В обычной ситуации я бы рекомендовал использовать комбинацию -ri — тогд на удаление каждого объекта будет задаваться вопрос- а точно ли вы этого хотите.
4. Какая команда покажет вам объем свободной или используемой памяти? Существует ли в linux свободная память? (Which command will show you free/used memory? Does free memory exist on Linux?)
Еще одна команда, входящая в стандартный набор утилит linux — free. Как раз для этого и предназначена. Ряд модификаторов типа -h, -m, -b меняет формат вывода (байты, мегабайты и тп). Команда выводит информацию как по оперативной памяти, так и по свопу (аналог “подкачки” в windows). Однако столбцов там больше чем 2 ( свободно/занято), а точнее их 6:
- total – общее количество установленной в системе памяти — ОЗУ и под своп;
- used – реально использующая в данный момент и зарезервированная системой память; Вычисляется как ( total – free – buffers – cache)
- free – свободная память (вообще никем не используется);
- shared – Shared memory или Разделяемая память, обычно используется tmpfs.
- buffers – буферы в памяти – страницы памяти, зарезервированные системой для выделения их процессам, когда они потребуют этого, также известна как heap-memory;
- cached – файлы, которые недавно были использованы системой/процессами и хранящиеся в памяти на случай если вскоре они снова потребуются.
- available — оценка того, сколько памяти может быть доступно для запуска новых приложений без свопинга. То есть это сколько памяти система также может освободить + использовать свободное пространство.
5. Как найти строку “my konfi is the best” рекурсивно в файлах каталога? (How to search for the string «my konfi is the best» in files of a directory recursively?)
Самым простым и известным способом поиска является использование утилиты grep, с ключами -r (рекурсивынй поиск) — то есть поиск по каталогам и подкаталогам и ключом -i (искать вне зависимости от регистра). Однако grep не является лучшим вариантом поиска, так как является утилитой общего назначения. Вторым вариантом является вызов связки find + grep — первой из них вы можете задать что искать надо только по файлам ( игнорируя каталоги, линки, сокеты и прочие объекты, в которых искомой строки быть точно не может) а так же указать по каким файлам искать (задать маску расширения например). Тем самым ускорив поиск. И наконец третий вариант — использовать специализированную утилиту ack или ack-grep (одно и то же — просто названия разные). Она создана для поиска среди файлов проекта с исходным кодом, поэтому понимает некоторые казалось бы очевидные вещи (не ищи среди резервных копий файлов, среди файлов метаданных git и тп), тем самым еще сильней ускоря поиск.
6. Как удаленно подключиться к серверу или что такое SSH? (How to connect to a remote server or what is SSH?)
Удаленно к серверу можно подключиться довольно большим числом способов, в зависимости от того, что есть под рукой ( то есть в зависимости от вашего окружения). Вот только некоторые из известных мне способов:
- IP-KVM —
- VNC via IPMI / iLo / iDRAC / etc…
- VNC
- VNC via Web
- Web интерфейс
- Telnet
- SSH
- RDP
Однако, в обычной ситуации когда речь заходит про удаленное подключение к Linux серверу, речь обычно идет про SSH (а если быть точнее — openssh), который де-факто является стандартом удаленного управления Linux серверами. SSH или secure socket shell — протокол, обеспечивающий защищенный при помощи криптографических средств способ подключения к удаленному командному интерпретатору. Защита представляет собой обеспечение безопасности в двух аспектах:
- Обеспечение конфиденциальности передаваемых данных — вводимых команд и получаемых ответов за счет шифрования всего трафика, передаваемого между клиентом и сервером.
- Защита от атак типа MiTM — за счет сохранения отпечатка ключа сервера на стороне клиента при первом подключении с последующей сверкой его при каждом следующем подключении
7. Как посмотреть все переменные окружения и как вы можете их использовать? (How to get all environment variables and how can you use them?)
Переменные окружения — сущность, существующая во всех unix подобных операционных системах (и отчасти в windows тоже) — это переменные, задаваемые для каждого отдельного сеанса пользователя (как интерактивный — вход в режиме графического интерфейса, запуск командного интерпретатора так и не интерактивный- запуск процесса от имени пользователя), и несущие ряд настроек- пути поиска бинарных файлов утилит, локаль и язык окружения, основной редактор и прочее.
Как посмотреть — используя например команды “printenv” или “env”. Задать — с помощью команды “export”. Использовать можно для изменения поведения системы и запускаемых приложений. Так же в некоторых ситуациях для конфигурации программ и сервисов. В моей практике была система, состоящая из нескольких сервисов, написанных на node.js. Так вот ее конфигурация задавалась через переменные окружения, а вместо конфигурационного файла использовался специальный bashrc профайл с значением переменных окружения для пользователя, из под которого запускался процесс.
8. Я получаю сообщение «command not found» когда я ввожу “ifconfig -a”, что я делаю не так? (I get «command not found» when I run ifconfig -a. What can be wrong?)
Мне известны две причина:
- Пакет, содержащий утилиту ifconfig не установлен (обычно она входит в пакет net-tools — установите его).
- Каталог “/sbin”, в котором содержится эта утилита, не добавлен в пути поиска вашей переменной окружения “$PATH” — в таком случае попробуйте ввести полный путь для этой утилиты “/sbin/ifconfig -a”. Такое например случается когда вы работаете не под учетной записью с правами суперпользователя.
9. Что происходит когда я ввожу “TAB-TAB”? (What happens if I type TAB-TAB?)
в зависимости от того где мы применяем эту комбинацию. В случае когда мы набираем команду в терминале, эта комбинация сработает как автодополнение — дописав команду за нас. В случае когда мы вводим аргументы команды — имя файла или путь, он так же будет дополнение. В обоих случаях это сработает в случае если существует однозначное соответствие.
10. Какая команда покажет доступное пространство в Unix/Linux системе? (What command will show the available disk space on the Unix/Linux system?)
df или disk free — команда, отображающее свободное место на той или иной файловой. У команды существуют различные модификаторы ее вывода- например отображение размера в человеко-читаемом формате (-h):
Источник
Linux что нужно знать для собеседования
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 выведите сумму/количество указанной ошибки, которая повторяется каждый час, или указанный час.
Некоторые вопросы ‘заимствованы’ из других замечательных ссылок, например:
Источник