Цифровой скиталец

Мы живём, пока мы летаем

Траблы консольного линукса – 2

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

Решил продолжить.

1. binfmt и binfmt-support

Это раньше был модуль ядра, а теперь встроенный в ядро механизм. Он позволяет ассоциировать файлы выполняющей их средой без уродских конструкций “#!/usr/bin/bash” внутри файла. Ассоциировать можно по “magic numbers” внутри файла или по расширению. Так вот  - интерфейс к этому делу очень странный (для непосвящённого). Надо делать вывод (echo) чисел 1 или 0 или настроек в “псевдофайлы” в специальном месте файловой системы. Причём после ребута это все настройки пропадают, и в каком месте на загрузке корректно вызывать, чтобы опять появлялось, без толстого тома “администрирование линукс” не разберёшься . Чтобы это решить, есть отдельный пакет binfmt-support, написанный, судя по всему, другим человеком, но об его существовании ещё догадаться надо.

2. apache “order deny,allow”

В конфигах apache есть команда “order deny,allow”, служит для определения порядка действия прав доступа. Так вот, с точки зрения парсера конфига “deny,allow” – это одно слово. С точки зрения любого нормального человека, после запятой надо ставить пробел. Но линуксоидам пофиг на правила, пофиг на то, как человек интуитивно воспринимает конструкции языка. То есть “deny,allow” даже в любом языке программирования парсилось бы отдельно. Парсер конфига апача, конечно, считает что “deny, allow” – не имеющие смысла два отдельных выражения через запятую.

3. bugzilla

Поставил я баг-трекер багзиллу. (Она оказалась неудобная и непонятная, ещё и спамит по дефолту, ну да ладно). Или я плохо искал, или в комплекте нет инструкции к дебиан. На сайте говорят “ставьте нашу, мы за дебиан не отвечаем”. С трудом нашёл какие-то левые записи несчастного, который помучился, да настроил установленную из пакета, скопировал его конфиг. “Ставьте нашу” – отличная идея. Надо поставить так и сто других софтин, подписаться на рассылку безопасности, и потом всю жизнь тратить на установку патчей и обновлений. Ну или молиться, что хакерам твой несчастный сервер не нужен. (Что вряд ли, ибо для ботнета сгодится любой). Вообще, линукс знатно разрушает мозг – даже с установленными обновлениями (ну, вернее софтом из пакета) наш админ требует закрыть доступ с левых ip. Тогда непонятен смысл волноваться об обновлениях, если удобство зайти с любого компа исчезает.

Бонус: чтобы назначить на кого-то баг, нужно на память знать емейл человека! По логину нельзя, нет списка для выбора, нет автоподсказки. Мрак и ужас, нечего больше сказать.

4. Опять bugzilla

Во время установки вылезло такое.

Software error:
Error in tempfile() using /etc/bugzilla3/sites/bugzilla.izvne.com/params.XXXXX: Parent directory (/etc/bugzilla3/sites/bugzilla.izvne.com/) is not writable
at /usr/share/perl5/Bugzilla/Config.pm line 266bugzilla add to favs

Вот скажите, нормальный софт будет писать в папку конфига /etc/ ? Я никогда такого не видел не в линуксе, не в винде. В виндоус, например, .net приложение не сможет и не захочет писать в свой app.Config, если запущено под юзером, а не под админом, что логично. app.Config редактирует либо админ, либо приложение пишет в user settings.

5. apf-firewall

Стоит у нас надстройка над файрволом apf, чтобы легче админить было. И тут мне пишут, что люди не могут зайти на сайт. Ну, у меня решения всегда простые – отключил временно файрвол, пока админ не пришёл вечером. Тут состоялся диалог.

[22:02:55] rk13: curie:~# iptables -L -n | grep 95
DROP       all  --  95.0.0.0/8           0.0.0.0/0          
DROP       all  --  0.0.0.0/0            95.0.0.0/8
[22:03:52] Vladislav Kugelevich: и что это?
[22:15:26] rk13: это наш файр считате унассигнед спейс
[22:15:32] rk13  Unassigned/reserved address space

Оказалось, что определённый диапазон ip адресов заблокирован, потому что записан как “неназначенный”. В теории, список сам автообновляется, но линуксоиды же автообновление презирают, так что понятно, почему отключено было. Причина, по которой надо unassigned подсеть вообще блокировать, остаётся туманной.

4. ncftp

Вроде как считается хорошим (вернее, лучшим) ftp клиентом командной строки. Если параметры в команде ncftpput  сделать не в том порядке, она соединиться не может. Таймаут по умолчанию очень большой, сообщений об ошибках до его истечения никаких не выводит. Почему не работает – догадаться невозможно. Где вы вообще видели нормальную программу, которой важен порядок ключей в командной строке?

5. Trac

После неудач с мозиллой решил поставить багтрекер trac. На официальном сайте написано, что “настройка простая”. Это является несколько ироническим замечанием. Настройка не очень-то сложная, это правда. Но, чтобы добавить новый проект, надо давать команду из консоли!

То есть когда весь прогрессивный мир стремится к веб-интерфейсам, у линуксоидов по-прежнему всё как встарь: консоль, и не смейте выпендриваться! Хотя бы даже и не ажаксовый веб-UI? Ишь чего выдумали, обойдётесь!

6. Midnight Commander

Попытка приделать консоли человеческое лицо так и осталась попыткой. Рекурсивно делать chmod и chown не умеет. Пытаешься посчитать размер директорий – никакого прогресс бара, просто подвисает и всё, пока не доделает. Вводишь ftp адрес – не понимает префикс протокола ftp://. Если не смог соединится, закрывает окно и надо заново открывать пункт меню, заново вводить адрес. Чтобы отредактировать пункты меню, надо искать специальный файл со своим форматом, вместо того, чтобы нажать “edit”, как, например, сделано в far manager (думаю что и в norton commander было так же).

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

7. Mono

Не хочется ругать лучик света в тёмном царстве линукса, но приходится. Способа отключить warnings, которые Моно выводит в лог апача, я не нашёл. Ладно бы они редко были, но у меня такая ситуация, что warning каждую минуту, и не один. В итоге лог нечитаем, админ пишет гневные письма (багтрекеру, к счастью, а не мне)