Создание Git-репо в / (root) для настроек отслеживания?

Нагстамон может быть полезен.

Из их Nagstamon :

Nagstamon - монитор состояния Nagios для рабочего стола. Он подключается к нескольким серверам мониторинга Nagios, Icinga, Opsview, Centreon, Op5 Monitor / Ninja и Check_MK Multisite и находится в systray или как плавающая панель состояния на рабочем столе с кратким резюме критических, предупреждающих, неизвестных, недоступных и запущенных хостов и сервисов и всплывает подробный обзор состояния при перемещении указателя мыши над ним. Соединение с отображаемыми хостами и службами легко устанавливается через контекстное меню через SSH, RDP и VNC. Звуковые сигналы могут быть уведомлены пользователями. Хосты и службы могут быть отфильтрованы по категориям и регулярным выражениям.

Не использовал его сам, и я не вижу возможности почтового уведомления (что бы я хотел) [!d9 ]

24
задан 23 May 2017 в 15:39

15 ответов

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

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

git --git-dir=/home/user/backup-root --work-tree=/
[d2 ] Читайте здесь.

32
ответ дан 22 May 2018 в 22:27
  • 1
    Очень интересно, я действительно не знал, что вы можете сделать это в git! Спасибо за предложение. – abhi divekar 19 May 2017 в 22:33
  • 2
    Это та же функция, которая позволяет отслеживать только настройки файлов в / home / user btw. Добавление дополнительного псевдонима оболочки делает это очень удобным. – Daniel Jour 21 May 2017 в 15:25

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

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

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

Читайте здесь.

32
ответ дан 18 July 2018 в 13:02

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

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

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

Читайте здесь.

32
ответ дан 24 July 2018 в 20:05

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

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

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

18
ответ дан 22 May 2018 в 22:27
  • 1
    Я действительно забочусь о файлах в /usr/share/applications, поскольку я иногда общаюсь с ними. – abhi divekar 20 May 2017 в 09:10

Наличие git-репо в / отлично работает, за исключением того, что его трудно заметить, когда у вас более низкий уровень git-репо с проблемами, поскольку он будет отвечать за всех из них.

Примечание: меньше работает и, вероятно, более полезно использовать «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
ответ дан 22 May 2018 в 22:27
  • 1
    Не могли бы вы объяснить, за исключением того, что это затрудняет уведомление, когда у вас есть более низкий уровень git-репо с проблемами, поскольку он будет отвечать за всех из них. & Quot; еще немного? Я не понимаю, как это может вызвать проблему, если .gitignore отслеживает только несколько файлов. – abhi divekar 19 May 2017 в 22:55
  • 2
    Я считаю, что @abhidivekar OP говорит, когда вы создаете еще один git-репо в say /home/$USER, тогда .git в / ответит за любую команду git, указанную для репо в /home$USER, а не за этот файл [.gir ] в /home/$USER ... – George Udosen 19 May 2017 в 23:17
  • 3
    Ах я вижу. Я думаю, что я должен просто оставить его в отдельной папке. Или / – abhi divekar 19 May 2017 в 23:19
  • 4
    @George Чтобы получить доступ к каталогу .git выше в дереве, вы просто cd к нему или его подкаталог, который не имеет папки .git (обычный каталог) – cat 20 May 2017 в 22:21
  • 5
    @abhidivekar Правильно, это не проблема, если преимущества перевешивают проблемы, но это неожиданное поведение. Не блокирующий, просто предостережение. – gdahlm 21 May 2017 в 00:06

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

Сделайте .gitignore в /. Это было намного сложнее, чем я думал, что это будет, из-за того, как Git обрабатывает файлы с белыми файлами в подпапках. Я использовал эту и эту ссылку, чтобы помочь мне.
## 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. Вы должны получить список всех файлов настроек, которые Git отслеживает.
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
ответ дан 22 May 2018 в 22:27

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

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

2
ответ дан 22 May 2018 в 22:27

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

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

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

18
ответ дан 18 July 2018 в 13:02

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

Сделайте .gitignore в /. Это было намного сложнее, чем я думал, что это будет, из-за того, как Git обрабатывает файлы с белыми файлами в подпапках. Я использовал эту и эту ссылку, чтобы помочь мне. ## 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. Вы должны получить список всех файлов настроек, которые Git отслеживает. 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
ответ дан 18 July 2018 в 13:02

Наличие git-репо в / отлично работает, за исключением того, что его трудно заметить, когда у вас более низкий уровень git-репо с проблемами, поскольку он будет отвечать за всех из них.

Примечание: меньше работает и, вероятно, более полезно использовать «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
ответ дан 18 July 2018 в 13:02

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

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

2
ответ дан 18 July 2018 в 13:02

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

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

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

18
ответ дан 24 July 2018 в 20:05
  • 1
    Я действительно забочусь о файлах в /usr/share/applications, поскольку я иногда общаюсь с ними. – abhi divekar 20 May 2017 в 09:10

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

Сделайте .gitignore в /. Это было намного сложнее, чем я думал, что это будет, из-за того, как Git обрабатывает файлы с белыми файлами в подпапках. Я использовал эту и эту ссылку, чтобы помочь мне. ## 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. Вы должны получить список всех файлов настроек, которые Git отслеживает. 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
ответ дан 24 July 2018 в 20:05

Наличие git-репо в / отлично работает, за исключением того, что его трудно заметить, когда у вас более низкий уровень git-репо с проблемами, поскольку он будет отвечать за всех из них.

Примечание: меньше работает и, вероятно, более полезно использовать «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
ответ дан 24 July 2018 в 20:05
  • 1
    Не могли бы вы объяснить, за исключением того, что это затрудняет уведомление, когда у вас есть более низкий уровень git-репо с проблемами, поскольку он будет отвечать за всех из них. & Quot; еще немного? Я не понимаю, как это может вызвать проблему, если .gitignore отслеживает только несколько файлов. – abhi divekar 19 May 2017 в 22:55
  • 2
    Я считаю, что @abhidivekar OP говорит, когда вы создаете еще один git-репо в say /home/$USER, тогда .git в / ответит за любую команду git, указанную для репо в /home$USER, а не за этот файл [.gir ] в /home/$USER ... – George Udosen 19 May 2017 в 23:17
  • 3
    Ах я вижу. Я думаю, что я должен просто оставить его в отдельной папке. Или / – abhi divekar 19 May 2017 в 23:19
  • 4
    @George Чтобы получить доступ к каталогу .git выше в дереве, вы просто cd к нему или его подкаталог, который не имеет папки .git (обычный каталог) – cat 20 May 2017 в 22:21
  • 5
    @abhidivekar Правильно, это не проблема, если преимущества перевешивают проблемы, но это неожиданное поведение. Не блокирующий, просто предостережение. – gdahlm 21 May 2017 в 00:06

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

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

2
ответ дан 24 July 2018 в 20:05

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

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