Назад | Перейти на главную страницу

Символьные ссылки на файлы конфигурации

На нашем сервере есть различные службы с собственным файлом конфигурации. Nginx, Dovecot, Postfix ...

Все эти файлы конфигурации находятся в собственном каталоге / etc / {service}.

Я пытаюсь переместить эти файлы в центральное место и добавить символическую ссылку. Что-то вроде: /etc/postfix/main.cf <- /root/server-config/postfix/main.cf

Вышесказанное работает для большинства сервисов (Nginx, PHP, ..). Однако некоторые службы, связанные с электронной почтой, выдают ошибки «отказано в разрешении». Я пробовал много разных вариантов, таких как предоставление большего количества разрешений как для символической ссылки, так и для исходного файла, предоставление максимального разрешения (777), запуск от имени Root, добавление dovecot / postfix в корневую группу ..

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

Что я могу сделать, чтобы вышеуказанное сработало.

Если у вас есть альтернатива, которая не работает с git или символическими ссылками, добавьте их в качестве комментария.

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

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

Вы можете подумать об использовании таких инструментов, как etckeeper что позволяет автоматически сохранять изменения, внесенные в /etc или (другие каталоги) в системы контроля версий, такие как git. Затем вы можете отправить их в центральный репозиторий git.

Как вы думаете, почему вам нужно переместить их, чтобы они были в репозитории git? Такие инструменты, как etckeeper, уже существуют, и они хранят все файлы / etc в репозитории git.

Также есть тонны управление конфигурацией инструменты (марионетка, повар, анзибль и т. д.), которые вы можете / должны использовать для настройки. Затем вы можете сохранить свою конфигурацию управления конфигурацией в репозиториях git.

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