Обзор
Все разновидности Linux следуют определенному стандарту FHS (Filesystem Hierarchy Standard).
Linux Foundation поддерживает FHS.
В целом, все в операционной системе Linux является файлом.
Однако все файлы не хранятся в одном и том же месте, поскольку каждый из них служит уникальной цели.
В этом руководстве мы сначала разберемся со структурой каталогов в системах Linux.
Затем мы узнаем о назначении различных путей, таких как /bin, /sbin, /usr/bin и других.
Также отметим, что мы можем использовать такие слова, как mount и directory, подразумевая одно и то же значение, потому что точки монтирования – это каталоги, которые служат точками доступа для файлов или каталогов.
Расположение каталогов
Все дистрибутивы Linux имеют более или менее одинаковое расположение каталогов. Каталог – это каталогизатор для хранения файлов. Файлы могут находиться на различных физических или виртуальных устройствах.
Структура каталогов Linux (структура файловой системы), поясненная примерами
Существует множество каталогов и подкаталогов.
Чтобы прояснить ситуацию, давайте вкратце рассмотрим некоторые из них верхнего уровня:
- /root – родительский каталог, доступный для root
- /bin – здесь хранятся все типы бинарных файлов
- /boot – важные файлы, необходимые при загрузке, такие как файлы ядра, файлы загрузчика
- /etc – файлы конфигурации программ, обычно.conf
- /dev – файлы доступа к устройствам, таким как терминалы
- /opt – пакеты дополнительного программного обеспечения, устанавливаемые отдельными пользователями
- /lib – библиотеки, необходимые для работы бинарных файлов в системе
- /mnt – смонтированные файловые системы
- /var – постоянно изменяющиеся данные, например, файлы логов
Файлы хранятся либо в этих каталогах, либо в их подкаталогах.
Однако в этой статье мы сосредоточимся на каталоге/bin, где хранятся бинарные файлы.
Примечательно, что для двоичных файлов существует более одного подкаталога.
Мы последовательно посмотрим на каждый из них.
Бинарные каталоги
В целом, двоичный файл – это последовательность битов, то есть нулей и единиц, которые кодируют информацию.
Одним из наиболее распространенных типов бинарных файлов является исполняемый объект.
Мы также можем назвать его компьютерной программой.
Другие типы бинарных файлов – это архивы, изображения, аудио- и видеофайлы и т.д.
Некоторые исполняемые файлы могут быть важны для ОС, но некоторые являются дополнениями и дополнительными функциями.
В зависимости от их использования ОС хранит их в разных каталогах.
Давайте разберемся в различных каталогах, в которых хранятся эти файлы, и поймем их суть.
/bin
Каталог /bin содержит бинарные файлы, необходимые для работы операционной системы.
Например, такие программы, как ls, cat и другие, являются необходимыми программами.
После загрузки ОС эти программы нужны нам для выполнения основных операций Linux в однопользовательском режиме.
Обычные пользователи системы должны избегать работы с этими файлами, так как это может привести к нарушению работы некоторых базовых функций ОС.
Давайте посмотрим, как выглядит список директории /bin:
Вот некоторые типичные файлы, существующие в каталоге /bin.
/sbin
Название /sbin означает system binary.
Он отличается от /bin очень незначительно.
По большей части в каталоге /sbin хранятся бинарники, необходимые операционке для управления системой.
К двоичным файлам, хранящимся в /sbin, относятся ifconfig, fdisk, init, shutdown, systemd и другие.
Для их выполнения требуются привилегии root.
По этой причине обычные пользователи системы не должны работать с ними.
Давайте посмотрим фрагмент списка каталога /sbin:
/usr/bin
В каталоге /usr могут храниться все файлы, доступные только для чтения, которые могут быть общими для всех пользователей.
Когда обычные пользователи устанавливают программное обеспечение в систему, бинарные файлы обычно помещаются в /usr/bin, а библиотеки – в /usr/lib.
Нам не нужны эти двоичные файлы для загрузки или восстановления системы.
По сути, обычные пользователи используют эти исполняемые программы и файлы.
Такие программы, как diff, du и scp, являются распространенными примерами бинарных файлов, помещаемых в /usr/bin.
В приведенном ниже фрагменте показан путь, по которому эти программы находятся в системе:
Мы видим несколько важных файлов по пути /usr/sbin.
/usr/local/bin
Внутри каталога /usr есть подкаталог /local, специально предназначенный для хранения локальных бинарных файлов.
Эти бинарные файлы являются локальными для пользователей системы, и системные пакеты не управляют ими.
Некоторые дистрибутивы Linux обновляют пакеты автоматически.
Но в этом случае такие локальные двоичные файлы не будут обновляться.
Пользователи могут устанавливать программы в это место, не опасаясь, что они будут заменены.
🖧 В чем разница между curl и Wget?
Такие программы, как wget, python3 и git, являются распространенными примерами пакетов для локальных пользователей:
Как и ожидалось, это все пользовательские инструменты.
/usr/local/sbin
Локально установленные для системных администраторов двоичные файлы находятся по пути /usr/local/sbin.
Только права пользователя отличают его от /usr/local/bin.
В частности, пользователи, кроме системного администратора, не должны устанавливать и хранить какие-либо программы в каталоге /usr/local/bin.
Такие утилиты, как Wireshark и Nmap, являются обычными обитателями этого пути.
Давайте посмотрим пример списка директории /sbin:
Таким образом, каждый каталог или подкаталог /bin играет уникальную роль в схеме каталогов системы Linux.
Определения системы
При обсуждении файловых систем важно видеть иерархию файловых систем.
В системе Linux мы можем проверить подробное расположение файловых систем с помощью команды hier.
Она описывает все основные каталоги и подкаталоги по умолчанию, такие как /bin, /dev, /etc, /usr, /var и другие.
Кроме того, man-страница для hier по умолчанию поставляется со всеми дистрибутивами Linux, поскольку она определена стандартом Filesystem Hierarchy Standard:
В данном случае мы приводим список документации hier и фильтруем его с помощью расширенных регулярных выражений grep, чтобы перечислить только двоичные каталоги и первые две строки их описания.
По сути, приведенная выше информация показывает, как различные файлы хранятся в разных местах, и эти места действительно служат уникальным целям.
Аналогично, это помогает, когда мы пишем программу и хотим выполнить ее из нескольких мест.
Заключение
Подводя итог, можно сказать, что у нас есть различные типы бинарных файлов, и каждый из них хранится в определенных подкаталогах.
В этой статье мы сначала рассмотрели расположение каталогов.
Затем мы узнали, как хранятся файлы.
И наконец, мы изучили намерения, лежащие в основе каталогов бинарных файлов в системе Linux.
см. также:
- 🖧 Как просканировать цель с помощью Nmap?
- Как сканировать удаленный хост на открытые порты с помощью портативного сканера nmap
- Быстрый SQL Server пентест с NMAP
- 🖧 Как определить пользователя запущенной службы с помощью systemctl
- 📜 Создание переменных, доступных только для чтения, а также неизменяемых переменных в Bash
- 🐧 Введение в Polkit: Навигация по фреймворкам авторизации в Linux