如果我在 deb 文件中安装软件,sudo dpkg -i file.deb
它会执行包中的代码并可能破坏我的系统吗?
如果我登录testuser
并执行该软件(只需thebinary
在命令行上),我假设它可以读取 testuser 可以读取的所有内容,并且可以查看哪些进程正在使用其参数运行(使用ps
)。它还能做其他我可能不喜欢的事情吗?
假设我的所有个人信息都在 root 或不同的用户帐户中,恶意软件可以做任何事情吗?
答案1
sudo dpkg -i file.deb
会愉快地执行作为根用户包中的代码file.deb
。特别是,它将至少执行安装前和安装后脚本(这些脚本本身可以执行任何内容,包括rm -Rf --no-preserve-root /
作为包的一部分提供的自定义二进制代码)。
您应该只安装来自可靠来源的软件包。
答案2
补充前面的答案,正确地指出软件包的安装本身在过程中确实以 root 身份执行脚本,稍后执行已安装的软件(即使是非特权用户)可能会损害系统和其他用户文件。
在安装过程中,脚本(以 root 身份运行)可以安装 suid 可执行文件,当普通用户运行时,这些可执行文件会提升到 root 权限,从而对系统造成无限的损坏。更糟糕的是,这可以在很长一段时间内悄无声息地完成,比如以一种看起来仍然像以前一样工作的方式更改系统文件,但在桌子下窃取你的数据、密码、银行交易等。只需谷歌搜索 rootkit、特洛伊木马,找到一些隐藏软件在幕后做坏事的例子)。
不要盲目相信普通用户不会对其他用户或系统造成损害。即使是非故意有害的 suid 系统文件也可能存在漏洞和安全缺陷,非特权用户可以利用这些漏洞来造成伤害。
如前所述,您应该只安装来自可靠来源的软件包,并保持软件最新,以便正确修复迄今为止已知的安全缺陷和漏洞。