我希望能够以我的主要用户的名义移动通过传输下载的文件。
我将该用户添加到组 debian-transmission,但这还不够,只有所有者对下载的文件具有写权限。
因此我看到了一些可能性:
- 改变传输的用户,但这似乎不是一个好的做法。
- 在传输中设置一个选项,让它写入具有组写权限的文件,但我不知道是否可行。
那么您有什么建议可以找到好的解决方案呢?
答案1
@sverker 提出的解决方案很好,但我建议您更改传输配置,以便更改写入下载文件的 umask。配置存储在
~/.config/传输/settings.json
查找并更改“umask”值。请注意,json 格式使用十进制表示法,因此请查看表格并找到新 umask 的值(例如:22)
Umask Created Files Created Directories
-------------------------------------------------------------
000 666 (rw-rw-rw-) 777 (rwxrwxrwx)
002 664 (rw-rw-r--) 775 (rwxrwxr-x)
022 644 (rw-r--r--) 755 (rwxr-xr-x)
027 640 (rw-r-----) 750 (rwxr-x---)
077 600 (rw-------) 700 (rwx------)
277 400 (r--------) 500 (r-x------)
然后在终端中:
#echo $((8#022))
18
最后将umask值改为18
答案2
Transmission 至少作为守护进程,可以选择在完成 torrent 时运行脚本。您应该能够在完成后告诉此脚本 chmod 为 664。从那里,文件应该可以从您的主用户访问和写入。您可以编写一个包含以下行的脚本:
#!/usr/bin/env bash
chmod -R 664 ${TR_TORRENT_DIR}
exit 0
然后使该脚本可执行,并将其放在 transmission-daemon 可以访问的地方,例如 /usr/local/bin 或类似的地方。
然后告诉 transmission-daemon 在 torrent 完成时运行脚本。您可以通过 GUI 执行此操作,也可以在文件中添加此行/etc/transmission-daemon/settings.json
:
"script-torrent-done-filename": "/usr/local/bin/your-script.sh",
就是这样。script-torrent-done 的概念非常强大,我使用它根据内容将种子分类为电影/音乐/等,但这是一个相当长的脚本 :)
答案3
你应该读访问控制列表,它允许您添加额外的权限,例如为您的主用户添加权限。
例如sudo setfacl -d -R u:gael:rw /home/transmission
允许您的用户读取和写入该目录。-d 是默认这意味着在该目录中创建的文件将具有这些新权限。通常使用 -m 而不是 -d。使用 -m 运行可应用于现有文件。
您可以编写一个脚本来运行设置完成时命令以确保所有文件正确,正如 Sverker 建议的那样;