иерархия_файловой_системы

Иерархия файловой системы

В этом руководстве, мы рассмотрим, где расположены файлы конфигураций и каковы их функции. Благодаря стандарту иерархии файловой системы (Filesystem Hierarchy Standard) директории и файлы, которые мы будем рассматривать, сохраняют своё расположение даже в разных дистрибутивах.

Все файлы и каталоги располагаются в корневой директории /. Даже если эти данные находятся на различных носителях, какие-то из этих каталогов присутствуют, а какие-то могут отсутствовать. В качестве примера можно привести каталоги, связанные с подсистемой X Window, когда каталогов может и не быть, если графическая подсистема не установлена. Однако, большинство каталогов присутствует на всех UNIX-подобных операционных системах и используется аналогичным образом.

Команда Корневая директория, содержащая всю файловую иерархию
/bin/ Утилиты, которые доступны всем пользователям, такие как cat, ls, cp и др.
/boot/ Загрузочные файлы (файлы загрузчика, ядро, initrd, System.map). Как правило, выносится на отдельный раздел.
/dev/ Файлы устройств. Файлы в данном каталоге обычно создаются драйверами (например, /dev/null, /dev/zero, /dev/sda1).
/etc/ Основной каталог конфигурационных файлов системы.
/home/ Домашние директории с пользовательскими данными. Могут быть на отдельном разделе либо монтироваться по nfs.
/lib/ Основные библиотеки, необходимые для работы программ из /bin/ и /sbin/.
/media/ Точки монтирования для сменных носителей, таких как CD-ROM, DVD-ROM, флеш-карты.
/mnt/ Используется для монтирования временных файловых систем.
/opt/ Дополнительное программное обеспечение. Сюда обычно устанавливаются различные компиляторы и пользовательское ПО, которое не требует соответствия FSHS
/proc/ Виртуальная файловая система, представляющая состояние ядра операционной системы и запущенных процессов в виде файлов.
/root/ Домашняя директория пользователя root.
/sbin/ Основные системные программы для администрирования и настройки системы (например, init, iptables, ifconfig).
/srv/ Данные, специфичные для окружения системы.
/tmp/ Временные файлы.
/usr/ Вторичная иерархия для данных пользователя, содержит большинство пользовательских приложений и утилит.
/usr/bin/ Дополнительные программы для всех пользователей, не являющиеся необходимыми в однопользовательском режиме. При различных решениях может монтироваться отдельно.
/usr/include/ Стандартные заголовочные файлы.
/usr/lib/ Библиотеки для программ, находящихся в /usr/bin/ и /usr/sbin/.
/usr/sbin/ Дополнительные системные программы (такие как демоны различных сетевых сервисов).
/usr/share/ Архитектурно-независимые общие данные.
/usr/src/ Исходные коды ядра.
/usr/local/ Третичная иерархия для данных, специфичных для данного хоста. Обычно содержит такие поддиректории, как bin/, lib/, share/.
/var/ Изменяемые файлы, такие как файлы регистрации (log-файлы), временные почтовые файлы, файлы спулеров.
/var/lock/ Лок-файлы, указывающие на занятость некоторого ресурса.
/var/log/ Различные log-файлы.
/var/mail/ Почтовые ящики пользователей.
/var/run/ Информация о запущенных программах (в основном о демонах).
/var/spool/ Задачи, ожидающие обработки (например, очереди печати, непрочитанные или неотправленные письма).
/var/tmp/ Временные файлы, которые должны быть сохранены между перезагрузками.

Глобальные файлы конфигурации определяют поведение системы в целом. Как правило, они располагаются в корневом разделе диска (/), а доступ к ним требует прав суперпользователя.

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

Большинство глобальных файлов конфигурации хранится в директории /etc. Директория /etc/ больше походит на файловую систему с множеством подкаталогов, в которых размещены соответствующие конфигурационные файлы.

Ниже приведён список наиболее полезных подкаталогов:

  • /etc/X11/ – конфигурационные файлы xorg;
  • /etc/cups/ – поддиректория с конфигурационными данными сервера печати CUPS (Common UNIX Printing System);
  • /etc/xdg/ – глобальные файлы конфигурации для приложений, придерживающихся стандартов freedesktop.org;
  • /etc/ssh/ – используется для конфигурации поведения сервера OpenSSH для всей системы;
  • /etc/apparmor.d/ – содержит конфигурационные файлы для системы AppArmor;
  • /etc/udev/ – настройки, относящиеся к udev.


Директория /etc/opt/ содержит глобальные файлы конфигурации приложений, установленных в /opt/. Однако в Linux это требование не является обязательным. В результате бывает, что директория /opt/ полна установленных пользователем программ, а /etc/opt/ остаётся пустой.

Исторически, конфигурационные файлы в директории /etc/default/ содержали настройки сервисов/демонов для их использования с системами инициализации, например upstart. Однако с появлением systemd эта директория стала использоваться в основном для настроек приложений пользовательского пространства.

Система не перезаписывает файлы в директории /etc/default/. А значит, как только мы настроили там поведение приложений, оно не изменится при обновлении системы.

Вот несколько наиболее полезных глобальных файлов конфигураций:

  • /etc/resolv.conf – в нём определяется, какой (какие) DNS-сервер(ы) использует система;
  • /etc/bash.bashrc – в нём задают команды для выполнения в момент запуска командной оболочки bash;
  • /etc/profile – интерактивная командная оболочка выполняет команды скрипта .profile при запуске;
  • /etc/dhcp/dhclient.conf – там хранятся сетевые данные, которые запрашивают DHCP-клиенты;
  • /etc/fstab – определяет, где будут смонтированы все доступные системе разделы диска;
  • /etc/hostname – задаёт имя хоста для машины;
  • /etc/hosts – файл, соединяющий IP-адреса с именами хостов;
  • /etc/hosts.deny – перечисленные в этом файле удалённые хосты лишены доступа к машине;
  • /etc/mime.types – содержит MIME-типы данных и соответствующие им расширения файлов;
  • /etc/motd – файл с текстом сообщения, которое выводится при входе пользователя в систему;
  • /etc/timezone – задаёт часовой пояс;
  • /etc/sudoers – файл sudoers контролирует привилегии, относящиеся к команде sudo;
  • /etc/httpd/conf и /etc/httpd.conf.d – конфигурация веб-сервера Apache;
  • /etc/default/grub – содержит конфигурацию, которую использует команда update-grub для создания файла /boot/grub/grub.cfg;
  • /boot/grub/grub.cfg – команда update-grub генерирует этот файл автоматически в соответствии с настройками, заданными в файле /etc/default/grub.


Файлы пользовательской конфигурации определяют поведение системы только для задающего настройки пользователя.

Эти файлы, как правило, расположены в домашней директории пользователя и не требуют прав суперпользователя для редактирования.

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

В части пользовательских настроек приложения соответствуют одному из двух стандартов.

Как правило, если у приложения всего один файл конфигурации, его можно найти так: /home/(username)/.(app_name{rc}). Но если конфигурационных файлов больше, то они хранятся в директории /home/(username)/.(app_name).

Наглядный пример такого приложения – редактор vim.

Разработчики freedesktop.org решили, что старая система недостаточно упорядочена, и выработали базовую спецификацию каталогов XDG.

По стандарту XDG все файлы пользовательской конфигурации хранятся в директории $XDG_CONFIG_HOME (обычно в /home/(username)/.config).

Внутри $XDG_CONFIG_HOME каждое приложение создаёт свои поддиректории для конфигурационных файлов.

Базовой спецификации каталогов XDG теперь придерживаются редактор NeoVim и многие активно развивающиеся приложения. Для пользователей стандарт тоже удобен: одной резервной копии папки $XDG_CONFIG_HOME достаточно, чтобы сохранить все настройки.

Среди наиболее часто используемых файлов пользовательской конфигурации следует перечислить:

  • $HOME/.xinitrc – в нём содержатся указания о запуске менеджера окон при работе с командой startx;
  • $HOME/.vimrc – конфигурация vim;
  • $HOME/.bashrc – скрипт, который выполняет командная оболочка bash, когда пользователь запускает командную оболочку без регистрации;
  • $HOME/.editor — задаёт редактор по умолчанию для данного пользователя;
  • $HOME/.gitconfig – в файле указывается имя по умолчанию и адрес электронной почты для указания в коммитах Git;
  • $HOME/.profile – командная оболочка с регистрацией выполняет команды из скрипта .profile при запуске;
  • $HOME/.ssh/config – конфигурация ssh для конкретного пользователя.
  • иерархия_файловой_системы.txt
  • Последнее изменение: 2022/11/15 08:59
  • admin