определять измененные пользователем файлы

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

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

Есть ли способ легко увидеть, какие файлы были изменены конкретным пользователем ? Кроме того, есть ли способ найти файлы, которые не найдены в новой установке? Резервное копирование материала в домашнем каталоге очень просто, но я не хочу искать через каждый каталог, чтобы помнить «О, я тоже что-то там поставил».

3 Solutions collect form web for “определять измененные пользователем файлы”

Вы можете легко искать файлы, принадлежащие определенному пользователю:

 find -xdev / -user bob 

Unix не отслеживает, кто изменил файл.

Нет простого способа найти системные файлы, которые вы изменили. Обычный способ поддерживать систему unix – позволить ОС управлять своими собственными файлами и размещать свои собственные файлы в отдельных каталогах. В Linux соглашение гласит, что

  • /bin , /sbin , /lib и /usr вне /usr/local принадлежит исключительно распределению;
  • /usr/local принадлежит исключительно системному администратору;
  • /etc заполняется дистрибутивом, но может быть изменен распределением.

Ваш домашний каталог, конечно, принадлежит вам.

Когда вы делаете что-то вроде добавления псевдонимов для ssh или файлов подсветки синтаксиса для Gedit, сделайте это в /usr/local если вы хотите, чтобы они были доступны для всех пользователей или в вашем домашнем каталоге в противном случае.

Если вам действительно нужно что-то изменить под /usr потому что приложение ищет файлы там, а не под /usr/local , поместите фактический файл в /usr/local и создайте символическую ссылку в /usr .

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

Вы можете искать и искать файлы, которые были изменены из дистрибутивных версий. Это различно для каждого менеджера пакетов. Поскольку вы упоминаете Ubuntu, низкоуровневым инструментом управления пакетами является dpkg . Для каждого пакета есть список файлов с их контрольными суммами в /var/lib/dpkg/info/PACKAGENAMES.md5sums . Вы можете сравнить список с тем, что вы установили в своей системе.

 sort /var/lib/dpkg/info/*.md5sums >/tmp/packaged.md5sums cd / find bin etc lib sbin usr -path usr/local -prune -o -exec md5sum {} + | sort >/tmp/actual.md5sums comm -23 /tmp/actual.md5sums /tmp/packages.md5sums 

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

Если я правильно понимаю ваш вопрос, не является ли это всей точкой структуры /home directory? Почти все конфигурации для каждого пользователя, которые вы создали, скорее всего, будут найдены в вашей домашней папке. Например, для gedit я бы поспорил, что в вашей домашней папке есть папка с именем .gedit содержащая отдельные конфигурации для этого программного обеспечения.

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

Для записи истории изменений в текстовые файлы вам может понадобиться нечто вроде etckeeper .

Если возможно, вы можете сохранить существующую установку и выполнить новую установку на неиспользуемое дисковое пространство (или вернуться на отдельный (внешний?) Диск и переустановить.)

После завершения новой установки смонтируйте старую установку (скажем) / старую (или каждую из файловых систем из старой установки, например, / old / root, / old / usr, / old / home, и т. д.), а затем используйте «diff -r / / old», чтобы помочь идентифицировать файлы, присутствующие в / old, которые отсутствуют в новой установке в /. Ожидайте множество ложных срабатываний из разных версий установленного программного обеспечения. Минимизируйте их, пытаясь установить точно такую ​​же настройку (дистрибутив, версия ОС, выбор пакета). Это нелегкий подход, но должен быть исчерпывающим – и, возможно, утомительным. Удачи.

  • Что такое точка точка (..)? Почему его поведение отличается от символических ссылок?
  • Разрешения по пути вместо битов режима файла
  • Почему «ls *» занимает гораздо больше времени, чем «ls»?
  • Запрет пустого пространства в именовании файловой системы
  • Почему создаются каталоги с разрешениями 2070 и файлы с 060 в каталоге с битом setgid?
  • Что такое «заголовок файла» в файловых системах Linux?
  • Восстановление пространства из одной файловой системы, чтобы передать его другому без LVM
  • Удалите поврежденный файл в системе Linux
  • Что такое консультативная блокировка файлов, которые обычно используют системы Unix?
  • Поиск файловой системы
  • Куда идут файлы, если вы монтируете диск в папку, в которой уже есть файлы?
  • Linux и Unix - лучшая ОС в мире.