Создание Мерзавца repo в / (корень) для отслеживания настроек?

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

Моя предложенная установка:

  • git init repo в /

  • Добавьте a .gitignore в / это игнорирует любые файлы кроме определенных настроек, которые я хочу отследить.

    Например, .gitignore мог содержать (источник):

    ## Ignore everything...
    *
    
    ## Except...
    !/etc/default/tlp
    !/etc/crontab
    
  • Каждый раз, когда я изменяю эти настройки низкого уровня, я могу отследить их.

Есть ли что-нибудь, что могло пойти не так, как надо с этой установкой? Делает ядро, всегда нуждаются / только иметь определенные папки? Это испортит функционирование каких-либо приложений?

28
задан 23 May 2017 в 05:39

5 ответов

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

Однако лучше сохранить .git каталог где-то в другом месте, что-то похоже:

git --git-dir=/home/user/backup-root --work-tree=/

Read здесь .

37
ответ дан 23 November 2019 в 00:54

Таким образом, я исследовал другие ответы, и я нашел процедуру, которая работает на меня:

  • Сделайте a .gitignore в /. Это было намного более сложно, чем я думал, что это будет из-за пути дескрипторы Мерзавца, добавляющие файлы в белый список в подпапках. Я использовал это и эту ссылку для помощи мне.

    ## Source: https://stackoverflow.com/a/29932318/4900327
    ## Comments are on new lines because trailing whitespace matters in Git (stackoverflow.com/a/8865858/4900327)
    
    # Blacklist all files, folders and subfolders in the same directory as the .gitignore file.
    /*
    # Do not blacklist the .gitignore file.
    !.gitignore
    
    # Now whitelist certain files.
    # For files in subfolders, some hoops must be jumped through (stackoverflow.com/a/16318111/4900327):
    
    ## Whitelisting files in /etc/ folder:
    # Whitelist the /etc/ folder (the git repo folder is whitelisted always)
    !/etc/
    # Blacklist all files in /etc/ folder.
    /etc/*
    # Whitelist specific file(s) in /etc/ folder.
    !/etc/crontab
    
    
    ## Whitelisting files in /etc/default/ folder:
    # /etc/ is already whitelisted, and its contents blacklisted.
    # Whitelist /etc/default/ folder.
    !/etc/default/
    # Blacklist all files in /etc/default/ folder.
    /etc/default/*
    # Whitelist specific file(s) in /etc/default/ folder.
    !/etc/default/tlp
    
    
    ## Whitelisting files in /home/USERNAME/ folder:
    # Whitelist /home/ folder.
    !/home/
    # Blacklist all files in /home/ folder.
    /home/*
    # Whitelist /home/USERNAME/ folder.
    !/home/USERNAME/
    # Blacklist all files in /home/USERNAME/ folder.
    /home/USERNAME/*
    # Whitelist specific file(s) in /home/USERNAME/ folder
    !/home/USERNAME/.bash_profile
    !/home/USERNAME/.bashrc
    
  • Перейдите в / и выполненный git init . До сих пор я не мог сохранить .git/ папка в другом каталоге с помощью ссылки упоминается @Ravexina.

  • Выполненный git add . и git status. Необходимо добраться, список всего Мерзавца файлов настроек отслеживает.

    If you used the above `.gitignore`, it should track `/etc/crontab`, `/etc/default/tlp`, `/home/USERNAME/.bash_profile`, and `/home/USERNAME/.bashrc`.
    
  • Фиксация с git commit -m "Initial settings files".

  • Можно отследить изменения с git log -p -- path/to/fileили gitk path/to/file. Больше обсуждения этого здесь.

5
ответ дан 23 November 2019 в 00:54

На самом деле Вы, вероятно, хотите к конфигурационным файлам управления версиями в /etc/ (Вы не заботитесь о записях корневого каталога /, особенно каталоги как proc или usr или bin в /), таким образом, можно хотеть установить etckeeper пакет

, И Вы могли также присвоить версию управлению некоторые выбранные подкаталоги (как /usr/share/applications/, что Вы упомянули).

Однако не смешивают с управлением пакетом Ubuntu система. Возможно, главным образом необходимо скопировать текущий список установленных пакетов.

18
ответ дан 23 November 2019 в 00:54

Если Вы собираетесь сохранить чувствительный материал (как /etc/shadow) в мерзавце repo, необходимо удостовериться, что это не читаемо всеми пользователями, так как по умолчанию объекты будут иметь разрешение 444, и каталоги будут иметь разрешение 0755. Можно изменить разрешение .git к 700 или поместить его в /root

, Другая проблема состоит в том, что мерзавец не хранит полномочия файла как файловая система, и оно не хранит расширенные атрибуты. Для файлов мерзавец только хранит, являются ли они исполняемым файлом. Таким образом, если Вы захотите восстановить удаленный файл, то его владелец и группа будут корнем (если Вы сделаете это как корень), и его разрешение будет 644 или 755. Это может быть проблематично для конфигурационных файлов сервисов, владелец которых не является корнем.

2
ответ дан 23 November 2019 в 00:54

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

Примечание: Это - меньше работы и вероятно более полезный для использования 'debsums'

sudo apt-get install debsums

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

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

$ sudo debsums -c
/boot/vmlinuz-4.10.0-19-generic

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

$ sudo debsums -ec
debsums: missing file /etc/default/chromium-browser (from chromium-browser package)
 /etc/libvirt/libvirt.conf
 <snip>

Примечание, как браузер хрома неправильно упаковывается и и перечислил файл в список файлов пакета, который не существует.

/var/lib/dpkg/info/chromium-browser.list

Это использует dpkg данные и избегает большого/.git каталога и рабочего процесса.

6
ответ дан 23 November 2019 в 00:54

Другие вопросы по тегам:

Похожие вопросы: