Рубрика «UNIX» - 11

Здравствуйте!

Пока не стихают холивары на тему, аморально или нет использовать бесплатные платформы для создания коммерческих продуктов, мы тихой сапой сделали это. И не стесняемся брать с клиентов деньги, потому что запилили на базе свободного кода реально классную штуку — универсальный аппаратный шлюз безопасности. Раньше у нас был коммерчески успешный межсетевой экран, но для Microsoft Windows. Бурный поток идей в какой-то момент вышел из берегов «винды», и встал вопрос — а что дальше? А дальше — Linux или Net/Open/Free BSD. Наши гуру собрались, покурили и решили вместо изобретения собственного велосипеда использовать OPNsense. Эта статья поможет тем, кто захочет сделать нечто подобное.

Как мы оседлали OPNsense - 1

Читать полностью »

image
Этим летом мне на глаза попалось эссе Брайана Кернигана «Иногда старые способы — лучшие», опубликованное в честь 25-летнего юбилея журнала IEEE Software в 2008 году. В нем профессор Керниган рассказывал о том, какие инструменты он использует в работе.

В тот момент он был занят двумя сложными проектами — один из них подразумевал экспертный анализ проекта на 100 000 строк кода, написанный на C и Assembler в 1990 году, под Windows XP; другой — перенос кода с экзотического языка L1 на не менее экзотический язык L2 при помощи программы, написанной на неназванном скриптовом языке под Linux. Удивительно, но для столь разных задач профессор Керниган вместо IDE использовал один и тот же набор инструментов — grep, diff, sort, awk, wc и прочих «старых знакомых» из эпохи раннего Unix. Более того, многие инструменты и IDE конца прошлого десятилетия он подверг критике за неудобность и несовершенство.

Действительно, к некоторым вещам в своей жизни мы привыкли настолько сильно, что уже воспринимаем их за данность и критиковать их нам даже не приходит в голову — нам кажется, будто они существовали всегда. Подобный образ мышления помогает адаптироваться к потоку новой информации и неизбежен в современном мире, но давайте не будем сегодня отказывать себе в удовольствии «спуститься на уровень ниже», чтобы увидеть, как появилась сама идея программных инструментов (они же далее по тексту — «software tools», утилиты, команды Unix).
Читать полностью »

Какую вы знаете самую простую команду Unix? Есть echo, которая печатает строку в stdout, и есть true, которая ничего не делает, а только завершается с нулевым кодом.

Среди множества простых Unix-команд спряталась команда yes. Если запустить её без аргументов, то вы получите бесконечный поток символов "y", каждый с новой строки:

y
y
y
y
(...ну вы поняли мысль)

Хотя на первый взгляд команда кажется бессмысленной, но иногда она бывает полезной:

yes | sh boring_installation.sh

Когда-нибудь устанавливали программу, которая требует ввести "y" и нажать Enter для установки? Команда yes приходит на помощь! Она аккуратно выполнит эту задачу, так что можете не отвлекаться от просмотра Pootie Tang.
Читать полностью »

Если вы хоть раз были сбиты с толку, что означает символ "амперсанд" (&) или "звёздочка" ("знак умножения", *) или запутывались, когда что использовать, то это статья для вас. Авторы Go старались сделать язык знакомым большинству программистов, и многие элементы синтаксиса заимствовали из языка С. Но в 2017м уже сложно понять, большинство программистов владеют С или нет, и смею полагать, что уже нет. Поэтому концепции хорошо знакомые прошлому поколению разработчиков, могут выглядеть совершенной абракадаброй для для нового поколения. Давайте немного копнём историю и расставим все точки над ї в вопросах указателей в Go и использования символов & и *.

Зачем в Go амперсанд и звёздочка (& и *)? - 1

Читать полностью »

UltraVNC как замена TeamViewer - 1

Предупреждение: все прилетевшие тапочки будут проданы, помидоры – съедены, яйца – пожарены, испорченные – выброшены. Те, кто думают, что мы маемся фигней – вы угадали, возьмите с полки пирожок. Автор не призывает бросать мешки грудью на амбразуры. Он вообще ни к чему не призывает – он же не политик и не гражданин с активной гражданской позицией. А вот желающих подискутировать – милости просим. Сегодня я буду рассказывать вам занимательную историю о замене Teamviewer на UltraVNC.Читать полностью »

Уязвимость Stack Clash позволяет получить root-привилегии в Linux и других ОС - 1

Изображение:finnsland, CC BY-SA 2.0

В механизме управления памятью операционных систем Linux, OpenBSD, NetBSD, FreeBSD и Solaris обнаружена серьезная уязвимость, позволяющая осуществлять повышение привилегий до уровня суперпользователя и выполнять произвольный код. Проблема безопасности получила название Stack Clash.Читать полностью »

All-In-One: Proxmox + OpenMediaVault или ещё одна идея для домашнего NAS - 1

Астрологи объявили месяц статей о домашних NAS на хабре, так что поделюсь и своей историей успеха...

Не так давно я попробовал новый FreeNAS Coral. Понравилось мне в нем если не все, то очень многое: это и новый гипервизор bhyve, и повсеместное использование 9P для проброса файловой системы на гостя, а так же идея с docker и многое другое.
Кроме того я ещё больше влюбился в ZFS со всеми её плюшками, такими как дедупликация и сжатие на лету.

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

В статье так же будет немного рассказано про Docker и автоматический прокси с автоматическим получением сертификатов Letsencrypt.Читать полностью »

На Хабрахабре Tmux (ти-макс) упоминался неоднократно, тем не менее, решил написать еще одну шпаргалку, т.к. в других некоторые важные моменты не показаны.

Tmux (терминальный мультиплексор) позволяет работать с несколькими сессиями в 1 окне.
Вместо нескольких окон терминала к серверу — вы можете использовать одно.
Позволяет подключаться/отключаться к текущему состоянию сессии. Запущенные программы и процессы продолжают работать. (Можно использовать вместо nohup, dtach)

Например, на работе правим файлы в Vim. Окно терминала с открытыми файлами, процессами. Отключаемся от сессии. Далее подключаемся к этой сессии из дома и получаем те же окна с открытыми файлами в Vim, процессами и т.д. Можно продолжить работу с того же момента, на котором остановились. Также удобно при разрыве связи. Дополнительно можно работать совместно с другими в терминале, если подключены к одной сессии. Каждый видит, что делает другой.

Читать полностью »

Настоящий Unix — не есть приемлемый Unix - 1Командная строка Unix полна сюрпризов. Например, вы знали, что инструмент ls, который чаще всего используется для получения списка файлов в текущем каталоге, в версии OS X распознаёт не менее 38 разных флагов?

Я не знал, так что затвитил этот факт. И получил парочку ответов, один из которых заставил меня задуматься: действительно ли саму Unix нужно винить в этом?

Насколько я знаю, ни Linux, ни OS X не были спроектированы в строгом соответствии с философией Unix. Будет лицемерием основывать критику “Unix” только на этих производных от Unix, которые есть у нас сегодня.

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

Но я немного опережаю события. Прежде чем я начну говорить об этом, давайте более пристально посмотрим на команду ls и попробуем выяснить, что конкретно она делает не так.
Читать полностью »

Модераторы, при следующем внеснии мной правки я просто внесу правку в мастер-копию, размещённую на моём компьютере и пересу её сюда. Так что все ваши правки исчезнут. Если хотите сообщите мне об ошибке, используйте стандартный способ (личку). См. также: github.com/limonte/dear-habr/issues/80 .

В первой части статьи перечислю кучу костылей UNIX, и вообще разных недостатков. Во второй — про «философию UNIX». Статья написана наскоро, «полировать» дальше не хочу, скажите спасибо, что написал. Поэтому многие факты привожу без ссылок.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js