Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

Обучение кибербезопасности и этичному хакерству: структура Linux

Иван Глинкин, руководитель группы аппаратных исследований в Бастионе, о том, из чего состоит операционная система Linux: её компоненты и файловая структура.

390 открытий2К показов
Обучение кибербезопасности и этичному хакерству: структура Linux

Я, Иван Глинкин, руководитель группы аппаратных исследований в Бастионе и автор канала HydrAttack, продолжаю свой цикл обучающих материалов для начинающих «белых» хакеров. Сегодня расскажу вам, из чего состоит операционная система Linux: изучим ее компоненты и файловую структуру. Понимание этих основ важно для дальнейшей работы с этой ОС.

Структура Linux

Linux — это многозадачная многопользовательская операционная система (ОС) с открытым исходным кодом. Она имеет модульную архитектуру и отличается высокой стабильностью и безопасностью. Рассмотрим подробнее основные компоненты, из которых состоит Linux.

Компоненты

Ядро (Kernel) — это центральная часть ОС, которая управляет аппаратными ресурсами и взаимодействует с приложениями. Ядро выполняет следующие задачи:

● управление памятью;

● управление процессами — создание, планирование, завершение;

● управление файлами и файловыми системами;

● управление вводом/выводом — работа с устройствами, такими как жесткие диски, клавиатуры, мыши.

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

Оболочка (Shell) — интерфейс, который принимает команды от пользователя и передает их операционной системе для выполнения. Оболочка предоставляет пользователю командный интерфейс, который позволяет выполнять команды, запускать скрипты и управлять файлами. В Linux есть несколько оболочек:

● Bash (Bourne Again Shell) — самая популярная оболочка в большинстве дистрибутивов Linux;

● Zsh, Csh, Fish — другие распространенные оболочки. В рамках курса мы установим и настроим Zsh.

Системные библиотеки — содержат функции и интерфейсы, которые могут использовать приложения для работы с ядром. Например, библиотека glibc является стандартной библиотекой C, используемой многими программами в Linux для выполнения таких базовых операций, как работа с файлами и памятью.

Драйверы устройств — программные компоненты, которые позволяют ОС «общаться» с аппаратным обеспечением, например, сетевыми картами, жесткими дисками или видеокартами.

Системные утилиты — помогают пользователю и системному администратору взаимодействовать с системой. Выполняют следующие базовые системные функции:

● управление файлами (например, cp, mv, rm);

● управление процессами (например, ps, top, kill);

● работа с сетью (например, ping, ifconfig, netstat).

Файловая система — определяет, как данные хранятся, организуются и управляются на диске. Linux поддерживает множество файловых систем: ext4, XFS, Btrfs и другие. Важная особенность файловых систем в Linux — поддержка виртуальных файловых систем, например, /proc и /sys, которые предоставляют информацию о состоянии системы и ядра.

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

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

● APT для дистрибутивов на базе Debian (например, Ubuntu);

● YUM или DNF для Red Hat и CentOS;

● Pacman для Arch Linux.

Файловая структура Linux

При работе с Linux нужно держать в голове концепцию, которая лежит в основе системы: «Все — это файл». То есть любые данные, каталоги и процессы ОС можно выразить как поток байтов, занимающий определенный объем файловой системы на дисковом накопителе.

Следовательно, все, что занимает место, можно назвать файлом. А файлы в Linux структурированы следующим образом:

Обычные файлы:

○ текстовые;

○ бинарные;

○ файлы изображений;

○ архивы и т.п.

Специальные:

○ блочные для обозначения устройств (b);

○ символьные (с);

○ ссылочные для представления символьных ссылок (l);

○ файлы сокетов для связи между разными процессами и пр. (s).

Директории:

○ файлы, в которых хранятся другие файлы (d).

Файловая структура Linux организована по иерархическому принципу. Основным каталогом в ней выступает корень — /. В этой структуре каждый каталог или файл находится на определенном уровне и имеет свое предназначение. Вся информация от системных файлов до пользовательских данных хранится в строго определенных местах, что делает систему организованной и логически понятной.

Важно отметить, что в Linux нет понятий «дисков» (как C:\ в Windows), все данные организованы в рамках единого пространства имен файловой системы.

/ (Корень) — корневой каталог, который является основой файловой системы. От него исходят все остальные каталоги и файлы. В отличие от Windows, где каждый диск имеет свою букву, в Linux все файловые системы монтируются в дерево каталогов под корнем /.

Обучение кибербезопасности и этичному хакерству: структура Linux 1

/bin. В этом каталоге содержатся основные системные бинарные файлы, доступные для всех пользователей. Эти программы необходимы для базовой работы системы:

ls — вывод списка файлов;

cp — копирование файлов;

mv — перемещение файлов.

Обучение кибербезопасности и этичному хакерству: структура Linux 2

/sbin. Здесь находятся системные бинарные файлы, предназначенные для использования администраторами системы. Эти утилиты включают инструменты для настройки системы:

● ifconfig — настройка сетевых интерфейсов;

● fdisk — управление разделами диска.

Обучение кибербезопасности и этичному хакерству: структура Linux 3

/usr. Один из самых больших и значимых каталогов. Здесь хранится программное обеспечение, библиотеки и данные, которые применяются всеми пользователями системы. В нём можно найти подкаталоги:

● /usr/bin — бинарные файлы общего назначения;

● /usr/sbin — утилиты для администрирования;

● /usr/lib — библиотеки, необходимые для работы программ.

В каталоге /usr также есть директории, относящиеся к документации (/usr/share/doc), исходным кодам и другим ресурсам.

Обучение кибербезопасности и этичному хакерству: структура Linux 4

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

Обучение кибербезопасности и этичному хакерству: структура Linux 5

/var. Каталог, содержащий данные, которые изменяются во время работы системы. Сюда относятся логи, временные файлы, базы данных и другая информация, которая может расти в размере:

● /var/log — логи системы и приложений;

● /var/spool — данные для очередей печати и почтовых серверов.

Обучение кибербезопасности и этичному хакерству: структура Linux 6

/tmp. Временное хранилище данных. Этот каталог используется программами для записи временных файлов, которые будут удалены при перезагрузке системы. Например, сюда могут сохраняться промежуточные результаты работы программ.

Обучение кибербезопасности и этичному хакерству: структура Linux 7

/etc. Это каталог с конфигурационными файлами системы и файлами установленных программ. Например:

● /etc/passwd — файл с учетными записями пользователей;

● /etc/hostname — имя текущего хоста (компьютера).

Обучение кибербезопасности и этичному хакерству: структура Linux 8

/lib. Содержит системные библиотеки, которые необходимы для работы приложений и ядра. Например, файлы, необходимые для загрузки и выполнения программ, которые находятся в каталогах /bin и /sbin.

Обучение кибербезопасности и этичному хакерству: структура Linux 9

/dev. Здесь находятся «файлы устройств». В Linux устройства, например, жесткие диски, клавиатуры или порты, представлены в виде файлов, что позволяет работать с ними так же, как с обычными файлами. Примеры файлов устройств:

● /dev/sda — первый жесткий диск;

● /dev/ttyS0 — последовательный порт.

Обучение кибербезопасности и этичному хакерству: структура Linux 10

/mnt и /media. Эти каталоги используются для монтирования временных файловых систем, таких как USB-накопители, DVD-диски или сетевые ресурсы. Пример: когда подключается USB-диск, его содержимое может быть смонтировано в /media/username/usb. В моем случае к виртуальной машине подключена общая папка, расположенная на хостовой машине под названием Pentesting.

Обучение кибербезопасности и этичному хакерству: структура Linux 11

/opt. В этом каталоге устанавливаются сторонние приложения, которые не являются частью базовой системы. Это место для установки программ, не следующим стандартным правилам размещения файлов в системе.

К сожалению, у меня на Linux пока ничего не установлено, поэтому давайте посмотрим, что творится на Mac.

Обучение кибербезопасности и этичному хакерству: структура Linux 12

/root. Домашний каталог суперпользователя (root). В отличие от обычных пользователей, root имеет доступ ко всей системе и может выполнять любые задачи. Каталог /root обычно изолирован от других пользовательских данных.

Обучение кибербезопасности и этичному хакерству: структура Linux 13

/proc и /sys. Это виртуальные файловые системы, которые содержат данные о системе и ее состоянии. Эти каталоги создаются и обновляются ядром на лету:

● /proc — содержит информацию о процессах, использовании ресурсов и состоянии системы;

● /sys — предоставляет доступ к информации о железе и управлению устройствами.

Обучение кибербезопасности и этичному хакерству: структура Linux 14
Обучение кибербезопасности и этичному хакерству: структура Linux 15

Файловая структура Linux следует стандарту FHS (Filesystem Hierarchy Standard), который определяет, где должны находиться файлы и каталоги. Этот стандарт соблюдается большинством дистрибутивов, что делает систему предсказуемой для администраторов и разработчиков.

Особенности и преимущества структуры:

1. Унификация — вся файловая система выглядит, как единое дерево, что позволяет легко ориентироваться и монтировать различные устройства.

2. Безопасность — пользователи имеют доступ только к своим каталогам, что защищает системные файлы от случайного повреждения.

3. Гибкость — легко монтировать дополнительные файловые системы, сетевые диски и внешние устройства в любую часть структуры.

Цель файловой структуры Linux — обеспечить четкое разделение системных и пользовательских данных, облегчить управление системой и повысить ее безопасность.

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

Следите за новыми постами
Следите за новыми постами по любимым темам
390 открытий2К показов