我已经在Debian 10机器上作为服务运行传输守护进程2.94。
我将运行传输守护进程的用户从默认的debian-transmission更改为www-data Apache用户,因为我希望Apache可以读取保存文件,而通过传输则可以读取D1文件。
为此,我从以下配置文件更改为user设置:
User=www-data in /lib/systemd/system/transmission-daemon.serviceUSER=www-data in /etc/init.d/transmission-daemonsetuid www-data与setgid www-data in /etc/init/transmission-daemon.conf传输JSON配置文件仍然驻留在/etc/transmission-daemon/settings.json中。我确保了/var/lib/transmission-daemon和/etc/transmission-daemon这两个目录都属于新用户www-data。
但是,当我用sudo systemctl start transmission-daemon或sudo service transmission-daemon start重新启动服务时,在传输日志中可以得到以下内容:
Couldn't create "/var/www/.config": Permission denied (file-posix.c:189)
Couldn't read "/var/www/.config/transmission-daemon/settings.json": No such file or directory (utils.c:238)
Couldn't save temporary file "/var/www/.config/transmission-daemon/settings.json.tmp.jq3qtN": No such file or directory (variant.c:1285)...and其他类似的错误。
因此,传输守护进程似乎正在尝试使用www-data用户主路径,并在这里重新创建其配置目录。
Why就是这样,如何使用以前的默认配置路径进行传输?我没有看到任何传输配置取决于用户主路径。
附带问题:设置运行服务的用户的这三个配置文件之间有什么区别?
发布于 2020-11-23 12:41:32
传输-守护进程将其配置保存到正在运行的用户的主文件夹中。在用户transmissio-daemon的默认情况下,主文件夹是
/var/lib/transmission-daemon是在/etc/passwd中定义的
在Debian中,在settings.json中找到的/var/lib/transmission-daemon/.config/transmission-daemon/文件只是指向/etc/transmission-daemon/settings.json的一个符号链接。
作为一个主文件夹,它应该能够写在里面。您收到的错误是因为传输无法将其设置/统计数据写入正在运行的用户的主文件夹中。
但是,我认为最好的方法是在umask中使用settings.json来访问通过传输创建的文件,并将下载文件夹设置到您的web服务器可以访问的位置(可能是/var/www中的一个具有写入权限以进行传输的文件夹)。
如果您提供更多关于用例的详细信息,也许我们可以创建一个适合您需要的配置,而无需更改用户的传输功能。
https://unix.stackexchange.com/questions/624899
复制相似问题