使用 sudo dpkg 安装未知的 deb 软件包是否有害?

使用 sudo dpkg 安装未知的 deb 软件包是否有害?

假设我使用以下命令安装一个包dpkg

sudo dpkg -i package-name.deb

然后,在不运行软件包二进制文件的情况下,我只需将其删除:

sudo dpkg -r package-name

在这个过程中会发生什么有害的事情吗?例如.deb文件中是否存在恶意配置脚本?可能发生的其他威胁有哪些?

答案1

是的,包裹可以包含“维护者脚本”在安装之前和/或之后运行。您可以通过从包中提取控制存档来查看脚本(如果有):

dpkg-deb --ctrl-tarfile package-name.deb > control.tar
tar tf control.tar

或者,如果您知道要提取控制存档的内容:

dpkg-deb -e package-name.deb package-control

(它将提取的文件放在名为 的目录中package-control)。

它们以 root 身份运行,可以在您的系统上执行软件包作者想要的任何操作。

您应该真正考虑到安装软件包相当于授予维护者(以及参与软件包维护和构建的任何其他人)对系统的 root 访问权限。你信任谁?

答案2

即使忘记了维护者脚本,该包也可能会安装一个每分钟运行一次的 Cron 脚本,并且这一分钟可能会在您安装和卸载该包之间流逝。

或者它可能会安装一个程序/bin/python(例如,它将优先于实际使用/usr/bin/python),然后某些后台进程可能会尝试启动Python。

或者它可能会安装一个程序,/bin/dpkg这样当您尝试删除它时,您实际上只是在运行它。

相关内容