img

Файлы конфигурации Linux. Полное руководство

 

Введение

Файлы конфигурации 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:

Example contents of the config file that maps hostnames to IP addresses in Linux.

Файлы загрузки

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

Загрузочные файлы включают следующее:

  • /etc/issue. Это текстовый файл, который содержит информацию о системе и сообщение-приветствие, отображаемое перед приглашением ко входу в систему.
  • /etc/issue.net. Этот файл похож на файл /etc/issue, но с тем лишь отличием, что он используется для сетевых подключений и удаленного доступа.
  • /etc/rc.d/rc. Это сценарий, который управляет уровнями запуска системы и службами запуска.
  • /etc/rc.d/rc.sysinit. Это сценарий, который отвечает за выполнение задач инициализации системы во время загрузки, в частности инициализации оборудования и монтирования файловых систем. 
  • /etc/rc.d/rcX.d/. Это каталог, который содержит символические ссылки на сценарии, отвечающие за управления запуском/остановкой служб на различных уровнях запуска (Х – это номер уровня запуска).

На следующем скиншоте продемонстрировано содержимое файла /etc/issue, в частности сообщение-приветствие:

The config file that defines the greeting message in Linux.

Файлы процедуры входа/выхода

Файлы конфигурации процедуры входа/выхода необходимы для управления пользовательскими сеансами в системе 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, где есть строка, обеспечивающая сохранение раздела подкачки после перезагрузки:

Example of the fstab config file that defines mount points in the file system.

Файлы системного администрирования

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

Ниже представлены самые важные файлы:

  • /etc/group. Этот файл содержит информацию о группах пользователей, в том числе названия групп и соответствующие учетные записи пользователей.
  • /etc/nologin. Этот файл позволяет ограничить доступ в систему для некоторых пользователей. Чаще всего он используется для сообщений об обновлениях системы. 
  • /etc/passwd. Этот файл хранит информацию об учетных записях пользователей, в том числе имена пользователей, ID пользователей, домашние каталоги и исполняемые файлы оболочки.
  • /etc/rpmrc. Это файл конфигурации для менеджера пакетов RPM, который определяет глобальные настройки RPM. 
  • /etc/securetty. Этот файл содержит список терминалов (TTY), через которые root-пользователь (суперпользователь) может входить в систему напрямую.
  • /etc/usertty. Этот файл определяет, какие терминалы могут использовать пользователи.
  • /etc/shadow. Этот файл хранит хэши паролей и информацию о безопасности учетных записей пользователей, повышая, таким образом, безопасность паролей.

На следующем скриншоте продемонстрировано содержимое файла /etc/nologin, где указано, что пользователю exampleuser вход в систему запрещен:

A config file that prevents the listed users from logging in.

Файлы системных команд

Файлы конфигурации системных команд в 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 и список каталогов, где системе нужно искать динамические ссылки на исполняемые файлы:

The Linux config file that specifies a list of directories the system can search for dynamic links to executable files.

Файлы демонов

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

Ниже приведены основные файлы:

  • /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, где содержатся все протоколы, доступные на данный момент:

The available protocols in Linux.

Файлы пользовательских программ

Файлы конфигурации пользовательских программ позволяют настраивать и адаптировать под себя приложения. Эти файлы, как правило скрыты и хранятся в домашнем каталоге пользователя. Эти скрытые файлы и каталоги имеют префикс с точкой, например, .config или .appname. Для того, чтобы просмотреть их, вам понадобиться команда ls.

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

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

Как редактировать файлы конфигурации в Linux?

У каждого дистрибутива Linux свои файлы конфигурации, соглашения о присвоении имен и места хранения. К некоторым файлам конфигурации обращаются по имени файла с расширением или без него, а к некоторым по расположению в каталоге.

Несмотря на то, что дистрибутивы отличаются друг от друга, общее назначение их файлов конфигурации и их способы управления системой одинаковы. Как правило, файлы конфигурации – это обычные текстовые файлы, и вы можете их редактировать с помощью обычного текстового редактора. 

Формат и синтаксис файлов зависят от приложения, к которому они относятся. Некоторые приложения даже предоставляют инструменты графического интерфейса, с помощью которых можно изменять их настройки. К самым распространенным форматам относятся INI, XML, JSON и пользовательские форматы.

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

После внесения изменений в файл конфигурации программы, ее необходимо перезапустить (если это не управляется системным администратором или ядром). Изменения файлов конфигурации в ядре вносятся сразу же. 

Например, добавив пользователя в файл passwd, вы активируете это изменение немедленно. Но учтите, что только суперпользователь имеет право изменять файлы ядра. Другие пользователи имеют доступ только для чтения. 

Заключение 

В этой статье мы рассмотрели важность файлов конфигурации Linux, как они работают и как отражаются на системе и пользовательских программах. Редактируя файлы конфигурации, пользователи могут настраивать систему и программы по своему вкусу, используя большое количество возможностей для персонализации. 

Ссылка
скопирована
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
img
  Введение На протяжении десятков лет Bash (Bourne Again SHell) была основным интерфейсом в Unix-подобных системах. Это унив
img
  Введение Сетевые команды – обязательные инструменты для любого сетевого или системного администратора. С помощью этих кома
Комментарии
ОСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59