Файловая система Linux — это каркас, на котором держится всё: от ядра до личных фото пользователя. Разобравшись, где «живут» настройки, программы и журналы, легче настраивать серверы, искать ошибки и экономить время на рутинных задачах. Ниже — подробный путеводитель по основным директориям, их назначению и типичным сценариям использования.
Общая логика FHS
Большинство дистрибутивов опираются на стандарт Filesystem Hierarchy Standard (FHS) . Он делит данные на четыре категории:
- Статические — меняются редко (исполняемые файлы, библиотеки).
- Динамические — активно пишутся системой (журналы, кэш).
- Системные — нужны всем пользователям.
- Пользовательские — личные файлы, конфигурации.
Понимание этого принципа помогает быстро отвечать на вопрос «где лежит файл?». Например, настройки ядра — в /proc
, а конфиги Nginx — в /etc/nginx
.
Корень /
Символ «слэш» обозначает исходную точку дерева каталогов. Здесь размещаются только те элементы, которые необходимы на самом раннем этапе загрузки: ядро, загрузчик и минимальный набор утилит. Всё остальное — в подкаталогах.
/bin и /sbin — базовые утилиты
/bin хранит бинарные файлы, доступные любому пользователю: ls, cp, grep. /sbin содержит утилиты администратора: iptables, reboot, mkfs. Отличие лишь в требуемых правах доступа.
- Команду можно быстро найти через which ls — она укажет на
/bin/ls
. - При минимальной аварийной загрузке именно эти каталоги монтируются первыми, чтобы «поднять» систему.
/etc — сердце конфигураций
В каталоге /etc
лежат конфиги для служб, демонов и самой оболочки. Отсюда стартует «душа» Linux — сервисы systemd, правила файервола и параметры сети.
/etc/ssh/sshd_config
— политика подключения по SSH./etc/fstab
— таблица автоматического монтирования файловых систем./etc/cron.*
— расписание периодических задач.
Совет: перед изменениями делайте резервную копию файла: cp sshd_config sshd_config.bak
.
/usr — вселенная пользовательских программ
Исторически /usr
означал «user system resources». Сейчас это кладовая почти всех приложений и библиотек, не нужных на стадии раннего бутстрапа.
- /usr/bin — основная часть исполняемых файлов ПО, установленного через пакетный менеджер.
- /usr/lib — динамические библиотеки (.so), без которых многие программы не запустятся.
- /usr/share — архитектурно-независимые данные: иконки, локализации, страницы справки.
- /usr/local — то же, но для ПО, собранного руками: ничего не перезаписывается при обновлении системы.
Чтобы посмотреть, какой пакет «привёз» бинарник, используйте dpkg -S /usr/bin/htop или rpm -qf.
/var — мир изменчивых данных
/var
расшифровывается как «variable». Сюда пишутся логи, почта, базы данных и кэш менеджеров пакетов.
- /var/log — журналы системы и приложений. journalctl даст доступ к systemd-логам.
- /var/spool — «почтовый ящик» для заданий cron, писем MTA и очередей печати.
- /var/lib — внутренние данные служб: например, репликация PostgreSQL или образы контейнеров Docker.
Регулярная чистка /var/cache
удержит сервер от переполнения диска.
/home — территория пользователей
Каждому пользователю система создаёт личную директорию /home/имя
. Здесь хранятся документы, настройки приложений с точкой в начале имени (.bashrc
, .config
). При резервном копировании чаще всего нужна именно эта папка.
/tmp и /run — временные файлы
/tmp
пригоден для файлов, которые можно безболезненно удалить после перезагрузки. /run
(раньше — /var/run
) содержит сокеты и PID-файлы работающих процессов. Обе директории могут быть смонтированы в память (tmpfs) для ускорения работы.
/opt — дополнительные приложения
Коммерческие или портативные приложения часто ставятся в /opt
. Пример: /opt/google/chrome
. Преимущество — полный контроль над папкой без вмешательства в системные /usr
.
/srv — сервисные данные
По FHS в /srv
хранятся данные, которые напрямую «раздаёт» сервис: веб-сайт Nginx (/srv/www
), репозитории Git (/srv/git
). Такая схема упрощает миграцию — достаточно перенести каталог.
/dev, /proc и /sys — «виртуальные» файловые системы
Эти каталоги не занимают места на диске, но отражают состояние оборудования и ядра.
- /dev — устройства:
/dev/sda
,/dev/null
. Проверьте их права командой ls -l /dev. - /proc — параметры ядра и процессов. Узнать конфигурацию CPU:
cat /proc/cpuinfo
. - /sys — ещё более детальный «пульт» управления драйверами.
Менять тут что-то стоит только с пониманием последствий.
/boot — стартовая площадка
Все файлы для загрузчика GRUB и образ ядра находятся в /boot
. Если раздел выделен отдельно, не забывайте увеличивать его размер при переходе на новые ядра.
/media и /mnt — точки подключения
/media
предназначен для автоматического монтирования съёмных носителей (флешки, DVD). /mnt
— временные точки ручного монтирования, например, при резервном копировании на сетевое хранилище.
Практические сценарии
Поиск «пропавшего» файла
- Вспомните тип содержимого: конфиг? смотрите
/etc
. Библиотека? ищите в/usr/lib
. - Используйте locate:
sudo updatedb && locate nginx.conf
.
Очистка места без риска
- apt clean удалит пакеты из
/var/cache/apt
. - Папку
/tmp
можно чистить автоматически с systemd-tmpfiles .
Быстрый аудит безопасности
- Проверьте права на
/etc/shadow
. Должно быть 640 или жёстче. - Убедитесь, что
/tmp
смонтирован с опциейnosuid,nodev
.
Заключение
Чёткая структура каталогов — одна из причин, почему файловая система Linux остаётся удобной и масштабируемой. Знание назначения директорий ускоряет настройку, упрощает резервное копирование и повышает безопасность. Практикуйтесь: пробуйте искать файлы, экспериментируйте на тестовой виртуалке и обращайтесь к документации — например, к разделу FHS на Debian Wiki .