Яндекс.Метрика
Поиск по тегу

linux


Найдено: 48 записей

Песочница

Прячем Bash скрипты

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

Песочница

Ubuntu 11.10 на Lenovo ThinkPad X1

Приветствую,

Этот пост про мой опыт установки Ubuntu 11.10 на Lenovo ThinkPad X1 и немного личного мнения про этот девайс. Если вы задумывались приобрести X1, но сомневались как он удружится с линуксом — читайте.

Песочница

Flash, Flex, ActionScript — делимся вариантами настройки среды программирования в Ubuntu GNU\Linux

Начало начал


Приветствую всех! Попытаюсь рассказать вам о том, как я начал программировать для платформы Flash под GNU\Linux и какие инструменты для этого использовал. Этот пост написан для программистов Flash переходящих на GNU\Linux, поэтому некоторые вопросы настройки и использования были мной намеренно опущены (разобраться довольно легко, просто хочу чтобы вы не стеснялись покопаться в настройках. Поверьте, вы не пожалеете и найдете для себя много нового). Let's go!

Системное администрирование

Еще несколько слов о Path MTU Discovery Black Hole

Еще несколько слов о Path MTU Discovery Black Hole



Вместо вступления


Однажды для каждого настоящего системного администратора (или исполняющего обязанности такового) наступает момент истины. Ему выпадает судьба настроить маршрутизатор на компьютере с установленной ОС GNU/Linux. Те, кто это уже прошел, знают, что ничего сложного в этом нет и можно уложиться в пару команд. И вот наш админ находит эти команды, вбивает их в консоль и гордо идет к пользователям сказать, что уже все работает. Но не тут-то было – пользователи говорят что их любимые сайты не открываются. После траты некоторой части своей жизни на выяснение подробностей обнаруживается, что большая часть сайтов ведет себя следующим образом:
1. При открытии страницы загружается заголовок и больше ничего;
2. В таком состоянии страница висит неопределенно долгое время;
3. Строка статуса браузера все это время показывает что загружает страницу;
4. Пинги и трассировка до данного сайта проходят нормально;
5. Соединение по telnet на 80 порт тоже проходит нормально.
Обескураженный админ звонит в техподдержку провайдера, но там от него быстро избавляются, советуя попробовать настроить маршрутизатор на OC Windows, а если уж и там не работает тогда… купить аппаратный маршрутизатор.
Я думаю, эта ситуация знакома многим. Некоторые в нее попадали сами, у кого-то с ней сталкивались знакомые, а кто-то встречал таких админов на форумах и прочих конференциях. Итак: если у Вас Такая Ситуация, то — Поздравляю! Вы столкнулись с Path MTU Discovering Black Hole. Данная статья посвящается тому, отчего это бывает, и как решить эту проблему.

Ни о чём

DWM — минимализм в действии

С чего всё началось


Когда то в давние времена, когда не было ещё ноутбуков (т е когда они были не по карману) стоял у меня дома комп — Pentium чего то там, 64Mb оперативки, 2Gb HDD, дисплей 14".
KDE и Gnome упорно не смогли бы (даже если бы и захотели) запуститься на таком железе. А почту почитать хотелось да и в интернет погоду посмотреть, книжку почитать — тоже очень хотелось. Порывшись в сети, настроил IceWM, который на этом оборудовании вполне прилично работал, запускался Firefox и почта

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

Ни о чём

Консольный Google Translate

Любите консоль Linux? Я тоже люблю.
Было время, когда мне часто приходилось использовать в работе переводчик, т.к. для меня лучшим переводчиком был и остался Google Translate — захотелось запихнуть его в консоль.
Мелочь — а приятно :)
Реализовал маленькую, но достаточно удобную утилиту на своем любимом PHP.
Исходный код
Установка:
$ wget http://pastebin.com/raw.php?i=TG3SL3R8 -O translate
$ php ./translate -w "windows" -f en -t ru
окна

Песочница

Настраиваем GNOME Shell

Выход GNOME 3.0 вызвал массу недовольства со стороны пользователей. В числе недостатков отмечались неудачные шрифты, большие заголовки окон, отсутствие возможности сменить тему, неудобная система уведомлений и многие другие.
Однако я, обновившись с Fedora 14 до F16, сразу подумал — в этом что-то есть. И стал пытаться довести свой рабочий стол до удобного для меня состояния. Результатами остался очень доволен.

Осторожно, трафик!

Open Source

Разбираем исходный код GNU Coreutils: утилита yes

(Статья доступна для оффлайн чтения: Markdown | PDF | PDF (print) | HTML)

Зачем?


Все вокруг постоянно говорят: «Хочешь научиться писать профессиональные программы? Посмотри, как это делают другие!». Вот и я решил последовать этому совету, тем более что моё обучение в университете как раз подходит к концу. Особенно интересно сравнить то как учили делать и то как делается в реальном мире. В качестве примера для подражания был выбран пакет GNU Coreutils. В нём есть всё:
  1. Жёсткие требования к переносимости.
  2. Большой жизненный цикл.
  3. Огромная команда разработчиков.
  4. Код различной сложности: от тривиального echo до супер-изощерённого sed, от чисто прикладного wc до более близкого к ОС mkdir.

Песочница

Сборочная среда для проекта Midnight Commander

Мало кто из знакомых со словами linux, *bsd не знает о Midnight Commander. Я не слишком ошибусь, если скажу, что все поначалу пользовались им. Отличный инструмент для задач, которые он решает, к тому же доступный на многих платформах. Последнее время проект, ранее развиваемый под крылом gnome.org, получил вторую жизнь. Новый сайт проекта радует темпами развития. Вот только поддержка актуальных версий пакетов в дистрибутивах хромает.

Последнее, что доступно в Debian — 4.7.0.9, и это при том, что совсем недавно вышел 4.7.5.4 в котором есть ряд вкусностей. Проект предоставлял бинарные сборки для RedHat-based систем и не поддерживал таковые для Debian/Ubuntu. Я решил восполнить этот пробел, запустив автоматическую сборочную среду.

Песочница

Что такое «асинхронная событийная модель», и почему сейчас она «в моде»

Сейчас в интернетах очень модно слово «Node.js». В этой небольшой статье мы попробуем понять, откуда всё это взялось и чем такая архитектура отличается от привычной «по процессу на запрос».

Ни о чём

Linux и его будущее

Казалось бы, почему прыщебляди так гордятся тем, что они прыщебляди? Ведь в Линуксе нет ничего, что было бы лучше чем в Винде. Такие же окна, такие же редакторы, даже отсутствие DirectX. Просто линуксойдам нечем возместить свою ущербность перед виндузятниками, и им приходится строить из себя ничего не лишённых борцов за свободный софт. Сейчас уже всем известно (ведь уже не 90е года, когда Линукс никто в глаза не видел), что Линукс уступает. И уступает по многим параметрам, именно из-за этого большая часть программистов пишет под Винду. Мы никогда не увидим под прыщами родного (скомпиленного именно под nix) Notepad+, QIP и много других замечательных программ.
Приходится признать, Linux на грани вымирания. Даже его создатель, Линус Торвальдс, с самого начала уверял, что Линукс никогда не будет профессиональной операционной системой, а останется просто хобби. И сейчас это понятно сильнее, чем когда-либо. Даже бывшие несколько лет назад истинными линуксойдами, программисты уходят с Linux на Винду, ибо понимают что прошлое, настоящее и будущее за ней.

humour

Новый логотип для Linux 3.1

По случаю предстоящего выпуска ядра Linux 3.1 Дэрик Вонг из IBM предложил изменить логотип Tux на более подходящий номеру версии:



На всякий случай напомню логотип одной операционной системы, выпущенной 19 лет назад:

humour

Новый логотип для Linux 3.1

По случаю предстоящего выпуска ядра Linux 3.1 Дэрик Вонг из IBM предложил изменить логотип Tux на более подходящий номеру версии:



На всякий случай напомню логотип одной операционной системы, выпущенной 19 лет назад:

Песочница

Удаленная поддержка компьютера на Linux OS

Настройка IPv6-туннеля за симметричным NAT и удаленного управления через VNC


Не так давно я искал решение для удаленного администрирования системой на Linux. Основная проблема в том, что подключен к интернету через провайдеров, использующих симметричный NAT. То есть из internet машины не доступны. Если поискать, то можно найти некоторые программы для удаленного администрирования, но как правило они немало стоят. Опишу, как можно сделать доступ снаружи без таких программ с помощью IPv6-туннеля через gogonet и VNC.

Песочница

Программный RAID-6 под Linux: опыт восстановления массива 16Тб

Несколько дней назад вышел из строя один из жестких дисков на бюджетном массиве из 16х1ТБ дисков. Уровень массива: RAID 6. Ситуация осложнилась тем, что (как оказалось) ранее также встал кулер на видеокарте этого же сервера, что не было заранее подмечено, и после замены HDD, в результате изменения режима охлаждения корпуса — это стало проявляться в виде зависаний во время синхронизации, что само по себе очень неприятно. Вылилось это в то, что массив перестал автособираться, и были помечены как сбойные еще несколько дисков, и пришлось уже разбираться с ним по-серьёзному, курить вики, мануалы и форумы (форумы — самое полезное, поскольку описывают опыт конкретных людей в конкретных ситуациях).

Ни о чём

Ar. Drone: Linux на борту

image
AR. Drone от Parrot добился колоссальных успехов с момента выпуска в сентябре 2010, и постоянно поражает игровые сообщества и сообщества разработчиков. Более того, покопавшись в нем можно обнаружить, что AR. Drone работает под Linux. Что же делает этот гаджет?
Подключить его к компьютеру очень просто, потому что это устройство WiFi. Он выглядит специальной сетью, к которой затем можно присоединиться с любого компьютера, имеющего беспроводную сетевую карту. Если вы уже соединили его с мобильным устройством, IP-адрес не будет назначатся при подключении к сети, и к нему невозможно будет подсоединиться. Чтобы обойти эту проблему, запустите мобильное устройство и отключите функцию спаривания в настройках приложения Free Flight, или просто нажмите кнопку Разорвать пару (Unpair) на устройстве.
Что можно почерпнуть из этой игрушки, не разбирая ее на части? Так как мы в его сети и знаем его IP-адрес, сканирование портов будет хорошей отправной точкой. Выполнив это, узнаем, какие порты открыты и доступны, а также поймем, какой доступ мы получим для подключения к устройству.
Запуск nmap показал два порта:

21/tcp open ftp
23/tcp open telnet


Попытавшись установить подключение к свободному порту telnet, мы попадаем в Bash без необходимости ввода пароля. Информация по входу показывает, что нам удалось подключиться к установке Linux c BusyBox и что есть доступный номер версии, поэтому можем проверить интимные подробности и вопросы безопасности, если это будет необходимо.
Дальнейшее рассмотрение показывает, что нас на самом деле непринужденно сбросили под root без пароля, и мы получили полный доступ к устройству.

#echo $USER
root


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

#cat /proc/cpuinfo
Processor: ARM926EJ-S rev 5 (v5I)
BogoMIPS: 233.47
Features: swp half thumb fastmult edsp java
CPU implementer: 0x41
CPU architecture: 5TEJ
CPU variant: 0x0
CPU part: 0x926
CPU revision: 5
Cache type: write-back
Cache clean: cp15 c7 ops
Cache lockdown: format C
Cache format: Harvard
I size: 32768
I assoc: 4
I line linght: 32
I sets: 256
D size: 16384
D assoc: 4
D line lenght: 32
D sets: 128
Hardware: Mykonos Parrot platform
Revision: 0904
Serial: 0000000000000000


А также информацию относительно памяти:
#cat /proc/meminfo
MemTotal:126072 kB
MemFree: 105652 kB
Buffers: 0 kB
Cached: 3604 kB


Здесь 128 МБ оперативной памяти на борту — немного больше, чем вы ожидаете найти на столь маленькой штучке. Памяти и вычислительной мощности хватает для встроенного устройства, и мы знаем, что на нем как минимум работают демоны FTP и telnet. Давайте посмотрим список процессов и увидим, что есть внутри еще интересного.
Взглянув на список процессов, мы обнаруживаем кроме двух вышеперечисленных демонов еще DHCP-сервер и syslogger. Кроме того, есть два интересных процесса, которые выглядят специфичными для этого устройства, один из них отвечает за обработку всех элементов управления и вывода видео обратно на ваше мобильное устройство:

960 root 2736 S /bin/sh /bin/check_update.sh
961 root 11824 S /bin/program.elf


С виду этот процесс program.elf похож на хостинг основного кода устройства. Здесь недоступен исходный код, и он, вероятно, был прикомпилирован к материнской плате, чтобы закрыть исходный код от пользователей.
Процесс check_update.sh выглядит доступным для чтения:

#cat /bin/check_update.sh

Похоже, что он контролирует каталог прошивки в поисках новых версий для обновления. Итак, остался только один процесс — program.elf. Он, вероятно, отвечает за всю коммуникацию и взаимодействие с мобильными устройствами.
По выдаче netstat видно, есть ли открытые порты, и если да, то какие и к какому адресу они привязаны.
Команда netstat -p показывает, что у нас есть открытый порт ТСР на 5559 и три UDP-порта — 5554, 5555, 5556. Все они принадлежат процессу program.elf. С учетом функциональности AR. Drone, на это есть целый ряд возможных причин. Один порт нужен для управления самим устройством, еще два — для видеоканалов передней и нижней камер. Это охватывает UDP-порты, но чтобы более точно определить, для чего какой порт предназначен, надо будет присмотреться попристальнее.
Примечательно, что единственным механизмом безопасности, встроенным в устройство, является техника спаривания устройств, доступная в настройках приложения: Free Flight. Ее нужно включать для предотвращения действий хулиганов по WiFi, которые могут захватить устройство, когда оно находится в полете.
AR. Drone великолепно оборудован — имеет встроенный Linux, много оперативной памяти и надежную механическую часть для обеспечения полета. То, что на самом деле открывает ряд возможностей для этой захватывающей воображение игрушки, доступно на встроенной установке Linux BusyBox. С копией Linux, летающей под вашим контролем, вы получаете возможность делать много необычных вещей.
Выполняя простые сканирования портов и проверки открытых портов и процессов, можно передавать пакеты с устройства и обратно, что потенциально позволяет создавать потоковое видео и механизмы контроля, которые используются на выбранном языке или платформе.
Чего хочется ожидать от сообщества AR. Drone — это основного приложения с открытым кодом для управления устройством. Это открыло бы железо на использование любого варианта Linux. А пока что это одна из слабых сторон, которая не должна мешать развитию одной из самых увлекательных современных игрушек.

Песочница

Аудит системных вызовов в Linux

Теория


Для работы auditd, необходимо что бы ядро было собрано с опциями AUDIT и AUDITSYSCALL
$ grep AUDIT /boot/config-`uname -r`
# CONFIG_AUDIT_ARCH is not set
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_AUDIT_TREE=y
CONFIG_AUDIT_GENERIC=y

AUDIT отвечает за общую подсистему аудита в ядре Linux, которую также использует SELinux. AUDITSYSCALL отвечает за инфраструктуру аудита системных вызовов, которая также используется в SELinux.
Основные особенности системы аудита в ядре Linux:
  • Минимальный оверхед, как при активированном, так и при отключенном аудите
  • Фильтрация на уровня ядра, что бы обеспечить наименьшие издержки
  • Использование Netlink в пользовательских приложений

Подсознание

Запуск Return to Castle Wolfenstein в Linux

Не так давно код славной игры Return to Castle Wolfenstein от легендарной idsoftware был открыт под лицензией GPL. Это так, к слову.


И вот после сданного экзамена по физике захотелось немного отдохнуть. Решил поиграть в RTCW. Как оказалось, запустить игру под Linux более чем реально.

(Под заголовком «Экспресс-установка» идет последовательность команд (для ОС Debian-семейства) без объяснений — для тех, кто не хочет читать много текста. Полный успех такого метода не гарантируется).

Внимание! Статья предполагает наличие базовых умений работы с терминалом Linux.