Введение
Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации – это ключевые элементы, повышающие стабильность способности к изменению конфигурации системы Linux.
В этом руководстве будут рассмотрены основные компоненты файлов конфигурации Linux, а также будут продемонстрированы их важность и значение для экосистемы Linux.
Что такое файл конфигурации Linux?
Файл конфигурации (config) – это локальный файл Linux, который управляет тем, как работают программы, утилиты и процессы. Как правило, файлы конфигурации – это текстовые файлы, которые содержат настройки и инструкции для различных утилит, программ и процессов.
Файлы конфигурации – это неисполняемые файлы. Они просто содержат параметры и настройки для различных компонентов операционной системы. Сюда относятся процессы, группы пользователей, права доступа, доступ к сети и протоколы, директивы ОС, касающиеся доступа к серверу имен в Интернете, и т.д.
Почему файлы конфигурации так важны?
Файлы конфигурации играют важнейшую роль в системах Linux. С их помощью системные администраторы могут настраивать ОС, контролировать настройки системы и приложений, а также следить за сохранением настроек после перезагрузки.
По сути файлы конфигурации крайне просты, но при этом они управляют чрезвычайно сложными механизмами. Один файл конфигурации может определять тысячи системных функций, а это значит, что он является неотъемлемым элементом, который отвечает за правильное функционирование системы.
Файлы конфигурации упрощают процессы устранения неполадок, управления версиями и резервного копирования, обеспечивая при этом согласованность между несколькими системами. Кроме того, они выступают в роли документации и внутренней политики безопасности, а это значит, что они имеют важное значение для управления и гибкости системы Linux.
Типы файлов конфигурации в Linux
Файлы конфигурации можно разделить на две основные категории:
- Системные файлы конфигурации. Эти файлы конфигурации касаются всей системы. Как правило, они располагаются в корневом разделе (/), и для того, чтобы их изменить, необходим доступ суперпользователя.
- Пользовательские файлы конфигурации. Эти файлы приспосабливают среду к индивидуальным предпочтениям пользователей. Как правило, они располагаются в домашнем каталоге пользователя, и для того, чтобы их изменить, права суперпользователя не требуются.
Помимо разделения файлов конфигурации на системные и пользовательские, их также можно разделить по типу (Linux). Эти файлы играют важную роль в управлении аутентификацией и системном администрировании, а также в настройке поведения пользовательских программ.
Далее мы рассмотрим различные типы файлов конфигурации в системе Linux и перечислим самые важные файлы для каждого типа.
Файлы доступа к сети
Файлы конфигурации доступа к сети содержат правила и инструкции по поиску имен хостов и управлению доступом к сети. Файлы настраивают и управляют политиками контроля доступа для сетевых служб и хостов.
Файлы доступа состоят из:
- /etc/hosts.config. Этот файл содержит параметры конфигурации для разрешения имен хоста с помощью файла /etc/hosts.
- /etc/hosts. Это локальная база данных для сопоставляется имен хостов с IP-адресами, используемыми, когда DNS недоступен, или для настройки локальной сети.
- /etc/hosts.allow. Этот файл определяет правила допуска сетевых служб, исходя из таких критериев, как IP-адреса и имена хостов.
- /etc/hosts.deny. Этот файл содержит правила, которые запрещают доступ к сети определенным службам или хостам, исходя из таких критериев, как IP-адреса и имена хостов.
Ниже продемонстрирован пример файла /etc/hosts:
Файлы загрузки
Файлы конфигурации загрузки управляют процессом загрузки системы Linux. Эти файлы содержат информацию о системе, управляют службами загрузки и определяют уровни запуска системы.
Загрузочные файлы включают следующее:
- /etc/issue. Это текстовый файл, который содержит информацию о системе и сообщение-приветствие, отображаемое перед приглашением ко входу в систему.
- /etc/issue.net. Этот файл похож на файл /etc/issue, но с тем лишь отличием, что он используется для сетевых подключений и удаленного доступа.
- /etc/rc.d/rc. Это сценарий, который управляет уровнями запуска системы и службами запуска.
- /etc/rc.d/rc.sysinit. Это сценарий, который отвечает за выполнение задач инициализации системы во время загрузки, в частности инициализации оборудования и монтирования файловых систем.
- /etc/rc.d/rcX.d/. Это каталог, который содержит символические ссылки на сценарии, отвечающие за управления запуском/остановкой служб на различных уровнях запуска (Х – это номер уровня запуска).
На следующем скиншоте продемонстрировано содержимое файла /etc/issue, в частности сообщение-приветствие:
Файлы процедуры входа/выхода
Файлы конфигурации процедуры входа/выхода необходимы для управления пользовательскими сеансами в системе Linux. Эти файлы управляют доступом и отвечают за доставку сообщения-приветствия, когда пользователь входит в систему. К этим файлам относятся:
- /etc/issue. Этот файл содержит информацию о системе и отвечает за отображение сообщения-приветствия перед приглашением ко входу в систему.
- /etc/issue.net. Идентичен /etc/issue, но используется для сетевых подключений и удаленного доступа.
Примечание: файлы /etc/issue и /etc/issue.net имеют отношение как к загрузке, так и к процедуре входа/выхода из системы. Они выполняют двойную функцию: отображают информацию о системе и сообщение-приветствие во время входа в систему.
Файлы файловой системы
Файлы конфигурации файловой системы управляют и определяют то, как будет производиться создание и доступ к устройствам хранения и файловым системам. Эти файлы помогают контролировать и определять параметры управления хранилищами. Вот некоторые основные файлы:
- /etc/mtab. Это файл, в котором содержится список монтированных на данный момент файловых систем, информация об устройстве, точка монтирования и тип файловой системы.
- /etc/fstab. Это файл конфигурации, который определяет и управляет конфигурацией процесса монтирования статической файловой системы, в том числе параметры для каждой точки монтирования.
- /etc/mtools.conf. Это файл конфигурации для пакета mtools, используемого для доступа и управления файловыми системами MS-DOS (FAT), который определяет настройки таких инструментов, как mcopy и mdir.
На следующем скриншоте продемонстрирован файл /etc/fstab, где есть строка, обеспечивающая сохранение раздела подкачки после перезагрузки:
Файлы системного администрирования
Файлы конфигурации системного администрирования в Linux хранят основную информацию об учетных записях и учетных данных пользователей, группах, правах доступа к файлам, а также управляют политиками безопасности системы. Эти файлы необходимы для обеспечения целостности и безопасности системы.
Ниже представлены самые важные файлы:
- /etc/group. Этот файл содержит информацию о группах пользователей, в том числе названия групп и соответствующие учетные записи пользователей.
- /etc/nologin. Этот файл позволяет ограничить доступ в систему для некоторых пользователей. Чаще всего он используется для сообщений об обновлениях системы.
- /etc/passwd. Этот файл хранит информацию об учетных записях пользователей, в том числе имена пользователей, ID пользователей, домашние каталоги и исполняемые файлы оболочки.
- /etc/rpmrc. Это файл конфигурации для менеджера пакетов RPM, который определяет глобальные настройки RPM.
- /etc/securetty. Этот файл содержит список терминалов (TTY), через которые root-пользователь (суперпользователь) может входить в систему напрямую.
- /etc/usertty. Этот файл определяет, какие терминалы могут использовать пользователи.
- /etc/shadow. Этот файл хранит хэши паролей и информацию о безопасности учетных записей пользователей, повышая, таким образом, безопасность паролей.
На следующем скриншоте продемонстрировано содержимое файла /etc/nologin, где указано, что пользователю exampleuser вход в систему запрещен:
Файлы системных команд
Файлы конфигурации системных команд в Linux содержат информацию об утилитах и командах системного уровня, которые используются для администрирования и функционирования системы. Эти файлы отвечают за настройку и управление системными командами и утилитами, обеспечивая, таким образом, правильное функционирование основных компонентов и служб системы.
Ниже представлены некоторые файлы:
- /etc/lilo.conf. Это файл конфигурации для загрузчика LILO (LInux LOader), который определяет то, как система будет загружаться и управлять несколькими операционными системами.
- /etc/logrotate.conf. Это файл конфигурации для утилиты, отвечающей за обработку журналов (logrotate). Он управляет файлами журналов и политиками обработки журналов.
- /etc/identd.conf. Это файл конфигурации для демона Ident, который определяет владельца TCP-соединений и используется для сетевых служб, таких как IRC.
- /etc/ld.so.conf. В этом файле перечислены каталоги, где система будет искать разделяемые библиотеки, динамически связанные с исполняемыми файлами.
- /etc/inittab. Это файл конфигурации для процесса инициализации, который определяет уровни запуска системы, действия и процессы, которые должны быть выполнены во время инициализации системы.
- /etc/termcap. Этот файл определяет возможности и характеристики различных типов терминалов, обеспечивая их правильное взаимодействие с приложениями.
На следующем скриншоте продемонстрирован пример файла /etc/ld.so.conf и список каталогов, где системе нужно искать динамические ссылки на исполняемые файлы:
Файлы демонов
Демоны – это важные фоновые процессы, которые отвечают на запросы сети, оборудования или системы для выполнения конкретных задач. Файлы конфигурации демонов помогают определить их поведение и настройки.
Ниже приведены основные файлы:
- /etc/syslogd.conf. Это файл конфигурации для демона системного журнала (syslogd), который отвечает за управление журналами системы и приложений. Он определяет то, как необходимо обрабатывать и хранить журнальные сообщения.
- /etc/httpd.conf. Это файл конфигурации для HTTP-сервера Apache (httpd), который используется для определения настроек сервера, виртуальных хостов и поведения при размещение веб-содержимого.
Файлы работы в сети
Файлы конфигурации сети в Linux отвечают за настройку и управление сетевыми настройками, службами и протоколами и обеспечивают эффективное и надежное функционирование сети. Эти файлы играют довольно важную роль в определении поведения сети и возможности подключения.
Ниже представлен список основных файлов:
- /etc/gated.conf. Это файл конфигурации для демона протокола маршрутизации gated.
- /etc/gated.version. Этот файл содержит номер версии демона gated.
- /etc/gateway. Опциональный файл конфигурации, который использует демон маршрутизации для получения информации о маршрутизации.
- /etc/networks. В этом файле перечислены названия и адреса сетей, доступных из вашей сети. Для сетевой маршрутизации нужна команда route.
- /etc/protocols. В этом файле перечислены доступные на данный момент сетевые протоколы, используемые для сетевых соединений.
- /etc/resolv.conf. Этот файл определяет, какой сервер имен необходимо запрашивать при разрешении IP-адресов.
- /etc/rpc. Этот файл содержит инструкции/правила для удаленного вызова процедур (RPC - Remote Procedure Call), используемого при вызовах NFS, монтировании удаленной файловой системы и т. д.
- /etc/exports. Этот файл содержит конфигурации для экспорта файловых систем через NFS, в том числе права доступа.
- /etc/services. Этот файл переводит имена сетевых служб в номера портов и протоколы, используемые различными сетевыми программами.
- /etc/inetd.conf. Это файл конфигурации для inetd, который управляет демонами различных сетевых служб.
- /etc/sendmail.cf. Это файл конфигурации для агента передачи почты (sendmail).
- /etc/sysconfig/network. Этот файл указывает, доступна ли сеть. Он считывается во время инициализации системы.
- /etc/sysconfig/network-scripts/if*. Это сценарии сетевой конфигурации Red Hat, предназначенные для управления сетевыми интерфейсами.
Ниже приведен пример файла /etc/protocols, где содержатся все протоколы, доступные на данный момент:
Файлы пользовательских программ
Файлы конфигурации пользовательских программ позволяют настраивать и адаптировать под себя приложения. Эти файлы, как правило скрыты и хранятся в домашнем каталоге пользователя. Эти скрытые файлы и каталоги имеют префикс с точкой, например, .config или .appname. Для того, чтобы просмотреть их, вам понадобиться команда ls.
Пользовательские и системные программы обращаются к своим файлам конфигурации каждый раз, когда вы их запускаете. Конфигурация по умолчанию считывается из файлов конфигурации, которые хранятся в каталоге /etc/. В дальнейшем пользователи смогут настраивать программы с помощью rc- и дотфайлов.
В следующем разделе рассказывается, как редактировать файл конфигурации в Linux.
Как редактировать файлы конфигурации в Linux?
У каждого дистрибутива Linux свои файлы конфигурации, соглашения о присвоении имен и места хранения. К некоторым файлам конфигурации обращаются по имени файла с расширением или без него, а к некоторым по расположению в каталоге.
Несмотря на то, что дистрибутивы отличаются друг от друга, общее назначение их файлов конфигурации и их способы управления системой одинаковы. Как правило, файлы конфигурации – это обычные текстовые файлы, и вы можете их редактировать с помощью обычного текстового редактора.
Формат и синтаксис файлов зависят от приложения, к которому они относятся. Некоторые приложения даже предоставляют инструменты графического интерфейса, с помощью которых можно изменять их настройки. К самым распространенным форматам относятся INI, XML, JSON и пользовательские форматы.
Важно: прежде чем изменять какое-либо значение в любом из этих файлов, с целью избежать необратимого повреждения системы убедитесь, что вы сделали резервную копию и понимаете, что из себя представляет конфигурация.
После внесения изменений в файл конфигурации программы, ее необходимо перезапустить (если это не управляется системным администратором или ядром). Изменения файлов конфигурации в ядре вносятся сразу же.
Например, добавив пользователя в файл passwd, вы активируете это изменение немедленно. Но учтите, что только суперпользователь имеет право изменять файлы ядра. Другие пользователи имеют доступ только для чтения.
Заключение
В этой статье мы рассмотрели важность файлов конфигурации Linux, как они работают и как отражаются на системе и пользовательских программах. Редактируя файлы конфигурации, пользователи могут настраивать систему и программы по своему вкусу, используя большое количество возможностей для персонализации.