假设我使用以下命令安装一个包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
这样当您尝试删除它时,您实际上只是在运行它。