Это руководство поможет вам определить пакет, который владеет/предоставляет конкретный файл в вашей системе Ubuntu. Все команды этой статьи были протестированы на Ubuntu 18.04 и Ubuntu 16.04 Desktop и Server edition.
Иногда необходимо знать пакет, который добавляет файлы в вашей системе, обычно это важно для целей мониторинга и безопасности, например, для предотвращения руткитов и любой формы вторжения на ваш Linux-сервер.
Ниже приведен список команд, которые пригодятся для этой задачи.
dpkg – это инструмент управления пакетами Debian, используемый для установки, удаления, обновления и управления пакетами Debian. Вы можете использовать инструмент управления пакетами dpkg для идентификации пакета, который предоставляет файл. Возможны следующие варианты:
-S, — search: они используются для поиска имени файла из установленных пакетов.
В качестве примера давайте попробуем идентифицировать пакет, который предоставляет файл /etc/updatedb.conf.
# dpkg -S /etc/updatedb.conf mlocate: /etc/updatedb.conf
Как видно, файл был записан в файловую систему с помощью пакета mlocate.
Вы также можете сделать то же самое для двоичного файла, например
# dpkg -S /bin/sync coreutils: /bin/sync
Если вы не знаете абсолютный путь к команде, вы можете использовать команду which
, чтобы найти ее на лету.
# dpkg -S `which ping` iputils-ping: /bin/ping
или
# dpkg -S $(which ping) iputils-ping: /bin/ping
Apt-file – это инструмент командной строки Debian, который можно использовать для поиска файлов в пакетах для системы управления пакетами APT. Если вы попытаетесь выполнить команду, когда она не установлена, она попросит вас установить ее.
# apt-file search vim The program 'apt-file' is currently not installed. You can install it by typing: apt install apt-file
По умолчанию системный кеш пуст. Выполните следующую команду как пользователь root, чтобы обновить кеш.
# apt-file update
Используйте синтаксис:
# apt-file search <file>
Например: Чтобы найти пакет, создавший файл /etc/nginx/nginx.conf , используйте команду:
# apt-file search /etc/nginx/nginx.conf nginx-common: /etc/nginx/nginx.conf
Из вывода видно, что файл был создан путем установки пакета nginx-common
.
Третий способ – использовать веб-интерфейс поиска Ubuntu Packages, доступный на странице пакетов Ubuntu (https://packages.ubuntu.com/) . Введите ключевое слово и нажмите на поле поиска.
Две команды apt-file и dpkg достаточны для поиска файла из пакета на Ubuntu и всех дистрибутивов Linux на базе Debian. Это может помочь вам найти пакет для повторной установки, если он поврежден из файла или отслеживает неизвестные файлы в вашей файловой системе.