Конфигурационные файлы linux это

Обновлено: 02.07.2024

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

Что такое файлы конфигурации?

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

как их файлы конфигурации).

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

Некоторые конфигурационные файлы структурированы в формате собственного дизайна разработчика. Другие используют широко известные стандарты, используемые для структурирования данных, такие как формат JSON (нотация объектов JavaScript), YAML (язык разметки YAML) или XML (расширяемый язык разметки). Некоторые программы загружают информацию, хранящуюся в их конфигурационных файлах, когда они запускаются, в то время как другие периодически проверяют, была ли она изменена.

ConfigJSON

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

или настроить веб-сервер

вам придется иметь с ними дело.

Хотя это не исключительно Linux. В зависимости от того, что вы делаете, вам, возможно, придется редактировать их в Windows или Mac OS X.

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

Хосты

В Windows вы можете найти его под C: \ WINDOWS \ system32 \ Drivers \ Etc \ хостов. На Mac и Linux это будет в / и т.д. / хосты.

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

ВИМ-vundle-код

В Linux и Mac OS X некоторые программы требуют, чтобы пользователь сохранял файл конфигурации в домашнем каталоге с точкой в ​​начале имени файла. Эти конфигурационные файлы иногда имеют расширение .rc и в разговорной речи называются «точечные файлы».

Одна программа, которая следует этому конкретному соглашению, является текстовым редактором Vim

, В прошлом мы говорили о том, как настроить VIM, отредактировав его конфигурационный файл.

BlackMesa

В оригинальной версии Deus Ex, выпущенной в 2000 году, пользователю фактически пришлось отредактировать файл конфигурации, чтобы включить читы!

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

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

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

Пользователи Windows уже имеют предустановленный текстовый редактор. Я говорю о блокноте. Хотя стоит подчеркнуть, что для Windows доступно множество отличных сторонних текстовых редакторов, включая Notepad ++, Atom и Sublime Text Editor.

AtomHosts

В Linux ближайшим аналогом Notepad является Gedit

, Вы также можете рассмотреть возможность использования текстового редактора командной строки, такого как Nano или Vim

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

На Mac OS X (или MacOS Sierra, скоро это станет известно

), есть несколько текстовых редакторов, которые поставляются предварительно установленными. Вы, вероятно, знакомы с TextMate. Он также включает ряд текстовых редакторов командной строки, таких как Vim и Nano.

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

Наконец, если редактируемый файл конфигурации структурирован в формате JSON или XML, вы можете использовать более мощный текстовый редактор с подсветкой синтаксиса. Я рекомендую Атом. Это повысит вашу точность, показывая, когда вы допустили ошибку.

Что делать, если это не работает?

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

В Windows щелкните правой кнопкой мыши Блокнот (или любой текстовый редактор, который вы используете) и выберите Запустить от имени администратора.

NotepadRunAsAdmin

Файлы конфигурации важны

Более того, они являются неотъемлемой частью использования Linux. Знание того, как правильно их редактировать, поможет вам бесконечно.

Есть ли какие-то другие важные навыки, которые, по вашему мнению, должны знать пользователи Linux для начинающих и для среднего уровня? Позвольте мне знать в комментариях ниже.

Практически все настройки практически всех приложений в Ubuntu, включая системные компоненты, хранятся в виде обычных текстовых файлов различного формата, называемых конфигурационными файлами или просто «конфигами». Это очень удобно, поскольку позволяет просто читать и менять их не только из конкретного приложения. Нормальные программы обычно содержат встроенный редактор параметров, основные настройки системы так же можно легко изменить с помощью графических утилит, доступных из меню «Система». Однако некоторые операции требуют редактирования системных файлов конфигурации, к которым нет доступа из графического окружения.

Редактирование конфигурационных файлов

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

Самый простой путь: вызвать диалог запуска программ (по умолчанию - Alt + F2 ) и запустить обычный текстовый редактор с правами суперпользователя командой:

Пользователи Kubuntu должны подставить вместо gedit текстовый редактор KDE kate . У вас попросят ввести ваш пароль и, если вы являетесь администратором компьютера, откроется для редактирования нужный файл.

То же самое можно сделать из терминала, запустив редактор командой

В этом случае вместо графического окна с запросом пароля у вас появится запрос непосредственно в терминале.

При введении пароля в терминале на экране ничего не отображается, ни звёздочек, ни чёрточек, ни каких-либо других символов, это нормально и так и должно быть, просто вводите пароль и нажимайте Enter

Ну и наконец можно отредактировать текстовый файл непосредственно из терминала, не открывая графических приложений вообще. Существует масса текстовых редакторов для терминала, самыми популярными в среде линуксойдов являются vi и emacs , однако ни первым, ни вторым новичку пользовать в принципе нереально, поэтому лучше всего использовать простой в освоении редактор nano , доступный по умолчанию в любой версии Ubuntu. Для открытия текстового файла с правами суперпользователя в nano просто наберите в терминале

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

Критические системные файлы

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

Будьте предельно внимательны при изменении подобных файлов, неправильная информация в /etc/sudoers может крайне просто привести к невозможности выполнить что-либо в системе.

Другой пример типичной для Linux службы, управляемой конфигурационным файлом , – демон cron 3 Программисты имели в виду Хроноса, стихийное божество времени у древних греков. Уже сами греки часто называли так "владыку неба" титана Крона (отца богов-кронидов и, среди прочих, Зевса, который впоследствии отца и других титанов заключил в Тартар, и стал владыкой неба сам). У древних римлян и Крон и Хронос почитались под именем Сатурна, божества неумолимого времени. , регулярно выполняющий в заданное время заданные действия. Время от времени в системе необходимо обновлять разнообразные файлы, например, базы данных антивирусов (вирусов в Linux нет, а антивирусы есть!), базу данных whatis или список всех доступных на чтение файлов системы, locatedb (поискать по этому списку можно командой locate ); нужно собирать статистику по работе системы, анализировать цельность системы (этим занимаются службы OSec, TripWire или AIDE) и производить множество других регулярных действий. Всем этим и занимается демон cron .

Конфигурационный файл демона cron называется /etc/crontab .

Первые пять полей этого файла определяют время запуска команды: минуту, час, число месяца, месяц и день недели. Символ "*" означает, что соответствующая часть даты не учитывается. Шестое поле – имя пользователя, от лица которого запускается команда, указанная в остальных полях строки. Так, в примере команда run-parts /etc/cron.weekly будет запускаться в 4 часа 22 минуты каждое воскресенье (нулевой день) любого числа любого месяца. Как видно из примера, обычно /etc/crontab невелик: чаще всего он состоит из почасового, подневного, понедельного и помесячного запуска специального сценария (в примере – run-parts ). Этот сценарий реализует упрощенную схему " .d ", он попросту запускает отсортированные в лексикографическом порядке 4 То есть в таком порядке, в котором они были бы расставлены в словаре. Причем цифры предшествуют алфавитным знакам, а между собой сортируются по возрастанию, от 0 до 9. Отсюда " 000anacron " – такое имя обеспечит, чтобы этот сценарий был выполнен самым первым. сценарии из соответствующего каталога (например, из /etc/cron.daily ):

Вот что происходит каждый день на машине Мефодия: запуск anacron и "прокручивание" системных журналов (об этом речь пойдет далее), обновление базы whatis , проверка цельности системы с помощью osec , прореживание старых и неиспользуемых файлов в /tmp (утилита stmpclean ) и, наконец, обновление базы updatedb .

Пользователям системы можно разрешить иметь собственные расписания, также обрабатываемые демоном cron . Эти расписания имеют тот же синтаксис, что и crontab , только шестое поле ("user") в них отсутствует. Редактировать пользовательские таблицы рекомендуется с помощью команды crontab -e (чтобы не подсунуть демону синтаксически неверный файл). Сами таблицы могут храниться, в зависимости от версии и настроек cron , в /var/spool/cron/crontabs , /var/spool/cron , /var/cron/tabs или еще где-нибудь.

Служба anacron появилась в Linux-системах в то время, когда их начали активно использовать на персональных рабочих станциях. Такие станции, в отличие от серверов, не обязаны работать круглосуточно. Скорее всего, на ночь, на праздники и на время отпуска их выключают. Это значит, что все настройки cron надо менять в соответствии с графиком включений/выключений (иначе cron.daily никогда не выполнится в четыре часа ночи) – или запускать отдельную службу, которая будет выполнять некоторые задачи не по расписанию, а потому что их давно уже пора запустить 5 Название этого демона пародирует cron с намеком на анахронизм, то есть несвоевременность выполнения заданий. . Дополнительно anacron рассчитывает запуск задач так, чтобы не перегрузить компьютер работой, если их накопилось слишком много. Конфигурационный файл anacron называется /etc/anacrontab .

"Прокручивание" системных журналов

Еще изучая работу syslog , Мефодий не расставался с мыслью, что файл, в котором записывается системный журнал , постоянно растет. Это значит, что каков бы ни был размер файловой системы /var , она в конце концов заполнится журналами под завязку – если как-то их не укорачивать. К сожалению, в Linux укоротить файл от начала, отрезав самые старые записи, нельзя, как нельзя и добавлять новые записи в начало файла. Эти операции легко реализовать с помощью копирования нужной области в новый файл и последующего переименования, но, во-первых, соблюсти атомарность таких составных операций нелегко, а во-вторых, они требуют вдвое больше места в файловой системе на время работы (и, стало быть, каких-то аварийных процедур на случай нехватки места).

Поэтому в Linux принят другой, существенно менее ресурсоемкий алгоритм, позволяющий избежать переполнения /var: так называемое "прокручивание" системных журналов . Суть алгоритма в следующем: когда настает пора укоротить журнал (например, раз в неделю или если файл журнала достиг определенного размера), этот файл переименовывают, и открывают новый пустой файл с тем же именем. Если хранить несколько (скажем, семь) переименованных старых файлов, с ними уже можно производить операцию "отбрасывания старого": самый старый – седьмой – файл удаляется, шестой переименовывается в седьмой, пятый – в шестой, и т. д. до первого (моложе которого только текущий журнал), который переименовывается во второй. Только тогда можно переименовать текущий журнал в "первый старый" и открыть новый. Получается очередь устаревающих файлов, пополняемая с одной стороны и усекаемая с другой.

Как правило, имя "первого старого" журнала получается путем добавления к имени журнала суффикса ".1", второго – ".2" и т. д.:

Прокручиванием системных журналов занимается утилита logrotate , которая тоже управляется и конфигурационным файлом /etc/logrotate.conf , и " .d "-каталогом /etc/logrotate.d/ . Согласно настройкам, старые файлы можно сжимать упаковщиками bzip2 (как в примере) или gzip , можно задавать им определенные права доступа, можно посылать сигнал некоторой службе (чтобы она заметила подмену журнала, если она сама, а не syslogd занимается его пополнением) и т. п.

Конфигурационные файлы в домашнем каталоге

Немало конфигурационных файлов находится в домашнем каталоге пользователя. Этими файлами практически любая утилита может быть перенастроена по сравнению с обычным поведением, или поведением, задаваемым конфигурационным файлом из /etc . В Linux принято предоставлять пользователю возможность задавать профиль любого используемого им инструмента, начиная от простой утилиты и заканчивая графической подсистемой управления "рабочим столом" (см. об этом лекцию 15). Как правило, имена таких файлов или каталогов начинаются на " .", т. е. считаются скрытыми – для того, чтобы не засорять выдачу ls . Если пользователю нужно работать не со своими файлами, а именно с настройками, он всегда может применить ключ " -a " или " -A ":

Пример 12.14. Конфигурационные файлы в домашнем каталоге

Многие утилиты создают конфигурационный файл при запуске, если его в домашнем каталоге пользователя нет, поэтому со временем объем ls -A становится все больше. Файл .lpoptions задает параметры подсистемы печати, .pinerc – это настройки почтового клиента pine , .viminfo – файл истории команд редактора Vim , а файл .Xauthority и каталог .xsession.d управляют запуском графической подсистемы X11, описанной в лекции 15. Из файлов в примере некоторые вообще не являются "стандартными": так, .aliases и .i18n просто "втягиваются" стартовым командным сценарием bash , потому что упомянуты в нем явно; строго говоря, они могли бы называться и по-другому. Все конфигурационные , стартовые и прочие вспомогательные файлы принято делать скрытыми, даже если никаких требований к их названиям нет.

Файл .pythonstartup (настройки интерпретатора языка программирования Python) выполняется потому, что имя этого файла задано в переменной окружения PYTHONSTARTUP . Мефодию пришлось дописать строку PYTHONSTARTUP="/home/methody/.pythonstartup"; export PYTHONSTARTUP в

/.bash_profile и "C-i": complete в

/.inputrc , чтобы достраивание заработало и в этом интерпретаторе. Еще один файл, .pyhistory , используется в самом .pythonstartup :

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

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

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

Большая часть самых полезных и востребованных параметров хранятся в папке /etc/. Далее рассмотрим каждый из них более подробно.

/etc/adjtime

Этот файл, как можно понять по его названию, отвечает за время. Данные из этого документа считывает программа systemd-timedated. Она использует настройки из файла и выставляет правильный формат времени на системном уровне.

Содержимое файла /etc/adjtime

Вряд ли вам придется редактировать этот файл

Обычно в /etc/adjtime используется одно из двух значений: LOCAL — для отображения в системе времени текущего часового пояса. UTC — для отображения всемирного координированного времени. Естественно, значение можно сменить вручную или изменить его с помощью приложения timedatectl.

На этом все. Других функций у описанного конфигурационного файла нет.

/etc/bash.bashrc

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

Содержимое файла /etc/bash.bashrc

Нужно быть технически подкованным, чтобы здесь что-то искать и менять

/etc/crontab

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

Содержимое файла /etc/crontab

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

/etc/environment

А здесь указываются переменные окружения, загружаемые в оболочку при запуске терминала. Обычно живые люди этот файл не трогают. Его содержимое считывается с помощью оболочки Bash во время запуска ее базового скрипта.

Содержимое файла /etc/environment

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

/etc/fstab

Еще один файл, в который обычно никто не лезет, потому что в свежих версиях Linux с ним работает программа systemd, ретранслирующая данные в нужный формат. А вообще в /etc/fstab хранятся записи для монтирования файловых систем. Тут можно посмотреть UUID отдельных устройств, путь до них, тип файловой системы и так далее.

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

Содержимое файла /etc/fstab

Здесь отображаются смонтированные диски. Можно добавить свои или просто зафиксировать код UUID

/etc/group

Тут содержатся все системные группы. И те, что создаются автоматически, и те, что добавил какой-то из пользователей. Файл можно редактировать, добавляя сюда группы самостоятельно. Или же изменяя какие-то отдельные их свойства. Например, можно добавить новых пользователей в группу или изменить ее привилегии. Все это возможно, но так делать не принято. Для управления группами давно придумали удобную и понятную утилиту usermod.

Содержимое файла /etc/group

Этот файл не принято редактировать вручную. Используем usermod

/etc/hostname

Здесь нет ничего кроме имени хоста. По сути, это ваше имя. Файл считывается системой еще на запуске и фиксируется ею. После этого все приложения будут обращаться к вам, используя то имя, что было прочитано в файле /etc/hostname.

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

Содержимое файла /etc/hostname

Как видите, здесь нет ничего особенного

/etc/hosts

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

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

Содержимое файла hosts

Вот примерное содержание файла hosts

/etc/issue

Вообще, название файла переводится как «выпуск», и тут закономерно хранится информация о Linux-дистрибутиве, который вы используете. Туда же попадают данные о версии ядра Linux. Эта информация отображается при входе в любую программную оболочку (проще говоря, при запуске терминала).

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

Содержимое файла /etc/issue

Вот, что хранится в этом файле, если установлена Linux Mint редакции Tina

/etc/login.defs

В этом файле содержится список параметров, которые используются для управления пользователями и настройками входа в ОС. Здесь можно указать довольно большой список особенностей поведения системы в разных ситуациях. Например, что делать компьютеру, если кто-то удалит пользовательскую папку, или сколько раз можно пытаться войти в систему, вводя неправильный пароль (до блокировки системы).

Содержимое файла /etc/login.defs

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

/etc/mime.types

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

По умолчанию /etc/mime.types доступен только для чтения, и вам вряд ли придется в нем что-то менять.

Содержимое файла /etc/mime.types

Как видите, некоторые форматы могут быть вам знакомы

/etc/modprobe.d

Это не файл, а директория. Здесь хранится целый список конфигурационных файлов для управления модулями ядра Linux. Можно выбрать, какие модули будут загружаться вместе с системой, а какие будут игнорироваться. Также тут есть параметры для каждого модуля в отдельности. Список файлов в папке modprobe можно посмотреть с помощью команды ls /etc/modprobe.d. Затем можно выбрать любой из отобразившихся файлов и открыть его в текстовом редакторе.

Содержимое файла /etc/modprobe.d/alsa-base.conf

Вот настройки одного из компонентов ядра

/etc/nsswitch.conf

Это файл с тонкими настройками для всех утилит в системе, что написаны на языках C. Здесь можно задать список разных баз данных и список запросов для них, которые будет выполнять Linux в ходе работы ОС.

Содержимое файла /etc/nsswitch.conf

Вот как выглядит это файл изнутри

/etc/ntp.conf

NTP — еще один конфигурационный файл, который отвечает за отображение времени в системе. Только в отличие от других схожих документов NTP не показывает время. Он связывается с серверами синхронизации времени и напрямую взаимодействует со службой NTPD. Собственно, сами серверы указываются в файле /etc/ntpd.conf.

Содержимое файла /etc/ntpd.conf

Сюда можно вписать параметры для синхронизации времени

/etc/os-release

Файл /etc/os-release обычно используют вкупе с утилитой cat, чтобы без лишних телодвижений вывести в терминал информацию об операционной системе. В этом файле отображается версия дистрибутива, его название, иногда ссылки на официальные ресурсы и так далее. Редактировать его бессмысленно. Никакой пользы в этом не будет, а вот информация, вписанная в него по умолчанию в будущем может пригодиться.

Содержимое файла /etc/os-release

Вот подробная информация об используемом Linux-дистрибутиве

/etc/passwd

Несмотря на то, что название файла намекает на пароли (раньше они действительно хранились тут), с паролями он связан только косвенно. На самом деле, там хранятся данные о пользователях компьютера. Естественно, их имена, также дата, когда должен быть заменен пароль конкретного пользователя, и путь до программной оболочки. Обычно никто не меняет данные в этом файле вручную. Для этого есть отдельная программа.

Содержимое файла /etc/passwd

Вот стандартный набор параметров в этом конфигурационном файле

/etc/profile

Еще один скрипт в нашем списке. Он запускается вместе с любой программной оболочкой. То есть при включении Bash система читает содержимое файла /etc/profile и запускает все команды, которые в него вписаны. В общем, если понимаете, о чем идет речь и знаете, как можно изменить или дополнить запуск оболочки, то теперь знаете, где это можно сделать.

Содержимое файла /etc/profile

Вот скрипт по умолчанию в операционной системе Linux Mint

/etc/shadow

А вот и файл с паролями. Так исторически сложилось, что пароли переехали на новое место для обеспечения безопасности и теперь находятся тут. Впрочем, они хранятся в зашифрованном виде — здесь лежат именно хэши, а не пароли сами по себе. Обычно пароль меняют с помощью специальной программы или ее аналога в графической оболочке. Но при желании можно изменить пароль и в файле /etc/passwd. Правда, придется сначала зашифровать его в соответствующем формате.

Читайте также: