文件权限管理

文件权限管理

我希望能够以我的主要用户的名义移动通过传输下载的文件。

我将该用户添加到组 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 建议的那样;

相关内容