• Пишем модуль безопасности Linux

      Linux Security Modules (LSM) — фреймворк, добавляющий в Linux поддержку различных моделей безопасности. LSM является частью ядра начиная с Linux версии 2.6. На данный момент в официальном ядре «обитают» модули безопасности SELinux, AppArmor, Tomoyo и Smack.

      Работают модули параллельно с «родной» моделью безопасности Linux — избирательным управлением доступом (Discretionary Access Control, DAC). Проверки LSM вызываются на действия, разрешенные DAC.

      Применять механизм LSM можно по-разному. В большинстве случаев это добавление мандатного управления доступом (как, например, в случае с SELinux). Кроме того, можно придумать собственную модель безопасности, реализовать ее в виде модуля и легко внедрить, используя фреймворк. Рассмотрим для примера реализацию модуля, который будет давать права на действия в системе при наличии особого USB-устройства.

      Поглядим на схему и попытаемся разобраться, как работает хук LSM (на примере системного вызова open).


      Читать дальше →
    • MySQL Performance real life Tips and Tricks. Part 3-rd.

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

        Также, после опубликования первых двух статей я получил пару отзывов и вопросов, связанных с проектированием БД / расстановкой индексов / составлением запросов. На многие вопросы старался отвечать. С некоторыми из них поделюсь и в этой статье.

        Читать дальше →
      • Я не знаю Си

          Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
          Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.

          Читать дальше →
        • Создание языка программирования с использованием LLVM. Часть 2: Реализация парсера и AST

          • Перевод
          Добро пожаловать в Главу 2 учебника «Создание языка программирования с LLVM». В этой главе мы увидим, как использовать лексический анализатор, созданный в Главе 1, чтобы построить полный синтаксический анализатор для нашего языка Kaleidoscope. После того, как у нас будет готов парсер, мы будем строить Abstract Syntax Tree (AST) (Абстрактное синтаксическое дерево).
          Читать дальше →
          • +37
          • 18,2k
          • 6
        • Основы Linux от основателя Gentoo. Часть 2 (2/5): Назначения папок, поиск файлов

          • Перевод
          В данном отрывке рассказано о стандарте иерархии файловой системы (FHS), почему директории так называются и для чего они нужны. Упомянута переменная окружения PATH и разобраны основные команды для поиска файлов в системе, такие как whereis, find и locate (slocate).



          Навигация по основам Linux от основателя Gentoo:

          Часть I
          1. BASH: основы навигации (вступление)
          2. Управление файлами и директориями
          3. Ссылки, а также удаление файлов и директорий
          4. Glob-подстановки (итоги и ссылки)

          Часть II
          1. Регулярные выражения (вступление)
          2. Назначения папок, поиск файлов
          3. Управление процессами
          4. Обработка текста и перенаправления
          5. Модули ядра (итоги и ссылки)


          Читать дальше →
        • Основы Linux от основателя Gentoo. Часть 1 (4/4): Glob-подстановки

          • Перевод
          • Tutorial
          Заключительная часть перевода первой части замечательной серии учебных пособий. Предыдущие отрывки по ссылкам: начало, второй и третий.

          В данном, четвертом, отрывке рассматривается использование джокеров (wild cards) *, [] и ? для подставления путей по шаблону. А также, подводятся итоги первой части. Enjoy! ;)
          Читать дальше →
        • Основы Linux от основателя Gentoo. Часть 1 (3/4): Ссылки, а также удаление файлов и директорий

          • Перевод
          Третий отрывок из перевода первой части руководства. Предыдущие: первый, второй.

          В этом отрывке рассмотрены жесткие и символические ссылки, а также разобрано удаление файлов и директорий с помощью команд rm и rmdir.
          Читать дальше →
        • Основы Linux от основателя Gentoo. Часть 1 (2/4): Управление файлами и директориями

          • Перевод
          Продолжение перевода первой части руководства. Начало тут.

          В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.
          Читать дальше →
        • Основы Linux от основателя Gentoo. Часть 1 (1/4): BASH, основы навигации

          • Перевод

          Предисловие


          Об этом руководстве


          Добро пожаловать в первую из четырех частей обучающего руководства по основам Linux, разработанного чтобы подготовить вас к сдаче экзамена Linux Professional Institute 101. В нем вы познакомитесь с bash (стандартной оболочкой командного интерпретатора в Linux), узнаете о большинстве возможностей таких стандартных команд Linux, как ls, cp и mv, разберетесь в инодах, жестких и символьных ссылках, и многом другом. К концу этого руководства у вас сформируется некий фундамент знаний, и вы будете готовы к изучению основ администрирования Linux. К концу всего курса (8 частей), у вас будет достаточно навыков, чтобы стать системным администратором Linux и пройти сертификацию LPIC Level 1 от Linux Professional Institute, если конечно захотите.



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


          Читать дальше →