Как найти все системные файлы, которые я редактировал с помощью `gedit`?
Сначала я собирался задать вопрос "Найти все файлы, которые я создал / изменил после установки?" но это дубликат ( найти все файлы в файловой системе, которые я отредактировал или создал), который не имеет удовлетворительного ответа, потому что включает загруженные материалы, которые никогда не менялись, а также тысячи миниатюр, созданных Nautilus под моим идентификатором пользователя без моего ведома.,
Причиной такой необходимости является то, что я написал отличный скрипт для отключения USB-порта на моем ноутбуке, который всегда имеет мощность, чтобы выиграть награду.
Теперь я очень недоволен тем, что мой всегда включенный USB-порт выключен во время ожидания или выключения. Я хочу отследить и вернуть программам те конфигурации systemd, которые я установил gedit
, Имея плохую память на импровизированные вещи, я не могу вспомнить, что я изменил.
Как найти все файлы, которые я создал или изменил с gedit
?
Я создал скрипт-обертку gsu
который использует pkexec
заменить gksu gedit
( Как я могу создать новую команду "gksu" на основе pkexec?). Я изменю это, чтобы регистрировать все системные файлы, отредактированные с их последней датой.
В то же время, кто-то намекнул на эту ссылку, все команды sudo, использующие gedit, были где-то зарегистрированы. Вопрос в том, где и как их перечислить grep
или как?
Обратите внимание, что я могу найти это с помощью других трудоемких средств, но чувствую, что это важный вопрос, который может возникнуть и у многих других.
2 ответа
Я только что отредактировал "системный" файл, используя эту команду, чтобы открыть файл:
sudo -H gedit /etc/gtk-3.0/settings.ini
Я сразу же посмотрел на последнюю запись в ~/.local/share/recently-used.xbel
и увидел это:
<bookmark href="file:///etc/gtk-3.0/settings.ini" added="2016-11-14T02:04:05Z" modified="2016-11-14T02:04:05Z" visited="2016-11-14T02:04:05Z">
<info>
<metadata owner="http://freedesktop.org">
<mime:mime-type type="text/plain"/>
<bookmark:groups>
<bookmark:group>gedit</bookmark:group>
</bookmark:groups>
<bookmark:applications>
<bookmark:application name="gedit" exec="'gedit %u'" modified="2016-11-14T02:04:05Z" count="1"/>
</bookmark:applications>
</metadata>
</info>
</bookmark>
Ограничения:
recently-used.xbel
содержание не показывает, как вы вызвалиgedit
,- необязательно, чтобы файл был отредактирован или создан с
gedit
; просто просмотр файла сgedit
получает файл в списке.
Визуальный осмотр файла кажется более безопасным, чем использование кода для извлечения необходимой информации. Что-то вроде grep -B5 '<bookmark:group>gedit</bookmark:group>' recently-used.xbel | grep 'bookmark href=' | grep -v '///home/'
может помочь изолировать системные файлы, которые были отредактированы gedit
, Но это будет работать, только если gedit
это первое приложение, указанное в bookmark:group
для этого конкретного файла. Если вы редактировали файл ранее с помощью другого приложения, которое пишет в recently-used.xbel
, вы не можете поймать этот файл.
<bookmark:groups>
<bookmark:group>geany</bookmark:group>
<bookmark:group>gedit</bookmark:group>
</bookmark:groups>
Во всяком случае, это выход grep
команда:
~/.local/share $ grep -B5 '<bookmark:group>gedit</bookmark:group>' recently-used.xbel | grep 'bookmark href=' | grep -v '///home/'
<bookmark href="file:///usr/share/themes/Adwaita/gtk-2.0/gtkrc" added="2016-10-15T09:38:31Z" modified="2016-10-15T09:38:31Z" visited="2016-10-15T09:38:31Z">
<bookmark href="file:///usr/share/themes/Numix/gtk-2.0/gtkrc" added="2016-10-15T09:40:25Z" modified="2016-10-15T09:40:25Z" visited="2016-10-15T09:40:25Z">
<bookmark href="file:///usr/share/themes/Lubuntu-default/gtk-3.0/gtk-lubuntu.css" added="2016-10-27T03:26:38Z" modified="2016-10-27T03:26:38Z" visited="2016-10-27T03:26:38Z">
<bookmark href="file:///etc/gtk-3.0/settings.ini.dpkg-old" added="2016-11-14T02:03:44Z" modified="2016-11-14T02:03:44Z" visited="2016-11-14T02:03:44Z">
<bookmark href="file:///etc/gtk-3.0/settings.ini" added="2016-11-14T02:04:05Z" modified="2016-11-14T02:04:05Z" visited="2016-11-14T02:04:05Z">
~/.local/share $
Все sudo
вызовы регистрируются по умолчанию, а не только sudo gedit
, Увидеть /var/log/auth.log
или в современных системах, journalctl $(which sudo)
, Точно так же для pkexec
: journalctl $(which pkexec)
,
Этот вопрос имеет пример sudo
появляется в /var/log/auth.log
:
Jul 16 11:50:56 laptop sudo: mv : 3 incorrect password attempts ; TTY=unknown ; PWD=/home/mv ; USER=root ; COMMAND=/usr/bin/env -u LANGUAGE LC_MESSAGES=C /bin/sh /tmp/tmpBHXhYV/:script:
Что вам нужно COMMAND=...
раздел.