如何查找包在Ubuntu上拥有特定文件

时间:2020-03-05 15:26:47  来源:igfitidea点击:

本教程旨在识别在Ubuntu系统上拥有/提供特定文件的包。
本文上的所有命令已在Ubuntu 18.04和Ubuntu 16.04桌面和服务器版上测试。

有时有必要知道在系统中添加文件的包,这通常是为了监视和安全目的是至关重要的,例如,防止rootkit和任何形式的侵入到Linux服务器中。

以下是为此任务中派上派上辅导的命令列表。

使用DPKG.

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

如果我们不知道命令的绝对路径,则可以使用whate命令在飞行中定位它。

# dpkg -S `which ping`
iputils-ping: /bin/ping

或者

# dpkg -S $(which ping)
iputils-ping: /bin/ping

使用apt-file

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"包来创建的。