Ubuntu наследует классическую иерархию FHS (Filesystem Hierarchy Standard), но в 24.04 есть ряд особенностей, связанных с systemd, snap и безопасностью. Давайте пройдёмся по ключевым директориям, которые важны каждому пользователю.

/

Корень файловой системы.
Место, откуда начинается всё дерево каталогов. Хранит базовую структуру ОС.
Типовое применение: точка монтирования для остальных разделов; здесь лежат критически важные каталоги.

/bin

Назначение: базовые пользовательские утилиты, необходимые в режиме single-user.
Например: ls, cp, mv, cat, bash.
Типовое применение: команды, которые нужны всегда и должны быть доступны даже если другие разделы не смонтированы.

В Ubuntu 24.04 многие бинарники — ссылки на /usr/bin, так как продолжается консолидация каталогов.

/sbin

Назначение: системные бинарники для администрирования.
Примеры: fsck, mount, ip, iptables.
Типовое применение: инструменты для root.
Тоже в значительной степени перелинковано в /usr/sbin.

/usr

Основная «система внутри системы».
Здесь находятся программы, библиотеки, документация и ресурсы системы.
Подкаталоги:

/usr/bin — большинство пользовательских приложений

/usr/sbin — системные демоны и админские инструменты

/usr/lib — библиотеки

/usr/share — общие данные, иконки, локализации

Типовое применение: основная часть установленного ПО. Например система управления виртуальными машинами qemu в каталоге /usr/lib/libvirt хранит свои данные, в том числе диски виртуальных машин.


Замечание: современная Ubuntu стремится к структуре «usr-merge». Структура
usr-merge (слияние /usr) — это современный стандарт в Linux, включая Ubuntu, где все основные системные файлы (бинарники, библиотеки) перемещаются внутрь каталога /usr, а старые каталоги /bin, /sbin, /lib, /lib64 становятся символическими ссылками (симлинками) на соответствующие подкаталоги внутри /usr (например, /bin -> /usr/bin). Это унифицирует иерархию файловой системы, упрощает управление и делает систему более предсказуемой, особенно для систем с отдельным разделом /usr

/lib

Назначение: базовые системные библиотеки.
В реальности теперь /lib → /usr/lib.

/etc

В стандартные директории Ubuntu входит и каталог /etc — конфигурационные файлы системы.
Здесь живут настройки сервисов, сетевые конфиги, systemd-юниты (override), учетные записи и пр.

Примеры:

/etc/ssh/sshd_config

/etc/fstab

/etc/netplan/…

/etc/systemd/system/

/var

Динамические данные, которые часто меняются.
Подкаталоги:

/var/log — логи

/var/cache — кэш пакетов, браузеров и т.д.

/var/www — веб-данные (де-факто стандарт)

/var/lib — БД, статус демонов, каталоги сервисов (/var/lib/systemd, /var/lib/docker)

Типовое применение: всё, что генерируется и меняется в процессе работы.

/home

Домашние каталоги пользователей.
На Desktop — содержит tonну пользовательских настроек и конфигов приложений.
На Server — обычно почти пустой.

/root

Домашний каталог суперпользователя root.
Типовое применение: хранение root-скриптов, ключей, конфигов.

/boot

Назначение: ядра, initrd и конфигурации GRUB.
Типовое применение: полезно при тюнинге загрузки или откате ядра.

/media

Подключаемые устройства (USB, съемные носители).
Desktop автоматически монтирует их сюда через udisks.

/mnt

Общий каталог для временного монтирования вручную.
Админы любят тут монтировать NFS, дополнительные диски, iso — образы.

/opt

Место для сторонних приложений, которые не входят в систему.
Типично используется корпоративными пакетами и программами без репозиториев.

/srv

Хранилище данных сервисов, например:

/srv/ftp

/srv/www
Редко используется «из коробки», но FHS оставляет это как стандарт.

/snap

Особенность Ubuntu.
Каталог для пакетов Snap, их версий и монтированных squash-файлов. Snap — это современная система управления пакетами и развертывания приложений, которая позволяет упаковывать программы со всеми их зависимостями в единый, изолированный пакет (snap-пакет), что обеспечивает их работу на разных дистрибутивах Linux без конфликтов.
На Desktop используется активно, на Server — может быть отключён.

/run

Временные файлы рантайма (tmpfs).
Здесь располагаются PID-файлы, сокеты, рантайм-информация systemd.

/tmp

Назначение: временные файлы, доступные всем.
На большинстве систем монтируется как tmpfs.
Автоочистка через systemd-tmpfiles.

Отличия серверной и десктопной структуры директорий

Фундаментально структура одинаковая, но различается заполнение, назначение некоторых каталогов и присутствие дополнительных директорий для UI и снапов.

✔ 1. /home

Desktop: профили пользователей, конфиги GNOME/KDE, кучи скрытых каталогов (~/.config, ~/.local).

Server: обычно минимум пользователей; упор на сервисные роли.

✔ 2. /usr/share и /usr/lib

На Desktop: много GUI-данных: темы, иконки, шрифты, файлы для GNOME, Wayland/X11.

На Server: нет GUI-пакетов → структура значительно легче.

✔ 3. /var

Server: активное использование /var/lib сервисами (mysql, docker, postgres, systemd-journald).

логи в /var/log гораздо более объёмные.

Desktop: меньше серверных демонов, больше пользовательских логов (GNOME, Xwayland).

✔ 4. /snap

Desktop: Snap используется по умолчанию для Firefox, калькулятора, Snap Store.

Server: Snap может быть установлен, но часто отключается.

/var/lib/snapd тоже может отсутствовать.

✔ 5. /run, /tmp

Одни и те же, но на Server активнее работают системные демоны → больше сокетов в /run.

✔ 6. /opt

Server: Часто используют для развёртки приложений вручную. Например, /opt/jetbrains, /opt/tomcat, /opt/lamp.

Desktop: Реже. Обычно только если пользователь вручную ставит бинарники.

✔ 7. /srv

Server: Может активно применяться для хранения данных сервисов.

Desktop: Почти всегда пустой.

Ubuntu 24.04 придерживается классического FHS, но всё всё больше переходит на «унифицированную» структуру /usr.
Главное отличие между Desktop и Server не в том какие директории есть, а кто ими пользуется:

Desktop наполнен конфигами интерфейса и снапами.

Server — логами, БД сервисов и данными демонов.

От max

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *