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

Использование etckeeper - защита и другие вопросы

Следуя сделанному предложению Помещение / etc в систему контроля версий Я установил ETCKEEPER.

Вроде неплохо, но у меня есть вопросы.

Если вы посмотрите на полный журнал bzr, а не на короткий журнал, вы увидите, что фиксация изменений в / etc после запуска apt за ним следует список измененных пакетов. По крайней мере, так работает мой ноутбук и сервер Ubuntu. Я подозреваю, что в подавляющем большинстве случаев это более полезно, чем сообщение фиксации «sudo apt-get upgrade».

Причина, по которой вы не можете получить доступ к журналу bzr как обычный пользователь, заключается в том, что репозиторий bzr имеет полный доступ к теневому репозиторию. Вероятно, самая большая проблема с этим заключается в том, что если вы удалите файл из репозитория bzr, он все равно будет доступен в более старых версиях. Вероятно, есть какое-то вуду, которое вы можете использовать в строках svndumpfilter | svnadmin --import а вот для бзр, но не пробовал.

Вы можете попробовать одну альтернативу: sudo su. Или, возможно, вы можете создать нового пользователя и группу, поместить пользователя в эту группу, предоставить группе доступ к .bzr и su этому пользователю для операций, представляющих интерес для bzr.

Есть ли способ поместить команду, которую вы выполняете, в сообщение об изменении.

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

Etckeeper может использовать один из нескольких бэкэндов DVCS, он может поддерживать bzr, git и hg. Какой бы бэкэнд вы ни использовали, все работает примерно одинаково. Я использую git как серверную часть, так как я гораздо больше знаком с git.

С Etckeeper ваш рабочий каталог почти всегда /etc, хотя вы можете использовать его для других каталогов. Когда все о текущем состоянии вашего рабочего каталога зафиксировано, ваш рабочий каталог считается чистый. Если вы вносите изменения в какой-либо файл и хотите, чтобы это изменение было зафиксировано в репозитории, вы запускаете команду etckeeper commit "Your log message here". Вы можете проверить, находится ли ваш репозиторий в чистом состоянии, выполнив такую ​​команду, как etckeeper unclean && echo $.

Разобравшись с предысторией, я могу рассказать, как etckeeper подключается, чтобы помочь вам отслеживать, что делает apt. Когда etckeeper установлен, файл конфигурации добавляется в конфигурацию apt по адресу /etc/apt/apt.conf.d/05etckeeper. Это настраивает некоторые ловушки, поэтому, когда apt предлагается установить пакет (-ы), он запускает команду до начала установки и запускает команду после завершения установки. Чтобы точно узнать, что делает команда до и после установки, взгляните на сценарии в /etc/etckeeper/pre-install.d и /etc/etckeeper/post-install.d каталоги.

Обычно команда предварительной установки выполняет фиксацию, если ваш рабочий каталог не чистый. Если вам это не нравится, вы можете просто не забыть вручную запустить фиксацию после того, как что-нибудь измените. Если вы категорически возражаете против автоматической фиксации, вы можете настроить свой /etc/etckeeper/etckeeper.conf файл и раскомментируйте AVOID_COMMIT_BEFORE_INSTALL=1 линия. Внесение этого изменения будет означать, что вам придется выполнить фиксацию вручную, прежде чем вы сможете запустить apt. Если вам действительно не нравится автоматическая фиксация, вы также можете отключить ежедневную автоматическую фиксацию, присутствующую в более новых версиях.

Я хочу иметь возможность делать запросы в репозиторий bzr от обычного пользователя.

На мой взгляд, это очень плохая идея. В / etc есть много файлов, которые не должны быть доступны для чтения конечному пользователю. Если вы хотите упростить себе жизнь, вы можете настроить sudo так, чтобы он не запрашивал у вашей учетной записи пароль при использовании bzr или etckeeper.

Есть ли ошибки при удалении файлов (например, / etc / shadow / из etckeeper control

Правильный способ сделать это - использовать функцию игнорирования для выбранного вами бэкэнда DVCS. Если вы используете git, вы должны добавить файл в свой /etc/.gitignore, Я считаю, что есть /etc/.bzrignore это должно сделать то же самое, но вам может потребоваться эксперт bzr, чтобы подтвердить это для вас. Лично я считаю, что мне нравится отслеживать /etc/shadow файл, так как он позволяет мне узнать, удалось ли кому-то злу изменить учетную запись службы, которая должна иметь отключенный пароль, чтобы иметь пароль, который позволит использовать ее для входа в систему.