Очень важно иметь возможность найти нужные нам файлы и папки. Как только мы получим доступ к системе на базе Linux, важно будет найти конфигурационные файлы, скрипты, созданные пользователями или администратором, и другие файлы и папки. Нам не нужно вручную просматривать каждую отдельную папку и проверять, когда изменено в последний раз. Есть некоторые инструменты, которые мы можем использовать, чтобы облегчить эту работу.

Which

Одним из распространенных инструментов является which. Эта команда возвращает путь к файлу или ссылке, которые должны быть выполнены и позволяет нам определить, доступны ли конкретные программы, такие как cURL, netcat, wget, python, gcc, в операционной системе. Пример поиска Python3:

┌──(kali㉿kali)-[~]
└─$ which python3
/usr/bin/python3

Если программа, которую мы ищем, не существует, результаты не будут отображаться.

Find

Еще одним удобным инструментом является 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

Потребуется много времени для поиска по всей системе, чтобы наши файлы и каталоги выполняли множество различных поисков. Команда 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
.........................