Конфигурационные файлы в Linux

1956
Конфигурационные файлы в Linux
Конфигурационные файлы в Linux

Linux: конфигурационные файлы

1. Обзор

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

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

2. Глобальные конфигурационные файлы

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

Эти файлы обычно находятся в корневом разделе (/) и требуют доступа суперпользователя.

2.1. Каталог/etc/

Большинство глобальных конфигурационных файлов находятся в каталоге /etc.

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

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

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

2.2. Каталог /etc/opt/

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

2.3. Каталог /etc/default/

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

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

2.4. Важные файлы глобальной конфигурации

К наиболее полезным файлам глобальной конфигурации относятся:

  • /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-TYPES и связанных с ними расширений имен файлов
  • /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

3. Конфигурация для конкретного пользователя

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

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

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

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

3.1. Традиционные конфигурации

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

Ярким примером такого поведения является редактор vim.

3.2. Конфигурационные файлы, соответствующие стандарту XDG

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

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

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

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

3.3. Важные файлы конфигурации, специфичные для пользователя

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

  • $HOME/.xinitrc — позволяет установить директивы для запуска оконного менеджера при использовании команды startx
  • $HOME/.vimrc — конфигурация vim
  • $HOME/.bashrc — сценарий, выполняемый bash, когда пользователь запускает оболочку, не связанную с логином
  • $XDG_CONFIG_HOME/nvim/init.vim — конфигурация neovim
  • $HOME/.editor — устанавливает редактор по умолчанию для пользователя
  • $HOME/.gitconfig — устанавливает имя и адрес электронной почты по умолчанию, которые будут использоваться для git-коммитов
  • $HOME/.profile — оболочка входа в систему при запуске выполняет команды из скрипта .profile
  • $HOME/.ssh/config — конфигурация ssh для конкретного пользователя

4. Заключение

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