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 访问权限。你信任谁?
即使忘记了维护者脚本,该软件包也可能会安装一个每分钟运行一次的 Cron 脚本,并且这一分钟可能会在您安装和卸载该软件包之间滴答作响。
或者它可能会安装一个程序,/bin/python例如(将优先使用 real /usr/bin/python),然后一些后台进程可能会尝试启动 Python。
或者它可能会安装一个程序,/bin/dpkg因此当您尝试删除它时,您实际上只是在运行它。