Очень важно иметь возможность найти нужные нам файлы и папки. Как только мы получим доступ к системе на базе Linux, важно будет найти конфигурационные файлы, скрипты, созданные пользователями или администратором, и другие файлы и папки. Нам не нужно вручную просматривать каждую отдельную папку и проверять, когда изменено в последний раз. Есть некоторые инструменты, которые мы можем использовать, чтобы облегчить эту работу.
Одним из распространенных инструментов является which
. Эта команда возвращает путь к файлу или ссылке, которые должны быть выполнены и позволяет нам определить, доступны ли конкретные программы, такие как cURL, netcat, wget, python, gcc, в операционной системе. Пример поиска Python3:
┌──(kali㉿kali)-[~]
└─$ which python3
/usr/bin/python3
Если программа, которую мы ищем, не существует, результаты не будут отображаться.
Еще одним удобным инструментом является find
. Помимо функции поиска файлов и папок, этот инструмент также содержит функцию фильтрации результатов. Мы можем использовать параметры фильтра, такие как размер файла или дата. Мы также можем указать, если мы ищем только файлы или папки.
┌──(kali㉿kali)-[~]
└─$ find / -type f -name '*.conf' -user kali -size -10k -newermt 2022-03-01 -exec ls -la {} \\; 2>/dev/null
-rw-r--r-- 1 kali kali 316 Apr 3 10:28 /home/kali/.config/xsettingsd/xsettingsd.conf
-rw-r--r-- 1 kali kali 107 Feb 28 13:12 /home/kali/.config/QtProject.conf
-rw-r--r-- 1 kali kali 619 Mar 23 12:17 /home/kali/.config/kde.org/UserFeedback.org.kde.dolphin.conf
-rw-r--r-- 1 kali kali 439 Feb 28 13:55 /home/kali/.config/kde.org/UserFeedback.org.kde.kate.conf
-rw-r--r-- 1 kali kali 109 Apr 3 10:28 /home/kali/.config/kde.org/UserFeedback.org.kde.plasmashell.conf
-rw-r--r-- 1 kali kali 1041 Apr 3 10:28 /home/kali/.config/Trolltech.conf
-rw-r--r-- 1 kali kali 84 Dec 31 13:21 /home/kali/.config/KDE/UserFeedback.conf
Теперь рассмотрим параметры подробнее:
Параметр | Описание |
---|---|
-type f |
Таким образом определяем тип искомого объекта. В этом случае f означает file . |
-name '*.conf' |
С помощью -name указываем имя файла, который мы ищем. Звездочка * означает ВСЕ файлы с расширением .conf |
-user kali |
Этот параметр фильтрует все файлы, владельцем которых является пользователь kali . |
-size -10k |
Позволяет отфильтровать все расположенные файлы и указать, что мы хотим видеть только файлы размером менее 10 КБ. |
-newermt 2020-03-01 |
С помощью этой опции мы устанавливаем дату. Будут представлены только файлы новее указанной даты. |
-exec ls -la {} \\; |
Этот параметр выполняет указанную команду, используя фигурные скобки в качестве заполнителей для каждого результата. Обратная косая черта избегает интерпретации следующего символа оболочкой, поскольку в противном случае точка с запятой завершит команду и не достигнет перенаправления. |
2>/dev/null |
Это перенаправление STDERR на “нулевое устройство”. Если по простому - это перенаправление гарантирует, что в терминале не будут отображаться ошибки. Его можно использовать в любых командах помимо find |
Потребуется много времени для поиска по всей системе, чтобы наши файлы и каталоги выполняли множество различных поисков. Команда locate
предлагает нам более быстрый способ поиска в системе. В отличие от команды find
, locate
работает с локальной базой данных, содержащей всю информацию о существующих файлах и папках. Мы можем обновить эту базу данных с помощью команды sudo updatedb
┌──(kali㉿kali)-[~]
└─$ locate *.conf
/etc/adduser.conf
/etc/appstream.conf
/etc/ca-certificates.conf
/etc/debconf.conf
/etc/deluser.conf
.........................