25 вопросов задаваемых на собеседовании системным администраторам Linux
Перевод Андрей А. Породько. Оригинал Pradeep Kumar · March 21, 2016 (http://www.linuxtechi.com/25-interview-questions-for-linux-administrator-job/).
Надеюсь кому-нибудь пригодится. Меня спрашивали про ps, top и overcommitment в kvm 😉
Внимание! Много букв и нет картинок.
От переводчика. Пожалуйста, не пишите в комментариях что что-то можно сделать по-другому — это перевод. Когда вам зададут на интервью в RedHat подобный вопрос, у вас будет возможность проявить себя 😉
Вопрос:1 Что такое Kdump и для чего предназначен?
Kdump это механизм сохранения дампов при крахе системы или панике ядра. Дампы могут быть сохранены как на удаленной машине, так и на локальном диске. Анализируя дампы мы можем найти корневую причину отказа системы или паники ядра. В случае, если у вас есть платная поддержка ОС, вы можете отправить файл vmcore поставщику для дальнейшего анализа.
Вопрос:2 Как узнать когда файловая система проверялась последний раз?
При помощи команды tune2fs мы можем проверить, когда файловая система последний раз сканировалась на предмет ошибок.
# tune2fs -l | grep «Last checked»
Вопрос:3 Как изменить срок действия пароля пользователя без изменения самого пароля?
Команда chage позволяет задать дату (срок) действия пароля для локальной учетной записи пользователя. Синтаксис команды такой:
# chage -d
Вопрос:4 Как заставить fsck проверить файловую систему ОС при следующей перезагрузке?
Для принудительного запуска утилиты fsck для проверки конкретной файловой системы при следующей перезагрузке, нужно создать пустой файл с именем ‘forcefsck’ в корне этой файловой системы. Например, если мы хотим проверить файловую системы смонтированную в каталог /home, команду будет выглядеть примерно так:
# cd /home; touch forcefsck; reboot
Вопрос:5 Каким инструментом анализируются дампы краха системы или файл vmcore в ОС CentOS 7 & RHEL 7?
Утилита или команда crash операционных систем CentOS 7 и RHEL 7 позволяет проводить анализ файлов дампов.
Вопрос:6 Как установить все патчи за исключением патчей ядра в CentOS и RHEL?
Параметр ‘–exclude=kernel*’ команды yum позволяет установить все патчи кроме предназначенных для ядра. Например так:
# yum update –exclude=kernel*
Если добавить следующую строку в файл ‘/etc/yum.conf’ мы предотвратим любые обновления ядра навсегда:
exclude=kernel*
Вопрос:7 Как проверить, что вы работаете на физическом или виртуальном сервере?
С помощью команды dmidecode мы можем проверить платформу сервера. Например так:
# dmidecode -t system | grep «Product Name»
Product Name: VMware Virtual Platform
Вопрос:8 Что такое automounter и для чего он служит?
Automounter это сервис в операционной системе Linux которые используется для монтирования удаленной или локальной файловой системы автоматически в момент обращения к ней. Когда файловая система неактивна в течение определенного периода времени сервис automounter (autofs) автоматически размонтирует ее. Основная польза от autofs заключается в том, что мы не должны монтировать файловую систему каждый раз когда она нам нужна, automounter сделает это за нас при обращении к этой файловой системе.
Вопрос:9 Как принудить пользователя изменить пароль при регистрации?
Команда ‘chage’ позволяет задать время окончания действия пользовательского пароля, например «chage -d 0
Вопрос:10 Как узнать как завершилась последняя команда — успешно или нет?
Можно получить статус завершения последней команды из переменной среды ‘$?’, в ней хранится код завершения. Например:
# ls -l /var/
# echo $?
0
# ls -l /var/wwer
# echo $?
2
Код завершения 0 означает что команды выполнена успешно, любой отличное от нуля число свидетельствует об ошибке.
Вопрос:11 Как узнать, установлен ли конкретный rpm-пакет?
Возьмем например postfix. Следующее использование команды rpm покажет нам, установлен ли postfix или нет:
[root@cloud ~]# 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?
При загрузке системы нужно войти в меню загрузчика GRUB2, нажать ‘e’, найти строку начинающуюся с ‘linux16/vmlinz’ и заменить параметр ‘ro’ на ‘rw init=/sysroot/bin/bash’. Нажать ctrl-x для продолжения загрузки.
Вопрос:13 Какая команда позволяет изменить имя хоста навсегда в CentOS 7 & RHEL 7?
Команда ‘hostnamectl’ используется для задания или изменения имени хоста. Например, так:
# hostnamectl set-hostname «New_HostName»
Кроме hostnamectl могут быть использованы команда ‘nmtui’& ‘nmcli’, которые тоже могут изменять имя хоста в CentOS 7 и RHEL 7.
Вопрос:14 Как включить политики паролей (password policies) в Linux?
Политики паролей (password policies) включаются через pam (подсистему загружаемых модулей аутентификации). В Centos и RHEL у нас есть файл «/etc/pam.d/system-auth», в котором мы определяем требования к паролям. В ОС, основанных на Debian, для этих же целей служит файл «/etc/pam.d/common-password».
Вопрос:15 Как узнать, какие модуля ядра загружены в ОС Linux?
Вопрос:16 Какой командой можно проверить состояние ввода-вывода в Linux?
Есть несколько команд, таких как ‘sar’, ‘iostat’ и ‘vmstat’ с использованием которых мы можем проверить состояние ввода-вывода в Linux.
Вопрос:17 Каково назначение файлов ‘/etc/lvm/backup’ и ‘/etc/lvm/archive’?
Каждый раз, когда мы создаём или изменяем любой lvm раздел, резервная копия метаданных сохраняется в файле ‘/etc/lvm/backup’, а архив метаданных ведется в файле ‘/etc/lvm/archive’ file. Используя команду vgcfgrestore мы можем восстановить метаданные группы томов lvm.
Вопрос:18 Как просмотреть таблицу маршрутизации в Linux?
Вопрос:19 Что происходит на фоне когда вы заходите по ssh на сервер Linux?
Каждый раз, когда мы заходим по ssh на любой Unix сервер, устанавливает TCP соединение между Клиентом и Сервером по порту 22 (по-умолчанию, если не указано другое) и Сервер выдает список версию протокола SSH которую он поддерживает. Если клиента она «устраивает», то соединение продолжается и после того как Сервер передаст свой публичный ключ и Клиент сохранит его в файле ‘~/.ssh/known_hosts’ мы получим подсказку ssh.
Вопрос:20 Как изменить порт по-умолчанию для SSH на сервере Linux?
Значение порта по-умолчанию (22) для SSH может быть изменено в параметре «Port \» в файле ‘/etc/ssh/sshd_config’. Где NNN — это номер порта. После внесения изменений в этом файл, сервис SSH следует перезапустить.
Вопрос: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?
Сначала нужно создать pv (физический том) на пустом новом диске (например /dev/sdb) командой «pvcreate /dev/sdb» и затем, командой vgextend расширить группу: «vgextend
Вопрос: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
Чем занимается администратор Linux?
Системный администратор Linux отвечает за компоненты из области Linux, которые они обслуживают, развивают и поддерживают. Они работают как с клиентскими, так и с серверными приложениями.
Linux широко используется в вычислительной технике, и многие мобильные телефоны, веб-серверы и облачные серверы, а также компьютеры работают под управлением Linux.
Система предлагает высокую стабильность, высокую безопасность и среду с открытым исходным кодом, и по этим причинам ее часто выбирают для различных вычислительных устройств.
Системных администраторов Linux (SA) можно найти во всех отраслях, и они несут ответственность за функциональность систем Linux в ИТ. Этот профессионал является разновидностью системного администратора, который очень хорошо знает ядро Linux и поэтому присутствует во многих компаниях.
Администраторы Linux являются одними из самых важных игроков в компании и помогают без проблем обеспечить нормальный рабочий день сотрудников. Если в компании возникают проблемы с ИТ-структурами, важные процессы быстро парализуются, и в результате целые отделы могут работать только в ограниченном объеме или вообще не работать.
Администраторы Linux из-за их высокого уровня ответственности и специальных знаний являются элементарной составляющей успеха компании и занимается ее бесперебойной работой.
Задачи Linux администратора
Linux администратор является ответственным за локальную сеть компании Linux, а также определяющие права пользователей / доступа и управление ими. Они также выявляют любые проблемы и работают над решениями, сотрудничая со службой поддержки, и, в случае серьезных сбоев, планируют проекты, необходимые для восстановления бесперебойной работы. Также отвечает за функциональность повседневных приложений, таких как системы электронной почты и внутренней коммуникации компании.
Они несут ответственность за управление сетевыми серверами, а также за реализацию любых обновлений оборудования или программного обеспечения, которые могут быть отложены.
- Отвечает за локальную сеть Linux компании — установку, управление и устранение неполадок GNU / Linux.
- Разрабатывать, отслеживать и поддерживать функции для инфраструктуры, платформы и приложений.
- Поддерживать и создавать инструменты для среды Linux и пользователей
- Поддерживать доступ к интернет-запросам MySQL, Apache, PHP, DNS
- Управление сетевыми серверами
- Анализирует журналы ошибок и исправляет их вместе со службой поддержки
- Планирует проекты по восстановлению бесперебойной работы в случае серьезных сбоев
- Обеспечивает работоспособность повседневных приложений (система электронной почты и внутреннее общение)
- Регулярно создает резервные копии данных и создавайте новые хранимые процедуры.
- Поддержание безопасности системы за счет выявления уязвимых областей и обеспечения защиты
- Установите необходимые системы и инструменты безопасности для обеспечения защиты
- При необходимости оказывать техническую помощь
Они также хорошо владеют почтовыми системами и обладают обширными знаниями по крайней мере в одном языке сценариев, таком как Python, PHP или Ruby.
Администраторы знают, как управлять системами , настраивать их и знать основы инструментов управления конфигурацией, таких как Puppet.
Кроме того, они знают, как работать с серверами Linux и Microsoft, и могут четко выражать свои мысли , чтобы четко описать ошибки или правильно узнать о соответствующей проблеме.
Софт скиллс включают хорошие коммуникативные навыки, готовность работать в команде, а также высокую степень устойчивости.
- Отличные знания в области информатики
- Обширные навыки системного администрирования Linux и продвинутые навыки Red Hat Unix
- Опыт развертывания и сопровождения баз данных SQL (MySQL) NoSQL (MongoDB), Oracle, DB2 или ADABAS
- В идеале опыт работы с Ansible
- Опыт работы с почтовыми системами
- Знание сценариев — BASH, PERL, Python
- Опыт работы с виртуальными машинами и контейнерами
- Знание того, как управлять системами и настраивать их
- Знать основы инструментов управления конфигурацией, таких как Puppet.
- Обширное знание операционных систем Windows
- Опыт работы с серверами Linux и Microsoft