LINUX.ORG.RU

Вопросы для стажировки

 , ,


0

3

Всем привет. Позвали на стажировку в вакансии к которой было написано «Базовые знания администрирования Linux.» Честно говоря написано очень размыто и вообще не знаю, к чему готовиться. На всякий случай перечитал «Unix administration handbook» Но не уверен хватит ли этого т.к компания достаточно крупная. Вот сижу и думаю, что могу спросить(Да у меня фобия, и мне всегда кажется, что знаю слишком мало). Собственно вопрос к Вам, дорогие форумчане, какие бы спросили у меня вопросы? На данный момент я 3ий курс универа, и вроде как, придираться не должны. Жду ваших ответов\вопросов. Надеюсь, Вы поможете


Стандартный набор вопросов - файлы, пайпы, дескрипторы, демоны, зомби, права, лоад аверадж(его вообще все обожают).

stave ★★★★★
()
Ответ на: комментарий от stave

блин, полгода в любительском порядке изучаю лениво и что, мне можно сразу на 5 курс?

burato ★★★★★
()

Мой любимый вопрос, на котором режутся 90% кандидатов:

CentOS 7 minimal свежеустановленная. Поднята сеть, траффик ходит, по ssh пускает. Все мыслимые файрволлы отключены.

Вы устанавливаете какой-нибудь сетевой сервис (например, NGinx), делаете автозапуск, запускаете. Работает. Перезагружаете сервер - загружается и работает.

После этого, вы прописываете этому сервису в конфиге конкретный IP-адрес, имеющийся в системе (вместо *, который по умолчанию). Перезагружаете - сервис не запустился. SSH на этот IP-адрес по-прежнему пускает и работает.

В чем причина?

slamd64 ★★★★★
()
Последнее исправление: slamd64 (всего исправлений: 2)

Unix administration handbook

оно же 2010го года. лучше «rhel 7 administration guide»
если будут спрашивать свыше этого, то тебе наврали про «Базовые знания администрирования Linux».

system-root ★★★★★
()
Ответ на: комментарий от slamd64

на котором режутся 90% кандидатов:

делаем какую-то дичь с перезагрузками сервера, пишем что-то в конфиги, ничё не работает
В чем причина?

гадалок из битвы экстрасенсов интервьируешь? у тебя тогда даже неплохой результат в 10%, они могли просто получить лям баксов премии Рэнди Гудини, а пошли работать к тебе.

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)
Ответ на: комментарий от system-root

Ну почему же «гадалок».

Ситуация вполне конкретная. 100% воспроизводится и давно известна. Должна аффектиться не только на RedHat/CentOS, но и на другие дистрибутивы.

Попробуй поднять в виртуалке CentOS 7 пусть даже со всеми обновлениями и воспроизведи с тем же NGinx.

В 7.4 у _части_ сервисов это исправили. Но далеко не у всех.

slamd64 ★★★★★
()
Ответ на: комментарий от iliyap

Она итак есть, в том-то вся веселуха!!! :)

[root@centos system]# cat ./nginx.service | grep After

After=network.target remote-fs.target nss-lookup.target

[root@centos system]# cat ./mysqld.service | grep After

After=network.target

After=syslog.target

Мускль в моём случае - Перкона из её родного репозитория.

slamd64 ★★★★★
()
Последнее исправление: slamd64 (всего исправлений: 2)
Ответ на: комментарий от iliyap

Вдогоночку:

[root@centos system]# cat ./sshd.service | grep After

After=network.target sshd-keygen.service

slamd64 ★★★★★
()
Ответ на: комментарий от slamd64

проблема не в ситуации, а в постановке сценария на интервью с тобой.
просто я представил, мы сидим в одной комнате и ты задаёшь этот вопрос. у меня два варианта действий: или извинится, встать и уйти или начать шутить, а потом встать и уйти.

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

далее минутка диванных рассуждений, можно не читать.
есть ограниченное количество способов сделать что-то правильно и бесконечное множество неправильных решений. если подходить с позиции «произошёл инцидент из за неправильных действий, как пофиксить?», может просто не работать. человек может всегда в своей практике делал так, чтобы исключить подобные инциденты, применял всевозможные практики для этого, а тут на него вываливают минорный баг от ментейнеров.
ок, если такая постановка вопроса должна вынудить его показать скилы траблшутинга, дай ему машину, чтобы логи посмотреть блин. нельзя ответить на этот вопрос смотря в глаза интервьюеру.

system-root ★★★★★
()

а звонок гуглу можно?

Deleted
()
Ответ на: комментарий от system-root

Нет. Я специально задаю на собеседованиях вопросы, с которыми соискатель _ДОЛЖЕН БЫЛ_ столкнуться в своём предыдущем опыте.

Согласись, что задача «привязать сервис к определенному IP-адресу» - это нормальная, регулярная задача для Linux-администратора.

А, значит, соискатель с такой проблемой обязательно должен был столкнуться. И вот у него было два пути:

1. Вернуть * в конфиге сервиса «пусть слушает все интерфейсы, мне лень разбираться чего там за фигня». Такой сотрудник мне не нужен: он, очевидно, будет работать по принципу «на отстань» и мне придется переделывать за ним львиную долю работы.

2. Как высказался iliyap, проблема действительно в том, что сервис стартует _ДО_ того, как был поднят соответствующий интерфейс. И тут ещё 2 варианта:

а) Написать в /etc/rc.local что-нибудь типа: sleep 10 ; systemctl start nginx - и (О, чудо!) сервис будет нормально запускаться при перезагрузке. Но это опять путь для ленивых костылестроителей, не желающих разобраться в том, как работает система. О которой они, кстати, утверждают, что «очень хорошо знаю».

б) Всё-таки, найти _ПРАВИЛЬНОЕ_ решение проблемы и его применять. Вот такой человек мне нужен.

P. S. И проблема, таки, должна аффектиться на ВСЕ дистрибутивы, использующие Systemd. Так что отмазка «я дебианщик» не прокатит.

slamd64 ★★★★★
()
Последнее исправление: slamd64 (всего исправлений: 2)
Ответ на: комментарий от slamd64

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

Deleted
()
Ответ на: комментарий от slamd64

должна аффектиться на ВСЕ дистрибутивы, использующие Systemd

Тебя самого переквалифицировать пора. Мы вам перезвоним, короче.

entefeed ☆☆☆
()
Ответ на: комментарий от Deleted

В вакансии написано: обязательно CentOS 7.

Человек на вакансию откликнулся и пришел на собеседование. Значит, считаем, что CentOS 7 он знает.

И, всё-таки, это _НЕ_ дистроспецифичный вопрос. Это, скорее, вопрос на понимание работы дистрибутивов, основанных на Systemd

slamd64 ★★★★★
()
Ответ на: комментарий от slamd64

Если человек работал с дебианом или убнтой, там такого ада не было, т.к. дефолтные конфиги нормальные. Таким образом, когда всё нормально работает, то и не требуется детально изучать потороха systemd.

Deleted
()
Ответ на: комментарий от Deleted

Ну то есть, в дебиане ещё и костыль какой-то применяется НАД systemd? Интересно!

Скинь, пожалуйста, из дебиана cat sshd.service | grep After

slamd64 ★★★★★
()
Ответ на: комментарий от slamd64

соискатель с такой проблемой обязательно должен был столкнуться.

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

system-root ★★★★★
()
Ответ на: комментарий от slamd64

Когда скажу ответ, тебе будет стыдно.

За systemd и красношляпу?

crutch_master ★★★★★
()
Ответ на: комментарий от slamd64

не админ, но открыв доку по NetworkTarget, вижу, что network.target не означает, что сетевой интерфейс получил IP. Нужно использовать network-online.target, так?

POLTER ★★
()
Ответ на: комментарий от J

А всё просто, как в танке после взрыва: Леннарт дебил :)

В общем, network.target завершается сразу после запуска со статусом выполнено. Как результат, стартуют сразу ВСЕ сервисы, которые зависимы от network.target.

Поскольку 127.0.0.1 доступен, то привязанные к * сервисы запускаются без проблем. Но вот остальные интерфейсы стартуют позднее и потому привязанные к конкретным IP-адресам сервисы валятся с ошибками типа «no such interface».

Решение элементарно: замена After=network.target на After=network-online.target - то есть, запускаться после того, как интерфейсы поднимутся.

slamd64 ★★★★★
()
Последнее исправление: slamd64 (всего исправлений: 1)
Ответ на: комментарий от slaykovsky

Юнит кривой и у mysql, и у openvpn (причем, у части опенвпновских юнитов, не у всех), и у apahce, и у... да почти у всех.

То есть, огромное количество разработчиков почему-то не поняли Леннарта. Следовательно, Леннарт дебил, раз не смог это разъяснить далеко не самым глупым людям на планете.

slamd64 ★★★★★
()
Ответ на: комментарий от slamd64

Тогда мне кажется, что этот вопрос действительно лишь поможет понять, сталкивался раньше сотрудник или нет с этим. Выше привели примеры, когда он мог не сталкиваться, но при этом быть квалифицированным. А в случае такой проблемы можно просто открыть доку и за 5 минут решить вопрос.

POLTER ★★
()
Ответ на: комментарий от slamd64

Согласись, что задача «привязать сервис к определенному IP-адресу» - это нормальная, регулярная задача для Linux-администратора.

Забавно. За 6 не понадобилось ни разу. А чем ваша контора занимается?

stave ★★★★★
()
Ответ на: комментарий от Deleted

Причем тут LFS? Дефолтные конфиги — рабочие что в центоси, что в дебиане. С неправильным конфигом демон не заработает что в центоси, что в дебиане.

dexpl ★★★★★
()
Ответ на: комментарий от slamd64

Леннарт дебил :)

А когда отвечаешь тебе на собеседовании смайлик тоже нужен?

J ★★★★★
()
Ответ на: комментарий от slamd64
~$ systemctl status sshd.service
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) 
                      ...

~$ sudo netstat -pltun | grep ssh
tcp        0      0 192.168.10.100:22       0.0.0.0:*               LISTEN      2719/sshd           

~$ grep -i listen /etc/ssh/sshd_config
ListenAddress 192.168.10.100

~$ systemctl show sshd | grep -i after
RemainAfterExit=no
After=systemd-journald.socket basic.target pollinate.service network.target auditd.service sysinit.target system.slice
~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
    link/ether 1c:5f:2b:a2:14:f1 brd ff:ff:ff:ff:ff:ff
    inet 169.254.62.212/16 brd 169.254.255.255 scope link enp4s0
       valid_lft forever preferred_lft forever
    inet6 fe80::1e5f:2bff:fea2:14f1/64 scope link 
       valid_lft forever preferred_lft forever
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether c8:60:00:6c:d4:52 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.100/24 brd 192.168.10.255 scope global dynamic enp3s0
       valid_lft 561sec preferred_lft 561sec
    inet6 fe80::ca60:ff:fe6c:d452/64 scope link 
       valid_lft forever preferred_lft forever
                      ...
system-root ★★★★★
()
Ответ на: комментарий от slamd64

Написать в /etc/rc.local что-нибудь типа: sleep 10 ; systemctl start nginx - и (О, чудо!) сервис будет нормально запускаться при перезагрузке

Именно так бы и поступил. Так как на изучение всяких дистров не хватит жизни.

burato ★★★★★
()
Ответ на: комментарий от slamd64

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

system-root ★★★★★
()
Ответ на: комментарий от system-root

Нет, я о том, что ты не знаешь, как работает твой основной рабочий инструмент.

Представь, не было бы этого топика и ты решил бы, что pollinate тебе не нужен.

Удалил бы его - и потерял управление сервером после перезагрузки.

slamd64 ★★★★★
()
Ответ на: комментарий от slamd64

ну так спроси меня, зачем нужен pollinate. зачем придумывать ситуацию с множеством переменных и ожидать «единственно верного» ответа без доступа к машине? вот только честно.

system-root ★★★★★
()
Ответ на: комментарий от slamd64

Удалил бы его - и потерял управление сервером после перезагрузки.

Удалять в линуксе системные файлы? Как скучно я живу.

burato ★★★★★
()
Ответ на: комментарий от system-root

pollinate нужен для обмена энтропией между серверами http://manpages.ubuntu.com/manpages/trusty/man1/pollinate.1.html

Почему его впихнули как пререквизит к SSH... ну, может, в приступе паранойи, получить рандом позаковыристее.

Однако, я так нехорошо подозреваю, что как раз из-за network.target: кто-то из разработчиков дебиана когда-то заметил, что если pollinate поставить пререквизитом, то и привязанный к IP sshd стартует без проблем. :)

slamd64 ★★★★★
()
Ответ на: комментарий от burato

Я бы не сказал, что pollinate ну прямо-таки must have для всех. Просто сервис обмена рандомом между серверами.

slamd64 ★★★★★
()
Ответ на: комментарий от slamd64

В Debian/Ubuntu networking асинхронный, поэтому может как подняться, так и не подняться. Смена network.target на network-online ничего не даст. Поэтому наимение костыльный способ это запускаться после rc-local. Но опять же в случае с белым ip в силу асинхронности networking человек скорей всего не столкнется с данной проблемой, а вот если привязываться к ip адресу например vpn или какого-то туннеля, то вполне. Вот только в современном мире где все запускается в контейнерах и на 0.0.0.0, спрашивать такое как минимум глупо. Да и плюс из твоего вопроса ничего не понятно, что ты хочешь.

anonymous_sama ★★★★★
()
Ответ на: комментарий от slamd64

ну вот смотри, за пять секунд получил информацию о том, что такое pollinate
просто ман или гугл за пять секунд.
а представь, у тебя это спросили бы на собеседовании вчера? «не умеете в инструменты? ой всё, вы нам не походите»
ну реально, дружище, ответь мне честно, зачем мучаешь соискателей задачей с множеством переменных. правильно ли это? может вытащить из всей задачи всю суть и задать чёткий вопрос? «как работают зависимости в системд» например?

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.