安装 Tor 浏览器 在 Linux 上很简单。下载压缩包,解压,进入目录,然后启动它。第一次意外往往发生在你用 sudo 而不是普通用户启动它的时候。
sudo ./start-tor-browser.desktop
但浏览器没有打开,而是出现了意外的消息:
The Tor Browser Bundle should not be run as root.
Exiting.
Tor 浏览器拒绝启动因为你使用了 sudo。这是 Tor 项目有意采取的安全决策。
起初,这个决定可能显得奇怪。许多 Linux 程序都可以用管理员权限运行,为什么 Tor 浏览器却主动拒绝?
答案几乎与 Tor 本身无关,而完全在于保护你的系统。一旦你理解了原因,你会意识到这个错误信息并非障碍,而是 Tor 浏览器最重要的安全特性之一。
为什么 sudo 看起来是正确选择
在 Linux 上,sudo 是执行系统管理任务的工具。因此,有经验的用户会习惯性地使用它。但 Tor 浏览器并非系统管理任务。
Tor 浏览器的官方启动方式是使用普通用户身份。它不需要管理员权限来启动或浏览网页。
当你使用 sudo 时,你并没有帮助 Tor 浏览器,而是改变了运行它的用户:浏览器现在以 root 身份运行。这一改变足以让 Tor 浏览器拒绝继续运行。
sudo 实际上改变了什么
使用 sudo 运行命令时,通常是以 root 身份而非你的用户账户运行。你并没有让程序工作得更好,只是改变了运行它的用户。
正常情况下,Tor 浏览器在你的用户账户下运行。它可以访问你拥有的文件和文件夹,但仍受限于你账户的权限。
当你添加 sudo 时,浏览器以 root 身份运行。root 是拥有读取、修改或删除 Linux 系统上几乎所有文件权限的管理员账户。这就是为什么 sudo 用于系统管理任务,而不是日常应用程序。
以 root 身份运行本身不是问题。包管理器、备份工具和其他系统工具通常需要这些权限来完成工作。
但网页浏览器不同。
你访问的每个页面都要求浏览器处理来自互联网的不可信内容,如 HTML、JavaScript、图片、字体、视频等。现代浏览器是我们使用的最复杂的应用程序之一,像任何大型软件项目一样,安全漏洞偶尔会被发现并修复。
如果浏览器在以 root 身份运行时被攻破,攻击者将获得与浏览器相同的权限。这正是 Tor 浏览器设计要防止的情况。
浏览器与其他应用程序不同
以 root 身份运行包管理器是有意义的,因为它设计用于安装、更新或删除软件。这些任务需要管理员权限。
网页浏览器有不同的工作。
你访问的每个网站都会向你的浏览器发送数据。它处理来自你不控制的系统的 HTML、CSS、JavaScript、图片、字体、视频和其他内容。这就是浏览器频繁接收安全更新的原因之一。它们不断暴露于不可信内容。
现在考虑浏览器本身的权限。
如果攻击者利用浏览器漏洞并成功执行代码,该代码将以浏览器进程相同的权限运行。在你的用户账户下运行的浏览器仅限于该账户的权限。以 root 身份运行的浏览器继承了 root 用户更广泛的权限。
这并非 Tor 浏览器独有。作为一般安全实践,网页浏览器不应以不必要的管理员权限运行。如果浏览器被攻破,给予它比所需更多的权限只会增加潜在影响。
Tor 浏览器强制执行这一安全实践。当它检测到以 root 身份启动时,会拒绝启动。它不依赖用户遵循这一实践,而是强制执行。
启动 Tor 浏览器的正确方法
如果你使用的是 Tor 项目提供的官方 Tor 浏览器下载,请以普通用户身份启动:
./start-tor-browser.desktop
这就是你需要的全部。使用 sudo 运行 Tor 浏览器没有任何好处,而且 Tor 浏览器也不会运行。
如果你遇到权限相关的错误,不要认为 sudo 是答案。该错误通常指向需要修复的底层问题,例如文件权限不正确,或 Tor 浏览器提取或启动方式的问题。
换句话说,解决实际问题,而不是给浏览器它不需要的管理员权限。
结论
最初,Tor 浏览器拒绝使用 sudo 运行可能感觉像是不必要的限制。实际上,它正在做安全软件应该做的事情:在错误变成安全风险之前阻止它。
更广泛的教训超越了 Tor 浏览器。只给应用程序它们实际需要的权限。如果程序不需要管理员权限,使用 sudo 运行它只会增加错误或漏洞的潜在影响。
下次你看到:
The Tor Browser Bundle should not be run as root.
Exiting.
你会知道这不是一个需要绕过的错误。它提醒我们,良好的安全始于只给软件它实际需要的权限。




