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 — логами, БД сервисов и данными демонов.