无法读取 /var/lib/tor:权限被拒绝或无法创建私有数据目录

Tou*_*ira 7 tor google-cloud-shell

我使用 google cloud shell 来执行这个程序

  1. Linux版本
    Distributor ID: Debian
    Description:    Debian GNU/Linux 10 (buster)
    Release:        10
    Codename:       buster
Run Code Online (Sandbox Code Playgroud)
  1. Tor 版本 0.3.5.10。

  2. 当我尝试重新启动“ sudo service to restart ” Tor 时,我收到错误

[ ok ] Stopping tor daemon...done (not running - there is no /run/tor/tor.pid).
[....] Starting tor daemon...Jun 27 01:51:04.132 [warn] Directory /var/lib/tor cannot be read: Permission denied
Jun 27 01:51:04.132 [warn] Failed to parse/validate config: Couldn't create private data directory "/var/lib/tor"
Jun 27 01:51:04.132 [err] Reading config failed--see warnings above.
failed.
Run Code Online (Sandbox Code Playgroud)
  1. 所以我为tor目录设置了完全权限sudo chmod -R 777 /var/lib/tor

    [FAIL] Checking if tor configuration is valid ... failed!
     Jun 27 01:53:59.685 [notice] Tor 0.3.5.10 running on Linux with Libevent 2.1.8-stable, OpenSSL 1.1.1g, Zlib 1.2.11, Liblzma 5.2.4, and Libzstd 1.3.8.
     Jun 27 01:53:59.685 [notice] Tor can't help you if you use it wrong! Learn how to be safe at https://www.torproject.org/download/download#warning
     Jun 27 01:53:59.685 [notice] Read configuration file "/usr/share/tor/tor-service-defaults-torrc".
     Jun 27 01:53:59.685 [notice] Read configuration file "/etc/tor/torrc".
     Jun 27 01:53:59.688 [warn] Error setting groups to gid 114: "Operation not permitted".
     Jun 27 01:53:59.688 [warn] If you set the "User" option, you must start Tor as root.
     Jun 27 01:53:59.688 [warn] Failed to parse/validate config: Problem with User value. See logs for details.
     Jun 27 01:53:59.688 [err] Reading config failed--see warnings above.
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我使用root权限sudo su

    [ ok ] 停止 tor 守护进程...完成(未运行 - 没有 /run/tor/tor.pid)。[...]启动tor守护进程...Jun 27 01:58:58.455 [警告]目录/var/lib/tor无法读取:权限被拒绝 Jun 27 01:58:58.455 [警告]无法解析/验证配置:无法创建私有数据目录“/var/lib/tor” Jun 27 01:58:58.455 [err] 读取配置失败 - 请参阅上面的警告。

有什么方法可以帮助我解决我的问题或者我怎样才能安装 tor 版本 2.9.14?

Ava*_*lla 6

您现在可能已经解决了问题,如果没有,我希望这能有所帮助。


有什么方法可以帮助我解决我的问题吗?

选项1

让我们看一下这些警告:

[warn] Error setting groups to gid 114: "Operation not permitted".
[warn] If you set the "User" option, you must start Tor as root.
[warn] Failed to parse/validate config: Problem with User value.
Run Code Online (Sandbox Code Playgroud)

要获取所有用户运行的日志cat /etc/passwd,您将看到debian-tor列出的内容:

...
debian-tor:x:108:114::/var/lib/tor:/bin/false
...
Run Code Online (Sandbox Code Playgroud)

该文件夹/var/lib/tor归 user 所有debian-tor,因此sudo -u debian-tor tor可以使用。

或者,您可以为当前用户运行此命令:(或chmod 777为所有人)

chmod 700 -R /var/lib/tor/*
chown -R tor /var/lib/tor/
sudo service tor restart
Run Code Online (Sandbox Code Playgroud)

实际上你应该以非 root 身份运行 tor,否则你会收到以下消息:

You are running Tor as root. You don't need to, and you probably shouldn't.
Run Code Online (Sandbox Code Playgroud)

选项2

正如警告建议您应该检查和see logs for details中的消息。如果您发现任何东西,则可能是 AppArmor 或 SELinux 阻止了 Tor。SELinux 和 AppArmor 都提供了一组工具来隔离应用程序,以保护主机系统免受损害,因此不建议永久禁用它们,而是暂时禁用它们以进行调试。dsmeg/var/log/syslog

根据Debian SELinux 支持

Debian 打包的 Linux 内核编译了 SELinux 支持,但默认情况下禁用。

使用 检查 SELinux 状态getenforce,如果输出为 Permissive 或 Disabled,则您已设置完毕。

此外,查看AppArmor/Progress

从 Debian 10 (Buster) 开始,AppArmor 默认启用。

要在系统上禁用 AppArmor,请运行:(参考

sudo mkdir -p /etc/default/grub.d
echo 'GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT apparmor=0"' \
| sudo tee /etc/default/grub.d/apparmor.cfg
sudo update-grub
sudo reboot
Run Code Online (Sandbox Code Playgroud)

有可能两者都是罪魁祸首。用户在这里报告了类似的问题。


我怎样才能安装 tor 版本 2.9.14?

降级 tor 包就像这样简单:

sudo apt-get install tor=0.2.9.14
Run Code Online (Sandbox Code Playgroud)

但你为什么要这么做呢?

Tor v2很快就会被弃用。您会看到如下警告:

[warn] At least one protocol listed as required in the consensus is
not supported by this version of Tor. You should upgrade. This version
of Tor will not work as a client on the Tor network. The missing
protocols are: DirCache=2 HSDir=2 HSIntro=4 Link=4-5
Run Code Online (Sandbox Code Playgroud)

注意:在tor.stackexchange上发布有关 Tor 的相关问题。