使用 sudo dpkg 安装未知的 deb 包会有害吗?

Rav*_*ina 7 ubuntu debian dpkg software-installation deb

假设我使用dpkg以下方法安装软件包:

sudo dpkg -i package-name.deb
Run Code Online (Sandbox Code Playgroud)

然后没有运行包二进制文件,我只是将其删除:

sudo dpkg -r package-name
Run Code Online (Sandbox Code Playgroud)

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

Ste*_*itt 24

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

dpkg-deb --ctrl-tarfile package-name.deb > control.tar
tar tf control.tar
Run Code Online (Sandbox Code Playgroud)

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

dpkg-deb -e package-name.deb package-control
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • @StephenKitt 该软件包可能会在自动运行的位置安装文件,例如`/etc/cron.d`(以及许多其他)。 (5认同)

use*_*751 9

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

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

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