Что такое файлы конфигурации и как вы можете их редактировать?
Подавляющее большинство используемых нами компьютерных программ — будь то офисные пакеты, веб-браузеры или даже видеоигры — настраиваются через систему интерфейсов меню. Это стало практически стандартным способом использования наших машин. Но некоторые программы требуют, чтобы вы сделали шаг за этим, и вам действительно нужно отредактировать текстовый файл, чтобы заставить их работать так, как вы хотите.
Эти текстовые файлы, что неудивительно, называются «конфигурационными файлами». Если вы хотите перейти от «пользователя» к «продвинутому пользователю», вам нужно знать, как их настроить.
Что такое файлы конфигурации?
Прежде чем мы углубимся в технические подробности, давайте сначала конкретно определим, что такое файл конфигурации.
Файлы конфигурации — это, по сути, файлы, которые содержат информацию, необходимую для успешной работы программы, которые структурированы особым образом. Вместо того, чтобы быть жестко запрограммированным в программе, они настраиваются пользователем и обычно хранятся в текстовом файле (хотя ранее я видел программы, которые использовали базы данных SQLite
как их файлы конфигурации).
Удивительно, но не существует определенного стандарта о том, как должны работать файлы конфигурации или как они должны выглядеть. Это полностью зависит от прихоти разработчика программы.
Некоторые конфигурационные файлы структурированы в формате собственного дизайна разработчика. Другие используют широко известные стандарты, используемые для структурирования данных, такие как формат JSON (нотация объектов JavaScript), YAML (язык разметки YAML) или XML (расширяемый язык разметки). Некоторые программы загружают информацию, хранящуюся в их конфигурационных файлах, когда они запускаются, в то время как другие периодически проверяют, была ли она изменена.
Если вы пользователь Linux, вы, вероятно, будете знакомы с ними, так как многие основные задачи обслуживания требуют редактирования файлов конфигурации. Если вы хотите настроить GRUB для двойной загрузки вашей системы
или настроить веб-сервер
вам придется иметь с ними дело.
Хотя это не исключительно Linux. В зависимости от того, что вы делаете, вам, возможно, придется редактировать их в Windows или Mac OS X.
Как выглядят файлы конфигурации?
Теперь давайте взглянем на некоторые реальные конфигурационные файлы. Как мы упоминали ранее, они бывают разных форм и размеров. Один файл конфигурации, с которым вы почти наверняка знакомы, — это файл hosts, который используется в Windows, Mac и Linux для сопоставления IP-адресов с именами узлов вручную.
В Windows вы можете найти его под C: \ WINDOWS \ system32 \ Drivers \ Etc \ хостов. На Mac и Linux это будет в / и т.д. / хосты.
Как вы заметили, файл hosts использует пробелы для разделения элементов, причем каждое имя хоста имеет свою собственную строку. Кроме того, файл hosts позволяет пользователю добавлять аннотации и комментарии, которые начинаются с символа хеша.
В Linux и Mac OS X некоторые программы требуют, чтобы пользователь сохранял файл конфигурации в домашнем каталоге с точкой в начале имени файла. Эти конфигурационные файлы иногда имеют расширение .rc и в разговорной речи называются «точечные файлы».
Одна программа, которая следует этому конкретному соглашению, является текстовым редактором Vim
, В прошлом мы говорили о том, как настроить VIM, отредактировав его конфигурационный файл.
Файлы конфигурации даже используются в видеоиграх для определения и управления некоторыми действиями, такими как сопоставления клавиш. Приведенный ниже файл конфигурации взят из Black Mesa — фанатского ремейка оригинального Half Life.
В оригинальной версии Deus Ex, выпущенной в 2000 году, пользователю фактически пришлось отредактировать файл конфигурации, чтобы включить читы!
Как редактировать файлы конфигурации
Итак, теперь мы знаем, для чего используются конфигурационные файлы, давайте поговорим о том, как мы можем их редактировать.
Для этого вам понадобится текстовый редактор. Не используйте текстовый процессор, так как они могут добавить форматирование в файл, что помешает их чтению программой.
Пользователи Windows уже имеют предустановленный текстовый редактор. Я говорю о блокноте. Хотя стоит подчеркнуть, что для Windows доступно множество отличных сторонних текстовых редакторов, включая Notepad ++, Atom и Sublime Text Editor.
В Linux ближайшим аналогом Notepad является Gedit
, Вы также можете рассмотреть возможность использования текстового редактора командной строки, такого как Nano или Vim
, Ради большей эффективности я сильно склоняюсь к текстовому редактору Vim. Это позволяет мне легко переходить на разные позиции в файле конфигурации, просто используя несколько нажатий клавиш.
На Mac OS X (или MacOS Sierra, скоро это станет известно
), есть несколько текстовых редакторов, которые поставляются предварительно установленными. Вы, вероятно, знакомы с TextMate. Он также включает ряд текстовых редакторов командной строки, таких как Vim и Nano.
Когда вы редактируете файл, важно убедиться, что вы соблюдаете его соглашения. Это можно решить, просто взглянув на это. Некоторые конфигурационные файлы, такие как файл hosts, объяснят вам эти соглашения. Другие заставят вас прочитать некоторую документацию или пару постов в блоге.
Наконец, если редактируемый файл конфигурации структурирован в формате JSON или XML, вы можете использовать более мощный текстовый редактор с подсветкой синтаксиса. Я рекомендую Атом. Это повысит вашу точность, показывая, когда вы допустили ошибку.
Что делать, если это не работает?
Наконец, давайте коснемся того, что происходит, когда что-то идет не так. По моему опыту, проблемы, связанные с редактированием конфигурационных файлов, имеют тенденцию делиться на два лагеря.
Первый — это разрешения. Если вы не можете сохранить свои изменения, это может быть потому, что вы пытаетесь сделать это как обычный пользователь. Во избежание случайного повреждения многие файлы конфигурации доступны для редактирования только тем, у кого есть права администратора.
Исправить это легко. В Mac и Linux попробуйте повысить свои права с помощью команды sudo. Итак, если вы редактировали файл hosts, вы запустили бы:
В Windows щелкните правой кнопкой мыши Блокнот (или любой текстовый редактор, который вы используете) и выберите Запустить от имени администратора.
Вторая распространенная проблема — ошибка пользователя. Если что-то не работает, это может быть ваша вина. Убедитесь, что вы не сделали никаких опечаток, и что вы следовали соглашениям файла конфигурации. Я знаю, это кажется очевидным, но простая орфографическая ошибка или забвение закрыть пару речевых меток может сделать весь файл бесполезным.
Хороший способ избежать проблем — сделать копию файла конфигурации, прежде чем вносить какие-либо изменения. Таким образом, если что-то пойдет не так, вы можете восстановить копию и начать заново!
Файлы конфигурации важны
Более того, они являются неотъемлемой частью использования Linux. Знание того, как правильно их редактировать, поможет вам бесконечно.
Есть ли какие-то другие важные навыки, которые, по вашему мнению, должны знать пользователи Linux для начинающих и для среднего уровня? Позвольте мне знать в комментариях ниже.
Источник
Что такое конфиги linux
Информация взята из [1].
/etc/profile | RHL, FBSD | Системные настройки окружения — скрипт, выполняющийся при старте системы. |
/dev/MAKEDEV | RHL | Файл /dev/MAKEDEV является скриптом, написанным системным администратором. Этот создает только файлы локальных устройств или ссылки на них, такие как нестандартные драйверы устройств. |
/etc/aliases | RHL, FBSD | Псевдонимы имен пользователей, соответствующие никнеймам для e-mail. |
/etc/bootptab | Конфигурация демона сервера BOOTP. | |
/etc/crontab | RHL, FBSD | Список команд и времени их выполнения для запуска (назначенные задания для демона cron). |
/etc/dhcpd.conf | Файл конфигурации для демона сервера DHCP. | |
/etc/ethers | Файл соответствия MAC-адресов IP-адресам (RARP mapping). См. man ethers(5). | |
/etc/exports | RHL | Файл, описывающий экспотированные файловые системы для сервисов NFS. |
/etc/fdprm | RHL | Таблица параметров для floppy-диска. Описывает форматы различных floppy-дисков. Используется setfdprm. |
/etc/filesystems | RHL | Может использоваться для установки последовательности filesystem probe, когда файловые системы монтируются с опцией auto. Параметр nodev указывается для файловых систем, которые не монтируются реально-локально, такие как proc, devpts и системы nfs. |
/etc/fstab | RHL, FBSD | Список файловых систем, автоматически монтируемых при загрузке системы командой mount -a (может эквивалентно использоваться /etc/rc или другой файл, участвующий в автозапуске). |
/etc/group | RHL, FBSD | Файл, описывающий группы пользователей (по аналогии /etc/passwd). |
/etc/groups | Может содержать пароли, которые позволяют пользователю присоединиться к группе. | |
/etc/gshadow | RHL | Используется для хранения пароля группы и информацию group administrator password для теневых паролей. |
/etc/host.conf | RHL, FBSD, ASPL | Указывает, каким образом должны разрешаться имена хостов. Список опций определителя (resolver) адресов. |
/etc/hosts | RHL, FBSD, ASPL | Список хостов для преобразования имен в IP-адреса (обычно нужно для хостов локальной сети, о которых не знает система DNS). |
/etc/HOSTNAME | Задает имя для рабочей станции. Используется для поддержки старых программ, которые сохраняют имя хоста в файле /etc/sysconfig/network. | |
/etc/inittab | RHL | Конфигурационный файл для процесса init, управляющий ходом уровней загрузки (startup run levels) — указывает скрипты, которые запускаются на каждом уровне. |
/etc/inetd.conf | FBSD | Настраивает службы, которые обрабатываются демоном inetd. |
/etc/issue | RHL | Вывод getty перед выдачей приглашения логина (login prompt). Описание приглашающего сообщения (welcoming message). |
/etc/issue.net | RHL | Вывод для сетевых логинов (версия LINUX). |
/etc/ld.so.conf | RHL | Конфигурационный файл ld.so, run time linker. |
/etc/lilo.conf | Конфигурационный файл для LILO (LInux LOader, начальный загрузчик операционных систем). | |
/etc/limits | Ограничения пользовательских ресурсов, когда установлена система shadow passwords. | |
/etc/localtime | RHL, FBSD | В Debian здесь хранится линк на информацию о временнОй зоне системы. У меня на Red Hat 4 команда more /etc/localtime выдавала кракозябрики — походу это какой-то двоичный файл. |
/etc/login.defs | RHL | Устанавливает пользовательские опции (user login features) на системах, где работает shadow passwords. |
/etc/logrotate.conf | RHL | Настраивает ротацию логов (управление логами, их архивирование). |
/etc/magic | Конфигурационный файл для типов файлов. Содержит описания различных форматов файлов для командной оболочки. Почему-то на Red Hat 4 я такого файла не нашел, зато были похожие файлы /etc/mime-magic и /usr/share/magic | |
/etc/motd | RHL, FBSD | Сообщение дня (message of the day), автоматически выводящееся при успешном логине. |
/etc/mtab | RHL | Список смонтированных файловых систем в настоящий момент времени. Настраивается скриптом загрузки и обновляется командой mount. |
/etc/named.conf | Используется серверами доменных имен, DNS (named). | |
/etc/networks | FBSD | Список имен и адресов сетей, как ваших собственных, так и других. Связывает доменные имена с адресами сетей. Используется командой route. |
/etc/nologin, /sbin/nologin | RHL, FBSD | Если этот файл существует, то запрещен логин всех пользователей, кроме root. Обычно создается, когда система уходит в отключение. |
/etc/nsswitch.conf | RHL, FBSD | Конфигурационный файл name service switch. |
/etc/passwd | RHL, FBSD | База данных пользователей с полями, определяющий логин (username), реальное имя, домашний каталог (home directory), зашифрованный пароль (encrypted password, а точнее — хеш от него, вычисленный по известному алгоритму, например MD5) и другую информацию по каждому пользователю. |
/etc/printcap | RHL, FBSD | Конфигурационный файл для принтеров. |
/etc/profile | RHL, FBSD | Файл, выполняемый шеллом Bourne или C при логине пользователя или загрузке системы. Это позволяет администратору системы настроить глобальные установки по умолчанию для каждого пользователя отдельно. |
/etc/protocols | RHL, FBSD, ASPL | Описывает протоколы Internet DARPA, доступные из подсистемы TCP/IP. Привязывает номера ID протокола (порт) к именам протоколов. |
/etc/rc или /etc/rc.d или /etc/rc?.d | RHL, FBSD | Скрипты или директории со скриптами, которые запускаются при загрузке системы или когда меняется уровень процесса загрузки. |
/etc/rc.d/rc0.d | Содержит файлы, упраляющие уровнем загрузки 0 (run level 0). Обычно эти файлы являются мягкими файловыми ссылками (softlink files). | |
/etc/rc.d/rc1.d | RHL | Содержит файлы, упраляющие уровнем загрузки 1 (run level 1). Скрипты, начинающиеся с S нужны для старта (Start), а начинающиеся с K — для останова (Kill). |
/etc/rc.d/rc.sysinit | RHL | Процесс init запускает этот файл при своем старте. |
/etc/rc.d/init.d/inet | Сценарий, конфигурирующий при начальной загрузке сетевой интерфейс. | |
/etc/resolv.conf | RHL, FBSD, ASPL | Настраивает распознаватель имен (name resolver) — здесь указываются адрес (или адреса), сервера имен (DNS) и ваше доменное имя. Список имен серверов имен, IP-адресов (поле Name-server) и имен доменов, по которым можно найти удаленные системы (поле Search). |
/etc/securetty | RHL | Идентифицирует защищенные терминалы (secure terminals), с которых администратору root можно войти в систему (log in). |
/etc/services | RHL, FBSD, ASPL | Перечисляет сетевые сервисы, которые система поддерживает. |
/etc/shadow | RHL | Файл shadow password на системах, где установлено ПО shadow password software. Shadow passwords перемещают move файлы с зашифрованными паролями из /etc/passwd в /etc/shadow который может читать только root. |
/etc/shadow.group | Системы с установленным ПО shadow passwords могут иметь этот файл. | |
/etc/shells | RHL, FBSD | Список доверяемых шеллов (trusted shells). Команда chsh позволяет пользователям изменить свой логин-шеллна шелл, который перечислен только в этом файле. |
/etc/skel/.profile | Может использоваться администратором для установки переменной окружения редактора (editor environment variable) для того, чтобы сделать некоторые редакторы дружественными для новых пользователей. | |
/etc/sudoers | RHL | Список пользователей со специальными привилегиями для команд, которые они могут выполнять. |
/etc/smb.conf или /etc/samba/smb.conf | RHL | Конфиг для настроек сервисов Samba (сетевая стистема обмена файлами Windows). |
/etc/sysconfig/amd | Используется для конфигурирования демона автомонтирования (auto mount daemon). | |
/etc/sysconfig/clock | RHL | Используется для конфигурирования системных часов (system clock) на универсальное (Universal) или локальное время (local time) и установки некоторых других параметров часов. |
/etc/sysconfig/i18n | RHL | Управляет настройками системного шрифта. |
/etc/sysconfig/init | RHL | Этот файл используется для установки некоторых характеристик терминала и переменных окружения (environment variables). |
/etc/sysconfig/keyboard | RHL | Используется для конфигурирования клавиатуры. |
/etc/sysconfig/mouse | RHL | Используется для конфигурирования мыши. |
/etc/sysconfig/pcmcia | RHL | Используется для конфигурирования сетевых карт pcmcia. |
/etc/rc.d/routed, /usr/src/etc/rc.d/routed | FBSD | Настраивает политики динамической маршрутизации. |
/etc/syslog.conf | RHL, FBSD | Конфигурационный файл для демона syslogd. |
/etc/termcap | RHL, FBSD | База данных совместимости терминалов. Описывает управляющие ESC-последовательности (escape sequences), поддерживаемые различными терминалами. См. man-справку по terminfo, termcap, curs_termcap. |
/etc/terminfo | Детализирует ввод/вывод терминала (terminal I/O). | |
/etc/usertty | Этот файл используется для наложения специальных ограничений доступа для пользователей. | |
$HOME/.bashrc | RHL | Алиасы пользователей, модификаторы путей, функции. |
$HOME/.bash_profile | RHL | Содержимое пользовательского окружения (users environment stuff) и автозапускаемые программы. |
$HOME/.bash_logout | RHL | Пользовательские действия, которые выполняются при выходе из системы (logout). |
$HOME/.hushlogin | Когда этот файл существует в домашней папке пользователя, то запрещена проверка почты, печать времени последнего логина и «сообщения дня» в момент, когда пользователь входит в систему. | |
$HOME/.inputrc | Содержит клавиатурные привязки (keybindings) и кое-что еще. | |
$HOME/Xrootenv.0 | Информация о сети и окружении. | |
/proc/cpuinfo | RHL | Информация о типе процессора, о его производителе и быстродействии. |
/proc/devices | RHL | Список устройств, сконфигурированных в ядре, работающем в настоящий момент. |
/proc/dma | RHL | Показывает, какие каналы DMA используются в настоящий момент. |
/proc/filesystems | RHL | Файловые системы, которые сконфигурированы в ядре. Используется для детектирования файловых систем, если файл /etc/filesystems не существует. |
/proc/ioports | RHL | Показывает, какие порты ввода/вывода (I/O ports) находятся в использовании в настоящий момент. |
/proc/interrupts | RHL | Показывает, какие прерывания сейчас используются и насколько часто. |
/proc/kcore | RHL | Образ физической памяти системы. Команда more /proc/kcore выдает сообщение «Operation not permitted». |
/proc/kmsg | RHL | Вывод сообщений ядра, которые перенаправляются в syslog. |
/proc/ksyms или /proc/kallsyms | RHL | Таблица символов ядра (у меня на Red Hat команда more /proc/ksyms почему-то выдавала No such file or directory). |
/proc/loadavg | RHL | Статистика по средней загруженности системы. |
/proc/meminfo | RHL | Информация по использованию памяти — физической и файла подкачки. |
/proc/modules | RHL | Информация о том, какие модули ядра загружены в память в настоящий момент. |
/proc/mounts | RHL | Содержит информацию о файловых системах, смонтированных в настоящее время. Информация сходна с файлом /etc/mtab. |
/proc/net | RHL | Папка, которая содержит статусную информацию о сетевых протоколах. Каждый файл в папке соответствует определенному протоколу (arp, tcp и т. д.). |
/proc/self | RHL | Символическая ссылка на директорию процессов программ, указывающая на /proc. Когда 2 процесса смотрят на proc, они получают разные ссылки. |
/proc/stat | RHL | Разнообразная статистика о системе, например количество ошибок страниц (page faults) с момента начала работы системы. |
/proc/uptime | RHL | Время нахождения системы в рабочем состоянии. |
/proc/version | RHL | Версия ядра. |
/tmp/fvwmrca01339 | Задает FVWM-M4. Содержит информацию о сети, подсистеме Xwindows и другую информацию о настройках. | |
/usr/lib/zoneinfo или /usr/share/zoneinfo | RHL, FBSD | Файлы данных временнОй зоны, которые сохраняет здесь система Debian. |
/var/log/lastlog | RHL, FBSD | Используется finger чтобы сказать пользователю о времени последнего входа в систему. |
/var/log/wtmp | RHL, FBSD | Двоичная информация о пользователях, вошедших в систему. Команда last использует эту информацию. |
/var/run/utmp | RHL, FBSD | Содержит информацию о пользователях, залогиненных в системе в настоящий момент. Команды who и w используют этот файл. |
/var/named/root.hints | ||
/var/named/* | FBSD | Файлы, используемые сревером доменных имен (DNS). Размещение тут опционально, однако здесь нормальное месторасположение этой информации. |
/var/log/btmp | Используется для сохранения информации о неудачных логинах. Этот файл должен быть одинажды создан вручную, чтобы информация начала накапливаться. | |
/var/log/lastlog | RHL, FBSD | Содержит информацию о последнем времени успешного логина в систему. Работает с lastb(1). |
/var/log/maillog | RHL, FBSD | Нормальный системный файл почтового лога. |
/var/log/messages | RHL, FBSD | Основной файл лога системных сообщений. |
/var/log/secure | RHL | Системное отслеживание входов пользователя в систему. Периодически проверяйте этот файл. |
/var/spool/mail | RHL | Место, где обычно хранятся почтовые ящики. Каждому пользователю соответствует свой файл (например, почта root хранится с файле /var/spool/mail/root). Почту также можно посмотреть командой mail. |
/etc/ftpusers | RHL, FBSD | По умолчанию путь и имя для файла ftpusers. В этом файле указываются имена пользователей, которым запрещен вход в систему через ftp. Среди таких пользователей обычно root, daemon, bin, uucp и news. |
Примечание:
RHL == Red Hat Linux 4
FBSD == FreeBSD 6.3
ASPL == ASPLinux 10
Источник