Вы можете прочитать об этом, например, в Википедии. Выдержка:
Стандарт иерархии файловой системы (FHS) определяет основные каталоги и их содержимое в операционных системах Linux. По большей части это формализация и расширение традиционной иерархии файловой системы BSD.
FHS поддерживается Linux Foundation, некоммерческой организацией, в которую входят крупные поставщики программного и аппаратного обеспечения, такие как HP, Red Hat, IBM и Dell. Текущая версия 3.0, выпущена 3 июня 2015 года.
Визуальное представление с кратким описанием:
По сути, Linux разделил структуру каталогов на основе функций, необходимых для обеспечения максимальной безопасности системы с минимальным количеством необходимых разрешений. В противном случае кому-то придется выполнять много работы, которую можно избежать.
Помните, что Unix и Linux, созданные как многопользовательские системы, и Windows были созданы для одного пользователя. Все остальное можно объяснить из этой идеи. Вы можете объяснить каждый каталог, думая о его многопользовательской безопасности.
3 примера:
Вы увидите, что файлы и каталоги, предназначенные только для администратора, собраны в одном каталоге: s в /sbin
и /usr/sbin
и /usr/local/sbin
означает систему. Обычный пользователь не может даже запускать программы, которые там находятся. Файлы, которые может запустить обычный пользователь, находятся в / bin, / usr / bin, / usr / local / bin в зависимости от того, где он должен находиться наиболее логично. Но если они только администраторы, они должны перейти к s
версии этого каталога. Существует известная утилита под названием fuser
. Вы можете убить процессы с ним. Если бы обычный пользователь мог использовать это, он мог бы убить ваш сеанс.
То же самое касается /home
: / home / user1 является собственностью user1. / home / user2 является собственностью user2. user2 не имеет никакого дела, делая вещи в доме пользователя user1 (и наоборот: верно, что user1 не имеет никакого дела, делая вещи в доме пользователя user2). Если бы все файлы находились в / home без имени пользователя, вам нужно было бы дать разрешения каждому файлу и оценить, разрешено ли кому-либо писать / удалять эти файлы. Кошмар, если у вас есть десятки пользователей.
Дополнение по поводу библиотек.
/lib/
, /usr/lib/
и /usr/local/lib/
являются исходными местоположениями, до того, как существовали мультибиблиотечные системы и существуют для предотвращения поломок. /usr/lib32
, /usr/lib/64
, /usr/local/lib32/
, /usr/local/lib64/
Являются 32- / 64-битные мультибиблиотечные изобретения.
Это не статичное понятие в любом случае. Другие разновидности Linux внесли изменения в эту схему. Например; В настоящее время вы увидите, что Debian и Ubuntu сильно меняются в макете FHS, поскольку SSD лучше использовать только для чтения. Существует движение к новой компоновке, в которой файлы разделяются на «доступный только для чтения» и «доступный для записи» каталог / группу, поэтому у нас может быть корневой раздел, который может быть подключен только для чтения (раздел для ssd) и доступен для записи. (Сата HDD). Новый каталог, который используется для этого (не в образе), является /run/
.